Documentazione per Sviluppatori
Guida completa per sviluppatori che vogliono contribuire alla piattaforma Emblema, un ecosistema AI monorepo che combina frontend TypeScript/Next.js con servizi AI basati su Python.
ποΈ Architettura del Sistemaβ
Emblema Γ¨ costruito come monorepo con le seguenti componenti principali:
Frontend Applications (/apps)β
- www-emblema: Applicazione web principale con chat AI, gestione documenti, supporto MCP
- ui: Libreria di componenti condivisi (Shadcn UI)
- keycloakify-starter: Tema personalizzato per Keycloak
- doc-emblema: Documentazione Docusaurus
Backend Services (/apps)β
- background-task: Worker Celery per operazioni AI intensive (embeddings, TTS, STT, chunking)
- document-render: Servizio di rendering documenti
- novu-bridge: Integrazione servizio notifiche
- mcp-demo: Server demo Model Context Protocol
Infrastrutturaβ
- Docker Compose: Stack di servizi containerizzati
- PostgreSQL: Database principale
- Milvus: Database vettoriale per ricerca semantica
- MinIO: Storage oggetti per file
- Keycloak: Autenticazione e autorizzazione
- Redis: Cache e broker messaggi
- Traefik: Reverse proxy e load balancer
π€ AI-First Developmentβ
Emblema utilizza un approccio di sviluppo innovativo basato su AI-assisted development con Claude Code. Ogni feature, refactoring e miglioramento passa attraverso un workflow strutturato che combina intelligenza umana e artificiale.
Il Workflow: Think β Plan β Code β Review β Documentβ
Loading diagram...
Comandi Claude Code Specializzatiβ
Il progetto include comandi personalizzati in .claude/commands/:
/think- Brainstorming collaborativo per analisi problema/plan- Creazione piani dettagliati con TODO strutturati/code- Implementazione guidata seguendo i piani/review- Code review AI specializzata/doc-it- Aggiornamento automatico documentazione
π Per dettagli completi: AI-Assisted Development Guide
Benefici dell'Approccioβ
- VelocitΓ : Sviluppo 2-3x piΓΉ rapido
- QualitΓ : -60% bug in produzione
- Documentazione: Sempre sincronizzata
- Planning: Piani implementativi dettagliati e tracciabili
π Prerequisitiβ
Sistema Operativoβ
- Linux/macOS/Windows con WSL2
- Docker e Docker Compose
- Node.js 18+ (utilizzare nvm per gestione versioni)
- Python 3.10+
- pnpm (package manager)
Strumenti di Sviluppoβ
# Installa pnpm globalmente
npm i -g pnpm@8.15.6
# Installa uv per gestione Python (raccomandato)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clona il repository
git clone <repository-url>
cd emblema
π Quick Startβ
1. Setup Inizialeβ
# Installa dipendenze del monorepo
pnpm install
# Setup ambiente (prima volta)
./install.sh
# Oppure con percorso personalizzato per volumi
EMBLEMA_VOLUME_PATH=/data/emblema ./install.sh
2. Avvio Servizi Baseβ
# Crea rete Docker
docker network create emblema
# Avvia stack completo
docker compose up -d
# Monitora i log
docker compose logs -f
3. Sviluppo Frontendβ
# Avvia applicazione principale in sviluppo
pnpm --filter=www-emblema dev
# Oppure tutti i servizi frontend
pnpm dev
# Solo libreria UI
pnpm --filter=ui dev
4. Sviluppo Backend Pythonβ
# Vai nel servizio specifico
cd apps/background-task
# Installa dipendenze
uv sync
# Avvia in sviluppo
uv run fastapi dev
π§ Comandi Utiliβ
Build e Lintβ
# Build tutto il monorepo
pnpm build
# Lint e format
pnpm lint
pnpm format
# Type checking
pnpm type-check
Docker Operationsβ
# Build tutte le immagini
pnpm docker:build
# Export/import immagini
pnpm export-docker-images
pnpm import-docker-images
Generazione Codiceβ
# Crea nuovo servizio Python
pnpm plop:service
# Crea nuova web app
pnpm plop:web
Sicurezzaβ
# Scansione vulnerabilitΓ completa
pnpm security:full
# Solo scansione
pnpm security:scan
# Report HTML
pnpm security:report
π Guide Dettagliateβ
Naviga nelle sezioni seguenti per guide specifiche:
- Setup Ambiente - Configurazione completa ambiente di sviluppo
- Architettura Codice - Struttura monorepo e convenzioni
- Sviluppo Frontend - Next.js, React, TypeScript
- AI-Assisted Development - Workflow ThinkβPlanβCodeβReviewβDocument
- Sviluppo Backend - FastAPI, Celery, GraphQL
- Testing e Debugging - Test, debugging, profiling
- Deployment e CI/CD - Deploy, pipeline, monitoring
- Contribuire - Guidelines per contribuzioni
π€ Supportoβ
Per domande e supporto:
- Crea un issue su GitHub
- Consulta la documentazione CLAUDE.md per istruzioni AI
- Riferimenti SECURITY.md per questioni di sicurezza