Repozytorium zawiera aplikację frontendową (React + Vite) oraz backend Node.js/Express. Backend udostępnia endpointy AI i komunikuje się z API OpenAI.
Projekt jest przeznaczony do celów demonstracyjnych/prototypowych.
- Node.js 18+ oraz npm.
- Klucz API OpenAI (
OPENAI_API_KEY) — opcjonalny, potrzebny tylko do funkcji AI.
Jeśli chcesz po prostu używać aplikacji lokalnie:
npm run setup-local
npm run devTo utworzy backend/.env.local z domyślną konfiguracją i uruchomi frontend + backend.
Aplikacja działa bez klucza OpenAI, ale zakładki/funkcje AI będą wtedy niedostępne.
frontend/— aplikacja React (Vite).backend/— serwer Node.js/Express z endpointami AI.
Utwórz plik backend/.env.local (np. kopiując backend/.env.local.example) i ustaw:
API_BACKEND_PORT=5000
API_BACKEND_HOST=127.0.0.1
API_PAYLOAD_MAX_SIZE=12mb
API_CORS_ALLOWLIST=http://localhost:5173,http://127.0.0.1:5173
API_RATE_LIMIT_MAX=30
API_RATE_LIMIT_WINDOW_MS=60000
# OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4.1-mini
AI_MODEL_TEMPERATURE=0.4
AI_MODEL_MAX_TOKENS=700
AI_MODEL_TIMEOUT_MS=12000
PROMPT_VERSION=2026-02-10.v1Kroki są takie same na wszystkich systemach (PowerShell, Terminal, Bash):
npm installnpm run devUruchamia równolegle:
- frontend:
http://localhost:5173 - backend:
http://127.0.0.1:5000
npm run dev-backendnpm run start-backendnpm run build-frontendBackend ma skrypt startowy, który przed uruchomieniem waliduje konfigurację.
Najważniejsza kontrola to obecność OPENAI_API_KEY.
Ręczne wywołanie walidacji:
npm run check-start --prefix backendJeśli OPENAI_API_KEY nie jest ustawiony, backend uruchomi się normalnie, ale endpointy AI zwrócą błąd konfiguracji do czasu ustawienia klucza.
Backend wystawia endpointy pod prefiksem /api/ai:
POST /api/ai/advice— porady finansowe na podstawie transakcji i celów.POST /api/ai/parse-document— ekstrakcja transakcji z dokumentu (pdf,jpg,png,webp,txt).
Backend udostępnia endpoint:
GET /health
Przykładowa odpowiedź:
{
"status": "ok",
"serverReady": true,
"aiConfigured": true,
"checks": {
"openAiKeyConfigured": true,
"aiConfigValid": true,
"payloadLimitValid": true
},
"issues": []
}W przypadku problemu z konfiguracją zwracany jest status 503 i lista issues.
Endpoint nie ujawnia sekretów (pokazuje wyłącznie informacje typu true/false).
Aplikacja ma widok Backup danych w menu bocznym.
- Wejdź w zakładkę Backup danych.
- Kliknij Eksportuj JSON.
- Zapisz plik
.jsonw bezpiecznym miejscu.
- Wejdź w zakładkę Backup danych.
- Kliknij Importuj JSON i wskaż plik backupu.
- Dane zostaną odtworzone do IndexedDB.
Dzięki temu reinstalacja, zmiana urządzenia lub czyszczenie pamięci przeglądarki nie muszą oznaczać utraty danych.
Przed wydaniem wykonaj:
- Build frontendu
npm run build-frontend
- Uruchomienie backendu
npm run start-backend
- Test ścieżki czatu AI
- Otwórz aplikację, przejdź do
Asystent AI, wyślij zapytanie i potwierdź odpowiedź.
- Otwórz aplikację, przejdź do
- Test parsowania dokumentu
- Wgraj przykładowy dokument (
pdf/jpg/png/webp/txt) i sprawdź, czy transakcje są poprawnie odczytywane.
- Wgraj przykładowy dokument (
- Kontrola zdrowia backendu
curl http://127.0.0.1:5000/health
W trybie deweloperskim Vite proxuje żądania /api/ai/* na backend (http://localhost:5000).
Dzięki temu frontend wywołuje lokalne ścieżki:
/api/ai/advice/api/ai/parse-document