Analisi dell'Albero dei Sorgenti β
Questa sezione descrive la struttura del repository di TuneCamp, evidenziando le directory critiche e la loro funzione.
Struttura del Progetto β
tunecamp/
βββ contracts/ # Smart Contract (Solidity)
β βββ TuneCampCheckout.sol
β βββ TuneCampFactory.sol
β βββ TuneCampNFT.sol
βββ docs/ # Documentazione tecnica (Markdown, JSON)
βββ src/ # Sorgenti e strumenti del backend
β βββ server/ # Logica principale del server Express
β β βββ common/ # UtilitΓ condivise ed errori
β β βββ core/ # Configurazione, container DI, database, caricatore plugin
β β βββ middleware/ # Middleware Express (Autenticazione, gestione errori, limitatore di frequenza)
β β βββ modules/ # Logica di business specifica del dominio (ActivityPub, Catalogo, AI, Live, Radio, Archiviazione, Worker, ...)
β β βββ providers/ # Implementazioni dei provider di plugin (metadati, streaming, archiviazione, ...)
β β βββ repositories/ # Livello di accesso ai dati (Album, Artista, Traccia)
β β βββ routes/ # Endpoint delle API REST (admin, api [incluso radio, mcp], auth, libreria, rete)
β β βββ server.ts # Bootstrap del server Express
β β βββ types/ # Tipi condivisi del backend
β β βββ utils/ # Funzioni di utilitΓ per il server
β βββ tools/ # Script di manutenzione, backup e migrazione
β βββ utils/ # Funzioni di utilitΓ generale
βββ webapp/ # Applicazione frontend React
β βββ public/ # Asset statici e file WASM
β βββ src/ # Sorgenti React
β βββ components/ # Componenti UI organizzati per dominio
β βββ data/ # Configurazione statica del client (es. labApps.ts β registro delle app Lab)
β βββ hooks/ # Hook React personalizzati
β βββ pages/ # Componenti pagina (punti di ingresso delle rotte, inclusi Radio e Lab)
β βββ services/ # Servizi API client e webapp
β βββ stores/ # Gestione dello stato (Zustand)
βββ docker-compose.yml # Configurazione per la distribuzione containerizzataDirectory Critiche e loro Scopo β
src/server/ β
Contiene tutta la logica del server. Utilizza un'architettura a livelli:
- Rotte (Routes): Definiscono l'interfaccia delle API.
- Repository: Gestiscono le query SQLite.
- Moduli (Modules): Racchiudono funzionalitΓ complesse come la federazione ActivityPub o la gestione dei file audio.
webapp/src/ β
Il cuore dell'interfaccia utente.
- Pagine (Pages): Directory fondamentale che mappa le rotte del frontend.
- Componenti (Components): Divisi in
ui/(base),layout/,modals/e directory tematiche (player/,artist/,admin/). - Servizi (Services):
api.tsè il punto di accesso principale per comunicare con il backend.
contracts/ β
Definisce la logica on-chain per la monetizzazione e il controllo degli accessi.
src/tools/ β
Essenziale per la gestione della libreria musicale (ricollegamento dei percorsi, migrazioni del database, generazione di codici di sblocco).
Punti di Ingresso β
- Backend:
src/index.tsβ punto di ingresso: carica la configurazione e chiamastartServerdasrc/server/server.ts. - Webapp:
webapp/src/main.tsxβ punto di montaggio dell'applicazione React. - CLI/Strumenti: Vari script in
src/tools/(backup, restore, generate-codes, relink-tracks, migrazioni).