Bourdel Théo

Capture d'écran de l'interface du projet Weddy

Weddy

FlutterGolang

Télécharger le SDK

Contexte

Projet réalisé en groupe de 4 personnes pendant le 2ème semestre de ma 2ème année de Master. Le but de ce projet est de réaliser des applications Flutter mobile et web sʼinterfaçant avec une API Golang pour gérer des groupes de personnes autour dʼune thématique commune (école, concert, voyage, sport, événement…). Il sera nécessaire de trouver un sujet correspondant aux fonctionnalités principales décrites ci-après et de le faire valider par les coachs lors de la première journée

Description

Golang
  1. API REST
    • Système dʼauthentification (au minimum via login / mot de passe)
    • Gestion multi-rôles (utilisateur simple, administrateur…), vérification des droits et filtrage des résultats lors des requêtes en fonction du rôle de lʼutilisateur connecté
    • Interface Swagger UI pour interagir avec lʼAPI
    • API CRUD sur les éléments fonctionnels de lʼapplication
  2. API Web Socket fournissant au moins une fonctionnalité temps-réel
  3. Configuration modifiable (via fichier de conf, variables dʼenvironnement, base de données…)
  4. Logs formatés consultables
  5. Base de données relationnelle avec jeu de données conséquent représentatif des cas dʼusages de lʼapplication
  6. Feature flipping : possibilité dʼactiver ou désactiver certaines fonctionnalités de sans redémarrer lʼapplication
Flutter
  1. Application mobile (iOS & Android)
    • Écrans différents en fonction des rôles de lʼutilisateur
    • Envoi de notifications push
    • Utilisation dʼune technologie pseudo temps réel
    • Intégration du multilingue
  2. Application web
    • Panel dʼadministration cohérent pour contrôler les différentes entités du projet
    • Affichage des événements survenant au sein de lʼapplication pour consultation

Contraintes

Golang
  1. Utilisation de Go 1.22.1
  2. Base de données Postgresql
  3. API stateless, avec pagination des résultats
  4. Configuration modifiable (fichier de conf, variables dʼenvironnement, base de données…)
  5. Tests :
    • tests unitaires sur les règles de gestions de lʼapplications
    • tests dʼintégration sur les endpoints de lʼAPI
    • tester aussi les cas dʼerreurs
  6. Erreurs :
    • pas de “panicˮ dans le code, les erreurs doivent être correctement gérées
    • renvoyer des erreurs fonctionnelles par lʼAPI et afficher le details des erreurs techniques dans les logs
  7. Sécurité :
    • API hébergée en HTTPS avec certificat SSL
    • Respect des normes de développement standard (OWASP)
  8. Clean code :
    • Le code doit être découpé en fichiers et dossiers cohérents et respecter les règles du clean code et SOLID (découpage, noms des variables et fonctions…)
    • Code formaté et indenté avec Gofmt
Flutter
  1. Utilisation de plusieurs émulateurs ou terminaux pendant la soutenance pour faire les démonstrations nécessaires en fonction des différents profils
  2. Lʼapplication devra être visuellement responsive en fonction de la taille du téléphone / navigateur
  3. Le code rendu doit être propre et indenté correctement via les outils de base mis à disposition