Skip to content

Instantly share code, notes, and snippets.

@Plumillon
Created December 23, 2025 11:38
Show Gist options
  • Select an option

  • Save Plumillon/98373a4ff7606a31950aeb8c0b8e3c3f to your computer and use it in GitHub Desktop.

Select an option

Save Plumillon/98373a4ff7606a31950aeb8c0b8e3c3f to your computer and use it in GitHub Desktop.

Test Envola

Périmètre

L’objectif de ce test est de servir de base pour un échange sur votre capacité à:

  • Structurer une application Flutter proprement
  • Appliquer les principes de Clean Architecture
  • Ecrire du code fonctionnel, testable et lisible

Le design UI n’est pas évalué.

Vous êtes libre d'utiliser tous les outils, librairies ou composants qui vous semblent nécessaires.

Contexte

Vous devez réaliser une application Flutter de pointage. Un seul écran suffit.

Vous disposez de ce JSON local décrivant des jours de la semaine avec des plages horaires autorisées.

[
  { "day": "monday", "start": "09:00", "end": "18:00" },
  { "day": "tuesday", "start": "12:00", "end": "17:00" },
  { "day": "thursday", "start": "08:30", "end": "20:00" },
  { "day": "friday", "start": "10:00", "end": "15:20" }
]

Fonctionnalité attendues

Affichage des horaires

  • Afficher tous les jours de la semaine (du Lundi à Dimanche)
  • Chaque jour présente les horaires autorisées
  • Les jours non-présents ne sont pas autorisés

Bouton de pointage

  • Un bouton permet de choisir le jour et l'heure de pointage
  • Le format de saisie est libre (à vous de choisir)

Validation du pointage

  • Affichage d'une erreur si le jour ou l'heure n'est pas autorisées
  • L'heure est inclusive (pointage à 9:00 pour Lundi est autorisé)
  • Les jours non-présents ne sont pas autorisés
  • Affichage de l'heure sur l'écran si validé

Livraison

Le code fonctionnel doit être consultable.

Vous pouvez le transmettre dans dans le format de votre convenance (zip, git, ...).

Vous pouvez addressez vos questions et résultat à flavien@envola.fr.

Merci et à bientôt!

Comments are disabled for this gist.