Mateusz Gruszczyński e4e2758416 fix in compose
2026-04-07 12:28:20 +02:00
2026-04-07 11:41:05 +02:00
2026-04-07 12:15:00 +02:00
2026-04-07 11:41:05 +02:00
2026-04-05 13:40:27 +02:00
2026-04-06 16:59:23 +02:00
2026-04-05 13:40:27 +02:00
2026-04-06 15:38:16 +02:00
2026-04-07 12:28:20 +02:00
2026-04-05 13:40:27 +02:00
2026-04-05 13:40:27 +02:00
2026-04-07 10:06:48 +02:00

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

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

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
Description
No description provided
Readme 1.5 MiB
Languages
TypeScript 72.6%
HTML 24.5%
SCSS 2.4%
Shell 0.4%
Dockerfile 0.1%