Skip to content

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 containerizzata

Directory 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 chiama startServer da src/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).

Rilasciato sotto licenza MIT.