Site web officiel du BDE de l'IUT Informatique Lyon 1 - site Doua.
Ce README est Ă l'intention de tous les mainteneurs du projet. Donc avant toute chose, gros †sur vous et n'oubliez jamais que vous faites partie de la meilleure association Ă©tudiante de tous les temps đ #LesIUTsDominentLeMonde
Dans la suite de ce document, nous allons dĂ©signer la partie front-end de client et la partie back-end de serveur, afin d'ĂȘtre raccord avec le nom des dossiers du code source.
Le front est une application React rendue Ă l'aide du merveilleux framework Next.js.
Dans les grandes lignes, Next.js permet d'avoir un mode de rendu hybride, combinant :
- SSG (Static Server Generation) -> application générée cÎté serveur au moment de la compilation
- SSR (Server Side Rendering) -> application gĂ©nĂ©rĂ©e cĂŽtĂ© serveur Ă chaque requĂȘte d'un client
- CSR (Client Side Rendering) -> l'application est hydratée cÎté client Plus d'informations des fonctionnalités clées du framework ici.
Afin de pouvoir modifier le client, il vous est donc conseillé de bien connaßtre React et de vous renseigner sur Next.js.
Quant au back du site, il s'agit d'une application Strapi, un headless CMS open source Ă la fois simple d'utilisation et extrĂȘmement puissant.
Il permet de gérer les données ainsi que leur ajouts via une interface pré-faite et un systÚme d'utilisateurs possédants différents niveaux de droits. Le tout est accessible à n'importe quelle application externe à l'aide d'une API générée automatiquement.
Le site a été plus ou moins conceptualisé comme une JAMStack. Le front-end et le back-end sont totalement découplés et intéragissent entre eux à l'aide d'appels API.
Comme expliquĂ© prĂ©cĂ©demment, Next.js propose plusieurs modes de rendu. Ătant donnĂ© que le site du BDE est principalement statique, mais possĂšde tout de mĂȘme des donnĂ©es qui changent de temps en temps (la liste des Ă©vĂšnements), le choix a Ă©tĂ© fait d'utiliser le mode de rendu ISR.
Donc concrÚtement, l'application est générée au moment de la compilation, mais va vérifier tous les x temps si les données n'ont pas changées. Si c'est le cas, alors la page concernée sera re-générée.
Ainsi, on bĂ©nĂ©ficie des avantages de la gĂ©nĂ©ration statique cĂŽtĂ© serveur, et tout particuliĂšrement d'une rapiditĂ© Ă©poustouflante cĂŽtĂ© client couplĂ©e Ă une faible charge cĂŽtĂ© serveur Ă©tant donnĂ©e que le HTML, CSS et JS sont dĂ©jĂ gĂ©nĂ©rĂ©s et n'attendent qu'Ă ĂȘtre envoyĂ©s aux utilisateurs.
De plus, les pages déjà générées seront mises à jour réguliÚrement avec les derniÚres données en date.
Seule la structure de l'application Next.js va ĂȘtre dĂ©taillĂ©e. En effet, sauf cas exceptionnel il est trĂšs peu utile de modifier directement le code source de l'application Strapi car tout se gĂšre depuis le panel administrateur.
client
âââ next.config.js // config de Next.js
âââ jsconfig.js // configuration webpack, etc
âââ config // fichiers de configurations du code source
âââ public // fichiers statiques dĂ©livrĂ©s tels quels aux utilisateurs
â ââ scripts // scripts Javascript
â ââ styles // fichiers de style SASS globaux
â ââ assets // images, svg, favicons, etc
ââ src // contient le code source de l'application
ââ components // composants React
â ââ elements // composants primaires (ex: un bouton)
â ââ modules // compositions d'elements (ex: un form, une navbar, etc)
â ââ layout // façon d'agencer la page
â ââ templates // contenu des pages
ââ hooks // hooks React personalisĂ©s
ââ utils // fonctions utilitaires
Voici la liste des personnes ayant contribuées au projet. Si tu es un nouveau mainteneur, n'hésite pas à les contacter pour leur poser des questions sur le code ou autre !
- Bartholomé GILI (auteur) - 2021/2022