76 lines
2.4 KiB
Markdown
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
|