Le sujet de base est simple : il faut créer un site permettant la gestion de sorties de courses à pied.
Une sortie de course à pied est définie comme ceci :
- Utilisateur
- Type de sortie (entraĂźnement, course, loisirs, etc.)
- Date et heure de début
- Durée
- Distance
- Commentaire
Lors de la création ou modification d'une sortie, il faut calculer et enregistrer :
- la vitesse moyenne (en km/h, 11.1km/h par exemple, on pourra donc enregistrer "11.1")
- l'allure moyenne (en min/km, 5'24" par exemple, on pourra donc enregistrer "324")
Le site doit ĂȘtre sĂ©curisĂ©. Une authentification via http basic auth sur un provider in memory est amplement suffisante.
Une fois l'utilisateur connecté, différents écrans doivent permettre de :
- lister les sorties (affichage des principales informations dont la vitesse moyenne et l'allure moyenne)
- ajouter / modifier une sortie
- supprimer une sortie
Une API doit ĂȘtre mise Ă disposition. Cette API ne doit pas ĂȘtre sĂ©curisĂ©e. Par le biais de cette API, il doit ĂȘtre possible de :
- lister toutes les sorties
- lister les sorties d'un utilisateur
- récupérer le détail d'une sortie
- PHP >= 7.1
- Symfony >= 4
- On attend aussi de vous que le code soit testable et testé.
- Il est conseillé de finir les points requis avant de s'attaquer au bonus.
- Il est aussi conseillé de faire un maximum de commit pour bien détailler les étapes de votre raisonnement au cours du développement.
- Le temps est libre mais il est tout de mĂȘme conseillĂ© de passer moins de 4h sur le sujet (temps de setup d'environnement compris)
- Le choix de votre environnement PHP ainsi que du serveur d'application associé reste à votre discrétion
- Le moyen de stockage des données reste à votre discrétion
- Vous pouvez utiliser tout bundle ou composants Sf qui pourrait vous ĂȘtre utile
- Sécurisation du site, ne pas passer trop de temps sur ce sujet, faire au plus simple
- La charte graphique n'est pas imposée, vous ne serez pas jugés sur ce point
Toutes les fonctionnalités que vous aurez le temps d'ajouter seront bonnes à prendre. Soyez créatifs !!
Voici quelques idées (liste non ordonnée) :
- Ecran : permettre la gestion des types de sorties (lister, ajouter, modifier, supprimer)
- Ecran : permettre Ă l'utilsiateur de lister ses records (1km, 5km, 10km) :
Pour le calcul du record, on admet que l'utilisateur court de maniÚre trÚs réguliÚre
Exemple : sortie de 2h pour 20km, les records de l'utilisateur pour cette sortie sont :
- 1km : 6min (120min / 20)
- 5km : 30min (120min / 4)
- 10km : 1h (120min / 2)
Reste donc Ă calculer les meilleurs temps pour chaque distance et chaque utilisateur.
- API : liste des activités d'un type de sortie
- API : liste des activités d'un type de sortie et d'un utilisateur
- API : liste des types de sorties disponibles (dépend du bonus de gestion des types)
- API : liste des records (dépend du bonus sur le calcul des records)
- API : liste des records pour un utilisateur (dépend du bonus sur le calcul des records)
- API : Sécuriser
- Design : Utilisation d'une lib ou d'un framework (Twitter Bootstrap ou autre)
- Forkez le projet sur GitHub et codez directement dans le projet forké.
- Commitez aussi souvent que possible et commentez vos commits pour détailler votre chemin de pensée.
- Votre application doit ĂȘtre facilement testable par nos Ă©quipes.
- Mettez à jour le README pour ajouter le temps passé et tout ce que vous jugerez nécessaire de nous faire savoir.
- Envoyez le lien avec le projet Ă recrutement@stadline.com.
Bonne chance !