# Expense Control Aplikacja do kontroli wydatkow z interfejsem Angular + Tabler UI i API Express + TypeORM. ## Zakres - logowanie i rejestracja z mozliwoscia wylaczenia rejestracji przez admina - wydatki z potwierdzeniami: paragon, faktura, notatka, wyciag, inne - zapisani kontrahenci do wyboru przy dodawaniu wydatku - kategorie systemowe i prywatne - dashboard i statystyki z filtrowaniem po datach i kategoriach - raporty email z preferencjami uzytkownika - ustawienia SMTP i test SMTP - panel admina z zarzadzaniem uzytkownikami - Docker Compose dla produkcji i start lokalny bez Dockera ## Produkcja w Dockerze z reverse proxy ```bash cp .env.example .env docker compose up --build -d ``` Architektura produkcyjna: - `reverse-proxy` - publiczny punkt wejscia HTTP - `web` - statyczny frontend Angular za proxy - `api` - backend Express dostepny tylko wewnatrz sieci Dockera - `postgres` - baza danych Publiczny adres aplikacji: - frontend + API przez proxy: `http://localhost:8080` - API pod proxy: `http://localhost:8080/api` Najwazniejsze zasady: - Docker Compose korzysta z pliku `.env` - wartosci nie sa wpisane na sztywno w `docker-compose.yml` - `api` i `postgres` dostaja konfiguracje przez `env_file` - tylko `reverse-proxy` wystawia port na hosta Przykladowe klucze w `.env`: - `PUBLIC_HTTP_PORT` - port reverse proxy na hoĊ›cie - `API_CORS_ORIGIN` - publiczny adres aplikacji, np. `https://twoja-domena.pl` - `POSTGRES_DB`, `POSTGRES_USER`, `POSTGRES_PASSWORD` - `JWT_SECRET` ## Dewelopersko lokalnie bez reverse proxy ```bash chmod +x start_dev.sh ./start_dev.sh ``` Tryb dev: - backend uruchamia sie lokalnie - Angular dev server uruchamia sie lokalnie - `/api` i `/uploads` ida przez proxy Angulara z `web/proxy.conf.json` - reverse proxy z Dockera nie jest potrzebne Domyslne dane dev: - email: `admin@local.dev` - haslo: `Admin123!` ## Reczne scenariusze testowe 1. Zaloguj sie jako admin. 2. Dodaj kontrahenta w `Kontrahenci`. 3. Dodaj wydatek i wybierz kontrahenta z listy. 4. Dodaj obraz lub PDF jako potwierdzenie. 5. Otworz `Statystyki` i zmien okres. 6. Otworz `Raporty`, zapisz preferencje i sprawdz podglad. 7. Otworz `Admin`, skonfiguruj SMTP i wykonaj test SMTP. 8. Zmien role lub status jednego z uzytkownikow. ## Struktura - `api/` - backend Express + TypeORM - `web/` - frontend Angular + Tabler UI - `reverse-proxy/` - konfiguracja publicznego reverse proxy dla produkcji - `docker-compose.yml` - stack produkcyjny - `start_dev.sh` - lokalny start bez Dockera