
System automatyzacji dokumentacji B+R i IP Box dla Polskich firm

┌─────────────────────────────────────────────────────────────────┐
│ Web Interface │
│ (Nginx + HTML/JS/CSS) │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ API Backend │
│ (FastAPI + CQRS + Event Sourcing) │
└─────────────────────────────────────────────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────┐ ┌──────────┐ ┌──────────┐ ┌───────────────┐
│ OCR Service │ │ LLM │ │PostgreSQL│ │ Integrations │
│ (PaddleOCR) │ │ (LiteLLM)│ │ (Events) │ │ (Accounting + │
│ + Tesseract │ │ + Ollama │ │ + Models │ │ Cloud) │
└─────────────┘ └──────────┘ └──────────┘ └───────────────┘
│ │
▼ ▼
┌──────────┐ ┌──────────────┐
│ Redis │ │ Config DB │
│ (Cache) │ │ (SQLite/PG) │
└──────────┘ └──────────────┘

# Klonuj repozytorium
git clone https://github.com/founder-pl/br
cd br
# Utwórz plik konfiguracji
cp .env.example .env
# Wygeneruj klucz szyfrowania dla integracji
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
# Dodaj do .env jako CONFIG_ENCRYPTION_KEY
# Uzupełnij klucze API (opcjonalne - możesz używać tylko lokalnych modeli)
# OPENAI_API_KEY=sk-...
# ANTHROPIC_API_KEY=sk-ant-...
# Buduj i uruchom
make build
make up-gpu # z GPU
# lub
make up # bez GPU


br-system/
├── docker-compose.yml # Definicja serwisów Docker
├── docker/ # Dockerfiles i konfiguracje
├── config/ # Konfiguracje zewnętrzne
├── src/
│ ├── api/ # FastAPI Backend
│ │ ├── main.py
│ │ ├── routers/ # Endpointy API
│ │ │ ├── documents.py
│ │ │ ├── expenses.py
│ │ │ ├── projects.py
│ │ │ ├── reports.py
│ │ │ ├── clarifications.py
│ │ │ └── integrations.py # API integracji
│ ├── integrations/ # Moduł integracji
│ │ ├── accounting/ # iFirma, Fakturownia, wFirma, InFakt
│ │ ├── cloud/ # Nextcloud, Google Drive, S3, Dropbox, OneDrive
│ │ └── config/ # Baza danych konfiguracji
│ ├── infrastructure/ # Celery, zadania asynchroniczne
│ └── ocr/ # OCR Service
├── tests/ # Testy (unit, integration, e2e)
├── web/ # Frontend
├── docs/ # Dokumentacja
│ ├── STRUCTURE.md # Struktura plików
│ └── INTEGRATIONS.md # Dokumentacja integracji
└── Makefile # Komendy make
| Dostawca | Status | Funkcje |
|---|---|---|
| iFirma | ✅ | Import faktur, wydatków, PDF |
| Fakturownia | ✅ | Import faktur, wydatków, PDF |
| wFirma | ✅ | Import faktur, wydatków |
| InFakt | ✅ | Import faktur, GTU/PKWiU |
| Dostawca | Status | Protokół |
|---|---|---|
| Nextcloud | ✅ | WebDAV |
| Google Drive | ✅ | REST API |
| Dropbox | ✅ | REST API |
| OneDrive | ✅ | Microsoft Graph |
| AWS S3 | ✅ | S3 Protocol |
| MinIO | ✅ | S3 Protocol |
👉 Szczegóły: docs/INTEGRATIONS.md
Zgodnie z art. 26e ustawy o PIT:
| Kategoria | Opis | Stawka odliczenia |
|---|---|---|
personnel_employment |
Wynagrodzenia pracowników (umowa o pracę) | 200% |
personnel_civil |
Umowy zlecenie/o dzieło | 200% |
materials |
Materiały i surowce | 100% |
equipment |
Sprzęt specjalistyczny (niebędący ŚT) | 100% |
depreciation |
Odpisy amortyzacyjne | 100% |
expertise |
Ekspertyzy od jednostek naukowych | 100% |
external_services |
Usługi zewnętrzne B+R | 100% |
POST /api/documents/upload - Upload dokumentuGET /api/documents/{id} - Szczegóły dokumentuGET /api/documents/ - Lista dokumentówPOST /api/expenses/ - Dodaj wydatekPUT /api/expenses/{id}/classify - Klasyfikuj wydatekPOST /api/expenses/{id}/auto-classify - Klasyfikacja LLMGET /api/expenses/categories - Lista kategorii B+RPOST /api/reports/monthly/generate - Generuj raport miesięcznyGET /api/reports/annual/br-summary - Podsumowanie B+R dla PIT/BRGET /api/reports/annual/ip-box-summary - Podsumowanie IP Box dla PIT/IPGET /api/integrations/providers - Dostępni dostawcyPOST /api/integrations/ - Dodaj integracjęPOST /api/integrations/{id}/sync/invoices - Synchronizuj fakturyPOST /api/integrations/{id}/upload/report - Wyślij raport do chmuryGET /api/integrations/{id}/logs - Historia synchronizacjiGET /api/clarifications/ - Lista pytańPUT /api/clarifications/{id}/answer - Odpowiedz na pytanie# Wszystkie testy
make test
# Testy jednostkowe (szybkie)
make test-unit
# Testy integracyjne
make test-integration
# Testy E2E
make test-e2e
# Z pokryciem kodu
make test-coverage
Projekt wewnętrzny firmy Tomasz Sapletta.