AP Mission 3 — BTS SIO SLAM 2026 Terminé

Notes des praticiens

Application mobile Flutter permettant de noter et commenter des praticiens. Avis clients et experts distincts, fiche détail par praticien, tri et classement dynamiques.

DartFlutterMySQLAPI REST

Captures d'écran

Accueil
Accueil — liste des praticiens avec notes globales
Fiche détail praticien
Fiche détail — profil complet d'un praticien
Avis expert
Avis expert — évaluation professionnelle du praticien
Avis client
Avis client — retour d'expérience patient

Démonstration

Tri des praticiens
Tri & classement dynamique des praticiens par note, spécialité ou avis

Ce que fait l'application

Liste des praticiens
Accueil avec liste paginée des praticiens, note globale visible en un coup d'œil et filtres de spécialité.
Fiche détail praticien
Profil complet — spécialité, coordonnées, moyenne des notes clients et experts, liste des avis.
Double système d'avis
Avis clients et avis experts séparés — pondération distincte dans le calcul de la note globale.
Tri & classement dynamique
Tri des praticiens par note, nombre d'avis, spécialité ou ordre alphabétique — mis à jour en temps réel.
API REST
Backend exposant les données praticiens et avis — l'application Flutter consomme l'API pour toutes les opérations.

Schéma complet — GSB_total

evaluation
PKidint
FKpraticien_idint
notedouble
commentairevarchar(255)
type_evaluateurvarchar(10)
date_evaluationdate
userconge
PKidint
FKpraticien_idint
date_debutdate
date_findate
statutenum
commentairetext
date_demandedatetime
congeutilisateur
PKidCongeint
FKidUtilisateurint
etatCongeenum
👁 v_praticiens
Vue — JOIN praticien, calcul anciennete_calculee via TIMESTAMPDIFF. Exposée par l'API REST.
praticien
PKidint
nomvarchar(50)
prenomvarchar(60)
date_embauchedate
ancienneteint
echelonint
adressevarchar(100)
coef_notorietefloat
salairedouble
FKcode_type_praticienvarchar(6)
FKid_villemediumint
usernamevarchar(50)
mdpvarchar(255)
commentairevarchar(255)
conges_restantint
grille_salariale
PKidint
FKcode_type_praticienvarchar(6)
echelonint
anciennete_minint
anciennete_maxint
salairedouble
utilisateur
PKidint
nomvarchar(50)
mdpvarchar(50)
isAdminint
commentairevarchar(250)
type_praticien
PKcodevarchar(6)
libellevarchar(50)
lieuvarchar(70)
typevarchar(1)
ville
PKidmediumint
nomvarchar(45)
code_postalvarchar(255)
communevarchar(3)
code_communevarchar(5)
FKid_departementint
departement
PKidint
codevarchar(3)
nomvarchar(255)
FKid_regiontinyint
region
PKidtinyint
codevarchar(3)
nomvarchar(255)
communevarchar(4)
FKid_ville↺ circ.
Clé primaire (PK) Clé étrangère (FK) Relation FK→PK Vue SQL ↺ region.id_ville → ville (référence circulaire, non tracée)

Technologies utilisées

DartLangage
FlutterFramework mobile
MySQLBase de données
API RESTCommunication
Git / GitHubVersioning

Ce que j'ai appris

Découverte de Flutter & Dart
Premier projet mobile avec Flutter. La logique de widgets imbriqués et la gestion d'état (setState, FutureBuilder) m'ont demandé une adaptation importante par rapport au développement web.
Consommation d'une API REST depuis mobile
Gérer les appels asynchrones à l'API, traiter les erreurs réseau et afficher des états de chargement cohérents m'a appris les bonnes pratiques de la communication client-serveur en mobile.
Calcul de note pondérée
Implémenter un système de note différenciée experts / clients avec pondération ajustable a nécessité une réflexion sur la modélisation des données et le calcul en base ou en application.