Ce projet est une application web basée sur Next.js, développée selon l'architecture MVC (Model-View-Controller). Il permet la gestion de différents blocs de contenu et l'interaction avec des API backend.
- Prérequis
- Installation
- Démarrage
- Structure du Projet
- Architecture MVC
- Explication du Code
- Déploiement
- Ressources
- Node.js : version >= 18.0.0 <= 20.x.x
- npm : version >= 6.0.0
-
Clonez le dépôt du frontend :
git clone https://github.com/GabsBaquie/Nation-Sound-Front next-app cd next-app -
Installez les dépendances :
npm install
-
Configurez les variables d'environnement :
Créez un fichier
.envà la racine du projet et ajoutez les valeurs suivantes (ou celles qui conviennent à votre environnement) :NEXT_PUBLIC_API_URL=http://localhost:1337
Pour démarrer l'application en mode développement, exécutez :
npm run devEnsuite, ouvrez votre navigateur à l'adresse http://localhost:3000 pour voir le résultat.
Voici un aperçu de la structure des dossiers du projet :
next-app/
├── .env
├── .eslintrc.json
├── .gitignore
├── .next/
├── app/
│ ├── globals.css
│ └── layout.tsx
├── components/
│ ├── animation/
│ ├── blocks/
│ ├── landingBlocks.tsx
│ └── NavBar/
├── controller/
│ ├── pagesController/
│ ├── slugController/
│ └── BlocksController.ts
├── models/
├── pages/
├── public/
├── tailwind.config.js
└── README.md
- app/ : Contient les composants globaux tels que le layout et les fichiers CSS.
- components/ : Stocke les composants réutilisables, organisés par catégorie.
- controller/ : Contient les fichiers contrôleurs qui gèrent la logique métier de l'application.
- models/ : Contient les modèles de données utilisés par l'application.
Les modèles sont responsables de la gestion des données et de la logique métier. Ils sont définis dans le dossier models. Par exemple, le modèle HeroBlockModel contient les données pour le bloc Hero.
Les vues, principalement situées dans le dossier components, sont responsables de l'affichage des données. Par exemple, HeroBlock est un composant qui affiche les informations provenant du modèle HeroBlockModel.
Les contrôleurs gèrent les interactions entre les modèles et les vues. Ils sont définis dans le dossier controller. Par exemple, HeroBlockController contient la logique qui relie le modèle HeroBlockModel à la vue HeroBlock.
-
Entrée Utilisateur : L’utilisateur interagit avec l’application via le navigateur en naviguant et en cliquant sur des éléments.
-
Composants Vue (components/) :
- Les composants situés dans le dossier
components/affichent les données et gèrent l’interface utilisateur. Ils comprennent :- NavBar : Barre de navigation.
- LandingBlocks : Composant principal pour afficher différents blocs de contenu.
- Map : Composant pour afficher une carte.
- GenericCard : Composant pour afficher des cartes génériques.
- Les composants situés dans le dossier
-
Pages (pages/) :
- Les pages de l’application, situées dans le dossier
pages/, utilisent les composants de vue pour afficher les différentes sections de l’application (ex. Billetterie, About, Programmation).
- Les pages de l’application, situées dans le dossier
-
Contrôleurs (controller/) :
- Les contrôleurs situés dans le dossier
controller/gèrent les interactions entre les modèles et les vues. Ils récupèrent les données des modèles et les envoient aux composants pour l’affichage :- BilletterieController : Gère les données de billetterie.
- AboutController : Gère les données de la page “About”.
- ProgrammationController : Gère les données de la programmation.
- Les contrôleurs situés dans le dossier
-
Modèles (models/) :
- Les modèles situés dans le dossier
models/définissent la structure des données de l’application :- BilletterieModel : Modèle pour les données de billetterie.
- AboutModel : Modèle pour les données de la page “About”.
- ProgrammationModel : Modèle pour les données de la programmation.
- Les modèles situés dans le dossier
-
Base de données / API backend :
- Les modèles récupèrent les données à partir de la base de données ou d’une API backend (par exemple, via une API REST).
Le déploiement de l'application peut se faire facilement sur la plateforme Vercel :
- Créez un nouveau projet sur Vercel.
- Suivez les instructions pour connecter votre dépôt GitHub.
- Vercel déploiera automatiquement l'application après chaque mise à jour du code.
Pour plus de détails, consultez la documentation de Next.js sur le déploiement.
