Files
expense-control/README.md
Mateusz Gruszczyński 9a6e77a5fc first commit
2026-04-05 13:40:27 +02:00

76 lines
2.4 KiB
Markdown

# 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