diff --git a/README.md b/README.md index cd9f2a3..fcb3c5a 100644 --- a/README.md +++ b/README.md @@ -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 +``` \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index c27062c..d5417f9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,4 +13,4 @@ pytesseract opencv-python-headless psycopg2-binary # pgsql pymysql # mysql -cryptography +cryptography # mysql8 diff --git a/templates/user_expenses.html b/templates/user_expenses.html index bea5ac2..d351519 100644 --- a/templates/user_expenses.html +++ b/templates/user_expenses.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% block title %}📊 Twoje wydatki{% endblock %} +{% block title %}Wydatki z Twoich list{% endblock %} {% block content %}