Skip to content

BDEInfo/bdeinfo-website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BDE Info website

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

Technologies

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.

Client | Next.js

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.

Serveur | Strapi

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.

Architecture

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.

Structure du projet

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

Crédits

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 !