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)