2.7 KiB
3RESIT Freetube
Sommaire
- Introduction au projet
- Organisation
- Les technologies utilisées
- Le serveur
- Le site web
- La base de données
- Le serveur
- Les dépendances
- Le fonctionnement
- Le site web
- Les dépendances
- Le fonctionnement
- La base de données
- Diagramme des tables
- Installation
- Docker Compose
- Script Shell
- Manuelle
Introduction
Pour ce projet il nous a été demandé de recréer une plateforme similaire a Youtube nommée Freetube. Cette application web devait être gratuite et sans publicités. Nous avions la main libre sur le choix de la pile technologique utilisée et sur l'organisation du projet.
Organisation
J'ai commencé par faire un plan détaillés de toute les routes et vérifications a effectué pour chaque fonctionnalité, puis faire un plan de la base de données. Ceci allait définir toute la structure du projet.
Pour ce qui est du développement, j'ai choisis de procéder fonctionnalité par fonctionnalité en commençant par le serveur et la base de données pour les intégrer ensuite dans le site web. Pour séparer toute ces parties j'ai utilisé git en créant plusieurs branches, une par fonctionnalité.
Les technologies utilisées
Le serveur
Le serveur utilise NodeJS, j'ai choisis ce langage car il permet d'implementer une API REST efficacement grâce a son système d'asynchronisation natif très performant. Etant créer a partir du Javascript il est aussi plus simple a comprendre et a écrire. Même si NodeJS n'est pas le plus connu en terme de rapidité d'éxecution ce n'est pas un problème dans notre situation car nous travaillons avec une API qui ajoutera un temps de latence supplémentaire.
Le site web
Le site web est programmé en ReactJS avec Vite ce qui donne un backend et un frontend dans le même langage ce qui permet une maintenance et des mises à jour plus simple. Tout comme NodeJS, ReactJS et créé a partir de Javascript, il bénéficie donc de la même intégration de l'asynchrone natif. Le système de composant de ReactJS permet aussi une gestion de mise à jour de l'interface en temps réel plus simple a mettre en place et évite la duplication de code.
La base données
La base de données et une base PostgreSQL, un système basé sur le langage SQL largement connu. PostgreSQL est une alternative OpenSource à MySQL. Il possède une très bonne intégration du JSON très utilisé comme moyen d'envoyer des données via requête HTTP utilisé dans les API REST.
Le serveur
Les dépendances
Pour l'API REST j'ai choisis d'utiliser ExpressJS couplé avec express-validator