Skip to content

NeekoApp

Neeko est une application de mise en relation pour la restauration. L’accent est ici mis sur l’instantanéité, à cet effet c’est le travailleur (néo) qui choisit ses missions sur la base de compétences recherchées par le restaurateur. Ce fonctionnement implique donc l’usage de websockets quasi partout dans l’application, d’un caching sur tous les éléments centraux (matching, tension), et d’une recherche de latence minimale.

Data

Back-end

Clients

HTTP / WebSocket

HTTP / WebSocket

App mobile

Flutter

Webadmin

React/Vite

API REST

Laravel

MySQL

Redis

Le mobile tourne sur Flutter, pour des raisons évidentes de performance sans compromis sur la rapidité de déploiement. La scalabilité du produit est assurée par l’ensemble Cubit, et une organisation features first.

Le webadmin est une part essentielle de la gestion du produit. Beaucoup de fonctionnalités de l’app peuvent y être ajustées et beaucoup d’informations y transitent, c’est un élément important à ne pas négliger. Il tourne sous React/Vite.js et lui aussi respecte les principes de clean archi / features first via la lib zustand.

Le back est le cœur de l’application, c’est une api-rest Laravel. Cette technologie bien qu’à contre-courant de la mode du Node.js est un choix évident : elle permet un déploiement structuré, une norme commune, une maturité et un suivi long terme des libs, et un développement rapide.

Choix hérité du développeur précédent, l’application fonctionne sur MySQL. Le SQL en lui-même est un très bon choix, tout à fait à propos avec Laravel et le besoin de stabilité / structure long terme de l’application.

Cependant SQL est lent : l’application faisant du calcul de tension sur tout le territoire et du matching répété en temps réel, il est nécessaire de cacher une partie des données via Redis, une base de données NoSQL en RAM.