A1 · Flutter · ASP.NET Core · PostgreSQL · Docker
Swikko
L’app qu’on a construite pour que notre classe s’organise sans dépendre de personne : planning, devoirs, annonces, groupes de travail, et la recherche d’alternance en prime.
- Rôle
- Produit, app Flutter, design, mise en ligne
- Cadre
- Projet annuel ESGI, en binôme
- Année
- 2026
- Plateformes
- iOS, Android, web
- Statut
- Version 1.3, en test, je m’en sers tous les jours
Aperçu interactif

01 / 19
Connexion
Touchez la droite de l’écran pour avancer, la gauche pour revenir, ou balayez.
Captures d’écran · 19
01Tout était éparpillé
En première année, les infos de la classe passaient un peu partout. Un changement de salle dans une conversation de groupe, un devoir que seule une personne avait noté, une annonce noyée sous les messages. Et à côté de ça, chacun cherchait son alternance dans son coin.
On voulait un outil léger, que des étudiants aient vraiment envie d’ouvrir le matin.
02L’autosuffisance : la classe se gère elle-même
Toute l’appli repose sur un mot : l’autosuffisance. La communauté s’organise et remplit elle-même le contenu, sans administrateur qui passe derrière chacun.
Concrètement, les élèves validés par un code de classe ajoutent et corrigent eux-mêmes les cours et les devoirs. Le délégué ne relit pas tout : il décide de qui entre dans la classe et publie les annonces officielles.
Pour que ça tienne, c’est l’API qui fait la police. Chacun n’accède qu’à ce qu’il a le droit de voir, et les données d’une classe ne croisent jamais celles d’une autre.
03Ce qu’on y trouve
En ouvrant l’app, on tombe directement sur : le prochain cours, les devoirs à rendre et les dernières annonces. La première fois, une en cinq pages explique les usages et demande si on a déjà une entreprise, ce qui adapte l’app.
- un planning et , que la classe complète et corrige ;
- un qui sépare l’école et l’entreprise, pratique en alternance ;
- des avec discussion en direct, tâches réparties et créneaux où tout le monde est libre ;
- une avec favoris et recherches enregistrées, accessible même sans classe.
Les partiels, les notifications et le travail de groupe sont arrivés au fil des versions. Chaque mise à jour a son écran « », pour que personne ne rate ce qui a changé.
04Côté Flutter, le plus gros chantier
C’est le projet qui m’a le plus appris en dehors de mon alternance, surtout côté Flutter. L’app compte seize fonctionnalités, de la connexion aux partiels, et il a fallu trouver comment les garder lisibles version après version.
- chaque fonctionnalité a son dossier, avec ses écrans, son état et son accès aux données ;
- l’accès aux données existe en deux versions : un vrai appel à l’API, et une version de démonstration avec des données fictives. L’app tourne donc sans serveur, ce qui a servi pour les tests, les présentations et les captures de cette page ;
- un seul code pour iPhone, Android et web, avec un menu sur le côté et une semaine sur deux colonnes quand l’écran est large ;
- des discussions de groupe en direct, et des rappels programmés sur le téléphone ;
- un thème en plus du thème clair, retravaillé pour que chaque couleur garde son sens.
109 tests Flutter rejouent les parcours avec les données de démonstration : connexion, planning, groupes, présentation. Ils tournent à chaque modification.
05Sous le capot
De l’autre côté, une API ASP.NET Core avec PostgreSQL derrière. C’est la même stack que celle que j’utilise en alternance, et j’ai voulu la monter de bout en bout moi-même. L’API est découpée en quatre couches (Api, Application, Domain, Infrastructure).
La connexion passe par des JWT avec jetons de rafraîchissement. Il y a deux rôles (élève et délégué), plus un rôle d’organisateur dans les groupes de travail. Les données sensibles sont chiffrées, et les 106 tests de l’API tournent sur une vraie base PostgreSQL grâce à Testcontainers.
06La mise en ligne, le vrai défi
Pouvoir confier une version fonctionnelle de l’app à n’importe qui pour la phase de test a demandé plus d’efforts que prévu. Heureusement, j’ai écrit un script qui automatise l’installation de l’app, depuis mon poste, sur n’importe quel smartphone : ce besoin est réglé.
Il a ensuite fallu sortir l’API de mon Mac. Elle tourne maintenant sur un serveur personnel, dans Docker, derrière un reverse proxy en HTTPS. Pour des raisons de performances, l’image se construit sur mon poste avant d’y être envoyée. Et quand le projet est passé de StudyFlow à Swikko, il a fallu tout renommer sans perdre une seule donnée.
07À deux
Swikko est né comme projet annuel à l’ESGI, en binôme. De mon côté : le produit, l’app Flutter, le design, le planning, l’agenda, les alternances, l’espace Entreprise, puis la mise en ligne. Mon binôme a pris la sécurité, c’est-à-dire la connexion, les rôles et la protection des données.
Depuis, je continue de le faire évoluer. C’est le projet qui m’a appris à livrer sans improviser : une version numérotée, des notes qui disent ce qui change, et des tests qui tournent à chaque modification.
Titre suivant · A2
Gabriel Dev Studio →
Écouter la face BÀ propos
Voilà pour la face A. Si vous voulez savoir qui est derrière, retournez le disque.