Choix technologiques - Tablify-Developement/Tablify-Web GitHub Wiki
Résumé coaching 2c
+ Le langage ou le framework choisi pour le backend, puis pour le frontend est décrit. Il s'agit de technologies "intéressantes" dans le cadre du projet.
+ Les spécificités de la technologie choisie sont mises en avant : avantages / inconvénients et comparaison avec minimum deux technologies concurrentes.
1. Backend
Technologie principale
- Node.js avec Express.js
- TypeScript pour une meilleure robustesse du code
- JWT (JSON Web Token) pour l’authentification sécurisée
Justification
Node.js permet de développer rapidement une API asynchrone et scalable.
Express.js offre un framework minimaliste mais puissant, idéal pour construire une API RESTful.
- Asynchrone par nature
- Parfait pour les opérations réseau fréquentes (appels IoT)
- Large communauté et documentation
Comparaison
Technologie | Avantages | Inconvénients |
---|---|---|
Node.js (choisi) | Rapide, asynchrone, riche écosystème | Mono-threadé (non bloquant mais attention CPU) |
Django (Python) | ORM intégré, admin automatique, structure solide | Plus lourd, moins orienté microservices |
Spring Boot (Java) | Robuste, sécurisé, standard en entreprise | Verbeux, temps de démarrage long |
2. Base de données Backend
Technologie
- PostgreSQL (via Docker Compose)
Justification
PostgreSQL a été choisi pour sa rigueur relationnelle et sa compatibilité avec les architectures RESTful.
Il est déployé en local dans un conteneur Docker, ce qui facilite l'installation, le partage et l'intégration dans un environnement de développement collaboratif.
- Base SQL robuste avec support des contraintes, transactions et relations
- Compatible avec les ORM et outils d’administration classiques
- Déploiement isolé et réplicable via Docker
Comparaison
Technologie | Avantages | Inconvénients |
---|---|---|
PostgreSQL (choisi) | Relations fortes, transactions, standard SQL | Moins flexible pour données très imbriquées |
MongoDB | Flexible, rapide, schéma libre | Pas de jointures natives, risque d’incohérences |
MySQL | Rapide, connu, facile à héberger | Moins riche que PostgreSQL en fonctionnalités |
3. Frontend
Technologie
- Next.js (basé sur React.js)
- Utilisation de TypeScript
- Tailwind CSS pour le style
Justification
Next.js permet une génération hybride (statique/SSR) optimisée pour le SEO et la performance.
React offre une interface modulaire, réactive et maintenable.
- Routing intégré
- Rendu serveur pour des performances accrues
- Support natif des API côté client/serveur
Comparaison
Technologie | Avantages | Inconvénients |
---|---|---|
Next.js (choisi) | SSR + SSG, API intégrée, très performant | Courbe d’apprentissage plus technique |
Vue.js | Syntaxe intuitive, simple à prendre en main | Moins utilisé dans les projets pro React |
Angular | Framework complet, structuration imposée | Lourd, verbeux, overkill pour petits projets |
4. Outils complémentaires
- JWT : pour authentifier les utilisateurs côté API de manière sécurisée
- SendGrid : pour les emails de confirmation et notifications
- GitHub : versionnage, GitHub Actions pour CI/CD, gestion des issues
- Postman / Thunder Client : tests des routes API pendant le dev
- Figma : prototypage des interfaces web (validation client)