Architettura del Progetto - lucadileo9/template-catalog GitHub Wiki
Panoramica
Il progetto Γ¨ organizzato in modo modulare per supportare la creazione e la gestione di template indipendenti (es. siti per pizzerie, centri estetici, ecc.). Ogni template Γ¨ autosufficiente e contiene le sue risorse specifiche, mentre alcune risorse sono condivise a livello globale per garantire coerenza e riusabilitΓ .
La struttura si divide in due parti principali:
- Cartelle Globali: Contengono risorse condivise tra tutti i template, come componenti ShadCN, utility globali e configurazioni.
app/
: Cartella principale dell'app Next.js, gestisce il routing e le pagine globali.page.tsx
: Pagina principale del catalogo template.[...slug]/page.tsx
: Carica il template richiesto in base al percorso URL.
components/
: Contiene componenti condivisi tra tutti i template.config/
: File di configurazione globale (es. template validi, siti esterni).public/
: Contiene risorse statiche globali e sottocartelle per le risorse specifiche di ciascun template.components.json
: Configurazione ShadCN per componenti UI globali.
- Cartelle dei Template: Contengono risorse specifiche per ciascun template, come pagine, stili e immagini.
config.js
: Contiene la configurazione del template, inclusi colori, menu items e logo.styles/GlobalStyle.tsx
: Gestisce i colori dinamici del template tramite variabili CSS (--primary
,--secondary
, ecc.).app/layout.tsx
: Definisce il layout del template, inclusi header, footer e altre sezioni comuni.app/page.tsx
: Pagina principale del template.public/<nome-template>/
: Contiene risorse statiche specifiche del template, come immagini o file. SONO NELLA CARTELLA GENERALE
Struttura Dettagliata
βββ lucadileo9-template-catalog/
βββ README.md # Documentazione generale del progetto.
βββ components.json # Configurazione ShadCN per componenti UI globali.
βββ next.config.js # Configurazione di Next.js (alias, immagini).
βββ package.json # Dipendenze e script del progetto.
βββ plopfile.js # Configurazione Plop per generatori automatici.
βββ postcss.config.js # Configurazione PostCSS per Tailwind.
βββ tailwind.config.js # Configurazione di Tailwind CSS.
βββ tsconfig.json # Configurazione TypeScript (alias, compilatore).
βββ .eslintrc.json # Configurazione ESLint per linting.
βββ app/ # Cartella principale dell'app Next.js.
β βββ globals.css # Stili globali con variabili CSS.
β βββ layout.tsx # Layout globale dell'app.
β βββ page.tsx # Pagina principale del catalogo template.
β βββ [...slug]/ # Routing dinamico per i template.
β β βββ page.tsx # Carica il template richiesto.
β βββ components/ # Componenti locali dell'app.
β βββ button/ # Esempio di componente locale.
β βββ index.tsx # Implementazione del componente.
βββ components/ # Componenti condivisi tra tutti i template.
β βββ lib/ # Funzioni di utilitΓ globali.
β β βββ utils.ts # Funzioni comuni (es. date, validazioni).
β βββ ui/ # Componenti ShadCN globali.
β βββ button.tsx # Componente globale ShadCN (es. pulsante).
βββ config/ # Configurazioni globali.
β βββ templates.ts # Array dei template validi (`validTemplates`).
β βββ external-sites.ts # File con i siti esterni prodotti.
βββ public/ # Risorse statiche globali (es. favicon).
β βββ estetista/ # Risorse specifiche per il template estetista.
βββ templates/ # Cartelle dei template indipendenti.
β βββ estetista-template/ # Template specifico per un centro estetico.
β βββ config.js # Configurazione del template (colori, menu, logo).
β βββ description.md # Descrizione del template.
β βββ plopfile.js # Configurazione locale di Plop (opzionale).
β βββ app/ # Pagine e layout del template.
β β βββ layout.tsx # Layout del template.
β β βββ page.tsx # Pagina principale del template.
β βββ components/ # Componenti locali del template.
β β βββ index.ts # Esportazione centralizzata dei componenti.
β βββ styles/ # Stili locali del template.
β βββ globals.css # Stili globali del template.
β βββ GlobalStyle.tsx # Gestisce i colori dinamici del template.
βββ .plop/ # Configurazione di Plop per generatori.
βββ generators/ # Generatori di Plop.
β βββ component.js # Genera nuovi componenti.
β βββ route.js # Genera nuove pagine/routes.
β βββ template.js # Genera nuovi template.
βββ templates/ # Template Handlebars per la generazione.
βββ component/ # Template per componenti.
β βββ component.hbs # Struttura base del componente.
β βββ types.hbs # Tipi TypeScript associati.
βββ route/ # Template per pagine/routes.
β βββ page.hbs # Struttura base di una pagina.
βββ template/ # Template per interi template.
βββ config.hbs # File `config.js`.
βββ description.hbs # File `description.md`.
βββ footer.hbs # Componente Footer.
βββ globals-css.hbs # File `globals.css`.
βββ header.hbs # Componente Header.
βββ hero.hbs # Componente Hero.
βββ layout.hbs # Layout del template.
βββ page.hbs # Pagina principale del template.
βββ placeholder-image.hbs # Immagine segnaposto.