Aller au contenu
Business Agile
← Réalisations
App · Services aux salles de sport, espace abonné · déc. 2017

PrevenFit

Un espace abonné qui ne répond que si l'on sait déjà exactement quoi chercher.

L'écran de recherche PrevenFit, trois champs et un bouton

En chiffres

champs exigés, tous exacts, pour obtenir une réponse3
résultat approchant renvoyé par la recherche0
environnements conteneurisés dès la livraison3

M.A.D. Marketing lançait PrevenFit, un service destiné aux gérants de salles de sport. Le site vitrine existait déjà sous WordPress, mais l'espace abonné avait été prototypé à côté et ne tenait pas. Nous avons été sollicités pour le concevoir proprement, et c'est devenu une application Django autonome.

En images

Formulaire de recherche à trois champs, prénom, nom et date de naissance
L'écran de recherche de l'espace abonné, vide. Les trois champs sont tous obligatoires et tous exacts : sans les trois, l'outil ne répond pas, et il n'existe aucun écran qui liste les personnes enregistrées.

Le projet en détail

La conception a été guidée par une contrainte que j'ai posée dès le départ : l'outil manipule des données nominatives, donc il doit en révéler le moins possible. La recherche n'accepte pas de résultat approchant. Elle exige le prénom, le nom et la date de naissance, et ne répond que sur une correspondance exacte des trois. On ne peut donc pas parcourir le fichier, ni le lister, ni le deviner par tâtonnements : on peut seulement confirmer un dossier que l'on a déjà en main. Le modèle impose en outre l'unicité du triplet, ce qui empêche les doublons de s'accumuler.

La connexion est unique pour tous les comptes. Le rôle inscrit en base décide de ce qui s'affiche après l'authentification, l'interface de l'abonné ou celle de l'administrateur, plutôt que d'exposer deux portes d'entrée différentes. L'espace abonné tient sur une seule page : l'en-tête, le formulaire de recherche à trois champs, la zone de résultats. Rien d'autre, parce que rien d'autre n'était utile.

L'administration est séparée en deux volets, la gestion des comptes abonnés et celle des données. Chaque ligne porte ses actions : modifier, supprimer, activer ou désactiver un compte, afficher ou masquer un enregistrement dans les résultats de recherche. L'ajout se fait une entrée à la fois ou par import d'un fichier suivant une trame que nous fournissions, parce qu'un client qui doit saisir plusieurs centaines de lignes à la main ne le fera pas.

Côté industrialisation, l'application est partie d'un squelette Django éprouvé plutôt que d'une page blanche : configuration par variables d'environnement, dépendances séparées entre développement, test et production, conteneurs Docker pour les trois environnements, serveur gunicorn en production, tests sous pytest avec mesure de couverture et chaîne gulp pour les feuilles de style. Pour une application de cette taille, c'est ce qui fait la différence entre un prototype et quelque chose qu'on peut exploiter.

L'image de cette fiche est le formulaire vide, et c'est le seul état de cet outil qui puisse être montré : tout autre écran afficherait des données nominatives. Il tombe bien, parce qu'il dit l'essentiel du produit. Trois champs, un bouton, rien d'autre sur la page.

Ce qui a été fait

  1. 01

    Recherche à correspondance exacte sur trois champs, aucun résultat approchant

  2. 02

    Impossible de parcourir ou de lister les données

  3. 03

    Unicité du triplet imposée par le modèle, pas de doublons

  4. 04

    Connexion unique, interface déterminée par le rôle en base

  5. 05

    Administration des comptes et des données, avec import par fichier

  6. 06

    Trois environnements conteneurisés, tests pytest et couverture

Questions fréquentes

Comment limite-t-on ce qu'un outil révèle sur des données nominatives ?

En refusant l'approximation. Sur PrevenFit, la recherche n'accepte que la correspondance exacte du prénom, du nom et de la date de naissance : l'outil confirme un dossier qu'on a déjà, il ne permet pas de parcourir le fichier ni de le reconstituer par tâtonnements.

Faut-il deux pages de connexion pour les utilisateurs et les administrateurs ?

Non. Sur PrevenFit, un seul formulaire de connexion sert à tous, et c'est le rôle enregistré en base qui décide de l'interface affichée. Une seule porte d'entrée, c'est aussi une seule surface à protéger.

Pourquoi prévoir un import de fichier dès la première version ?

Parce que la saisie manuelle condamne l'outil. Sur PrevenFit, l'ajout se fait une entrée à la fois ou par import d'un fichier suivant une trame fournie, ce qui permet au client d'alimenter son service dès le premier jour.

Autres réalisations

FabArto
fabarto.eu
Web
Ti Kosmeo
tikosmeo.fr
Web
Antiquité Mallarmé
antiquitemallarme.fr
Web
Maison Ozaé
maisonozae.eu
Web
ScienceProtect
scienceprotect.com
IA
Neontology
github.com/ontolocy/neontology
Open source
Pousses & Plantes
Place de marché de plantes
E-commerce
Arbre Agile
Conseil et développement en intelligence artificielle
Web
Groupe BERREBI
Holding et site institutionnel
Web
SNCF
Transport ferroviaire, grand compte
API
Pitchichi
guide.pitchichi.com
App
SNCF DGEX Solutions
Ingénierie ferroviaire, application interne
API
Appétit
Librairie indépendante, livres de cuisine et photographie
Web
Good Day
Média, application mobile grand public
App
Fondation Nestlé France
Fondation d'entreprise, alimentation
Web
DMD Prices
Art, impression sur toile, devis en ligne
Web
IoTBox
Objets connectés, solutions industrielles
Web
Securicate
Équipement de sécurité, boutique en ligne
E-commerce
WeChamp
Sport, événementiel d'entreprise
Web
Jaco
Veille média, logiciel en abonnement
App
AWA
Éducation et audiovisuel, projet à portée internationale
Web
Quizz Paris
Prévention des risques, sensibilisation du public
App
La Gestion en Ligne
Gestion locative, service en ligne
Web
Quotidien Libre
Presse en ligne, quotidien d'information
Web
Ophtalmologie Percy
Santé, hôpital militaire
Web
Flashing Records
Musique, label et programmation d'événements
Web
Apérothérapie
Vins et épicerie fine, vente en ligne
E-commerce
Arnaud CANIZARES
Art contemporain, portfolio d'artiste
Web
TapToSupport
Collecte de dons pour associations
API
24hprojects
Plateforme de livraison de MVP
App
Eco-Actives
Transition écologique et ateliers DIY
E-commerce

Un projet ? Parlons-en cette semaine.

Un brief court, une réponse sous 48 h, une estimation ferme après cadrage.

Décrire mon projet