|
|
|
@@ -1,59 +1,77 @@
|
|
|
|
|
# Live Lista Zakupów
|
|
|
|
|
# Aplikacja List Zakupów
|
|
|
|
|
|
|
|
|
|
Aplikacja webowa do współdzielonych list zakupów z obsługą wielu użytkowników, trybem współpracy w czasie rzeczywistym, panelami administracyjnymi oraz możliwością załączania paragonów.
|
|
|
|
|
Prosta aplikacja webowa do zarządzania listami zakupów z obsługą użytkowników, OCR paragonów, statystykami i trybem współdzielenia.
|
|
|
|
|
|
|
|
|
|
## Funkcje
|
|
|
|
|
## Główne funkcje
|
|
|
|
|
|
|
|
|
|
- Tworzenie, edycja i archiwizacja list zakupów
|
|
|
|
|
- Dodawanie, edycja, usuwanie produktów i oznaczanie ich jako kupione
|
|
|
|
|
- Udostępnianie list przez link (token)
|
|
|
|
|
- Wgrywanie zdjęć paragonów do listy zakupów
|
|
|
|
|
- Wyszukiwarka produktów i podpowiedzi
|
|
|
|
|
- Komentarze do produktów
|
|
|
|
|
- Panel administracyjny (zarządzanie użytkownikami, listami, paragonami)
|
|
|
|
|
- Obsługa w czasie rzeczywistym (Socket.IO)
|
|
|
|
|
- Logowanie i autoryzacja użytkowników
|
|
|
|
|
- Systemowe hasło dostępu do aplikacji
|
|
|
|
|
- Logowanie i zarządzanie użytkownikami (admin/user)
|
|
|
|
|
- Tworzenie list zakupów z pozycjami i ilością
|
|
|
|
|
- Wgrywanie paragonów (podstawowa obsługa OCR)
|
|
|
|
|
- Archiwizacja i udostępnianie list (publiczne/prywatne)
|
|
|
|
|
- Statystyki wydatków z podziałem na okresy, statystyki dla użytkowników
|
|
|
|
|
- Panel administracyjny (statystyki, produkty, paragony, zarządzanie, użytkowmicy)
|
|
|
|
|
|
|
|
|
|
## Wymagania
|
|
|
|
|
|
|
|
|
|
- Docker
|
|
|
|
|
- Docker Compose
|
|
|
|
|
- Python 3.9+
|
|
|
|
|
- Redis (dla socket.io, opcjonalnie)
|
|
|
|
|
- Docker (opcjonalnie)
|
|
|
|
|
|
|
|
|
|
## Sposób uruchomienia z Docker Compose
|
|
|
|
|
## Instalacja lokalna
|
|
|
|
|
|
|
|
|
|
1. **Przygotuj plik `.env` w katalogu głównym projektu** (przykład):
|
|
|
|
|
1. Sklonuj repozytorium:
|
|
|
|
|
|
|
|
|
|
`APP_PORT=8000`
|
|
|
|
|
```bash
|
|
|
|
|
git https://gitea.linuxiarz.pl/gru/lista_zakupowa_live.git
|
|
|
|
|
cd lista_zakupowa_live
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`SECRET_KEY=twoj_super_tajny_klucz`
|
|
|
|
|
2. Utwórz i uzupełnij plik `.env` (zobacz `.env example`).
|
|
|
|
|
|
|
|
|
|
`SYSTEM_PASSWORD=haslo_do_aplikacji`
|
|
|
|
|
3. Utwórz środowisko i zainstaluj zależności:
|
|
|
|
|
|
|
|
|
|
`DEFAULT_ADMIN_USERNAME=admin`
|
|
|
|
|
```bash
|
|
|
|
|
python -m venv venv
|
|
|
|
|
source venv/bin/activate
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`DEFAULT_ADMIN_PASSWORD=admin123`
|
|
|
|
|
4. Uruchom aplikację:
|
|
|
|
|
|
|
|
|
|
2. **Uruchom aplikację:**
|
|
|
|
|
```bash
|
|
|
|
|
flask --app app.py run
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Domyślnie aplikacja będzie dostępna pod adresem:
|
|
|
|
|
**http://localhost:8000**
|
|
|
|
|
## Deploy z Docker Compose
|
|
|
|
|
|
|
|
|
|
3. **Pierwsze logowanie:**
|
|
|
|
|
- Po wejściu na stronę zostaniesz poproszony o podanie hasła systemowego (`SYSTEM_PASSWORD`).
|
|
|
|
|
- Przy pierwszym uruchomieniu zostanie automatycznie utworzone konto administratora na podstawie zmiennych `DEFAULT_ADMIN_USERNAME` i `DEFAULT_ADMIN_PASSWORD`.
|
|
|
|
|
1. Skonfiguruj `.env`.
|
|
|
|
|
|
|
|
|
|
2. Uruchom:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker-compose up --build
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Aplikacja będzie dostępna pod `http://localhost:8000`.
|
|
|
|
|
|
|
|
|
|
## Domyślne dane logowania
|
|
|
|
|
|
|
|
|
|
- **Login administratora:** `admin` (lub wartość z `DEFAULT_ADMIN_USERNAME`)
|
|
|
|
|
- **Hasło administratora:** `admin123` (lub wartość z `DEFAULT_ADMIN_PASSWORD`)
|
|
|
|
|
- Główne hasło systemowe: `admin`
|
|
|
|
|
- Admin: `admin` / `admin123`
|
|
|
|
|
|
|
|
|
|
4. **Aby uruchomić aplikację w Dockerze, wykonaj następujące kroki:**
|
|
|
|
|
## Konfiguracja bazy danych
|
|
|
|
|
|
|
|
|
|
* Przygotuj plik .env w katalogu projektu z wymaganymi zmiennymi środowiskowymi
|
|
|
|
|
* Uruchom aplikację poleceniem:
|
|
|
|
|
docker compose up --build
|
|
|
|
|
Obsługiwane silniki: `sqlite`, `pgsql`, `mysql`.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
Ustaw `DB_ENGINE` oraz odpowiednie zmienne w `.env`:
|
|
|
|
|
|
|
|
|
|
Przykład dla PostgreSQL:
|
|
|
|
|
|
|
|
|
|
```env
|
|
|
|
|
DB_ENGINE=pgsql
|
|
|
|
|
DB_HOST=db
|
|
|
|
|
DB_PORT=5432
|
|
|
|
|
DB_NAME=myapp
|
|
|
|
|
DB_USER=user
|
|
|
|
|
DB_PASSWORD=pass
|
|
|
|
|
```
|