--- title: "Grantforge Api" emoji: "🏢" colorFrom: "blue" colorTo: "red" sdk: "docker" app_file: "app.py" pinned: false app_port: 7860 --- # Antigravity Dotacje - Architektura i Założenia Antigravity Dotacje to zaawansowana aplikacja typu SaaS zaprojektowana dla sektora B2B. Służy do automatycznego analizowania szans na uzyskanie dotacji ze środków unijnych oraz generowania wniosków dotacyjnych przy użyciu modeli językowych LLM współpracujących z bazą wektorową RAG (Retrieval-Augmented Generation). ## Stos Technologiczny ### Frontend (User Interface) * **Framework:** React + TypeScript (Vite) * **Nawigacja:** `react-router-dom` * **Zarządzanie Stanem / Autoryzacja:** Clerk (`@clerk/clerk-react`) użyty jako Identity Provider. * **Stylizacja:** Czysty CSS / CSS Modules (z elementami designu inspirowanymi trendem Glassmorphism w edycji Enterprise: głębokie kontrasty, `backdrop-filter: blur`, zgaszone akcenty gradientowe). * **Komponenty interaktywne i animacje:** `framer-motion` * **Wizualizacje/Grafika:** Ikony `lucide-react`. ### Backend (Logic & AI) * **Framework:** FastAPI (Python 3.10+) - asynchroniczny z API opartym o Pydantic. * **Baza Konwencjonalna:** MongoDB (Motor / PyMongo) do przechowywania profili użytkowników, zapisanych projektów i logów. * **Architektura RAG (Baza Wektorowa):** Zintegrowana z silnikami wektorowymi (np. Qdrant lub Pinecone - w zarysie koncepcyjnym LLM przeszukuje embedingi PDF-ów z regulaminami POIR, FENG, ARiMR). W bieżącej fazie demonstracyjnej mechanizmy LLM są zabezpieczone odpowiednimi asercjami i symulowane. * **Obsługa CORS:** Skonfigurowana w `main.py` pod domenę frontendu (np. Vercel). ## Architektura Systemu System opiera się na wydzielonych blokach modułowych: 1. **Discovery (Wizard):** Rejestrowany użytkownik (przez profil Clerk) rozpoczyna proces od wprowadzenia NIP-u i zarysu planowanej inwestycji R&D / MŚP. 2. **Matchmaking RAG (AI Analyst):** Asystent filtruje aktualne dotacje (SMART, ARiMR, ZUS) oceniając procent "Match" (np. 92% na Ścieżkę SMART). 3. **Draft Generation (Generowanie Wniosku):** Projekt zostaje utworzony w bazie (`/projects`). Następnie model AI generuje określone wymagane sekcje (np. "Wpływ DNSH", "Kwalifikacja MŚP"). 4. **Critic Loop (Weryfikacja / Recenzja):** Moduł Critic sprawdza gotowy draft pod kątem regulaminów. Zwraca feedback w skali `low`/`medium`/`high` severity nakazując poprawę. 5. **Finalisation:** Scalenie zaakceptowanych sekcji do postaci dokumentu w formacie Markdown z opcją pobrania do formatu TXT/MD bądź wydruku przez natywny silnik PDF w przeglądarce (`@media print`). ## Struktura Katalogów ```text / ├── backend/ # API w Python + FastAPI │ ├── app/ # Główne pliki backendowe │ │ ├── main.py # Inicjalizacja App + Endpointy │ │ ├── models.py # Modele Pydantic │ │ ├── services.py # Warstwa logiki (symulacje LLM / RAG) │ ├── requirements.txt │ ├── frontend-react/ # Aplikacja Single Page App (SPA) │ ├── src/ │ │ ├── api/ # Warstwa transportowa Axios -> FastAPI │ │ ├── components/ # Moduły wizualne (Dashboard, Modale, Edytor) │ │ ├── styles/ # Pliki CSS (dashboard.css, globals.css) │ │ ├── App.tsx # Definicje Routingów Frontendowych │ ├── package.json ``` ## Uruchamianie Lokalne 1. **Backend:** Skonfiguruj MongoDB URL (np. w `.env` jeśli zaimplementowane, domyślnie łączy do klastra z bazy chmurowej/lokalnej). ```bash cd backend pip install -r requirements.txt python run.py # Backend uruchomi się na porcie 8000 ``` 2. **Frontend:** Skonfiguruj zmienną w `.env` powiązaną z instancją CLERK (`VITE_CLERK_PUBLISHABLE_KEY`). ```bash cd frontend-react npm install npm run dev # Frontend uruchomi się na porcie 5173 ```