Giter Club home page Giter Club logo

django-test's Introduction

Test technique Django / Backend

L'objectif de l'exercice ci-dessous est de modéliser une base de données à partir de spécifications métiers et de concevoir une interface simple de gestion de trajets de bus, en utilisant l'admin de Django.

Pour réaliser le test, pensez à fork ce repository. Idéalement, ouvrir une PR à la fin.

Critères d'évaluation

  • Documentation et clarté du code
  • Modélisation de la base de donnée
  • Maîtrise du framework Django

Stack Technique

Nom Version
Python 3.7
Django 3.2.5
  • Le projet à été réalisé en utilisant Python 3.7. Vous êtes libre d'utiliser une autre version mais c'est celle que nous vous conseillons.
  • La base de donnée est au choix. Le projet est configuré pour utiliser sqlite par défaut.

Démarrer le projet

Depuis votre virtualenv Python 3.7:

make install
make migrate
make run

Des scripts sont à votre disposition pour vous permettre de rapidement créer de la donnée et de prendre le projet en main:

  • create_data
  • create_buses
  • create_drivers
  • create_places
  • create_users

Par exemple:

python manage.py create_drivers -n 5

Sujet

Description

Un trajet en bus (BusShift) est composé des éléments suivants:

  • Un bus: (Bus).
  • Un chauffeur: (Driver).
  • Entre 2 et une infinité d'arrêts (BusStop).
  • L'heure de départ est déterminée par l'heure de passage au premier arrêt.
  • L'heure d'arrivée est déterminée par l'heure de passage au dernier arrêt.
  • Il est possible de déduire le temps total nécessaire pour effectuer le trajet depuis l'heure de départ et l'heure d'arrivée.

La structure de projet qui vous est proposée comprends déjà les models suivants:

Objectifs

Implémenter les modèles BusShift and BusStop à la base de code existante

L'implémentation de ces deux modèles est libre et laissée à votre appréciation. Les contraintes métiers suivantes doivent être respectées:

  • Un même bus ne peut être assigné, en même temps, à plusieurs trajets dont les heures de début et fin se chevaucheraient.
  • Il en va de même pour les chauffeurs.

Fournir une interface de gestion des trajets de bus

Il doit être possible, pour un utilisateur, de créer ou de modifier des trajets de bus (BusShift) en utilisant l'admin de django.

Note: Il existe plusieurs solutions pour concevoir cette fonctionnalité. Certaines seront peut être plus couteuse en temps que d'autres ...

Conseils

  • Ne passez pas plus de 4 heures sur un sujet (le but est d'évaluer vos compétences, pas de réduire votre temps libre à néant ;-))
  • Privilégier la qualité et les bonnes pratiques.
  • Vous pouvez réduire le périmètre du projet si vous manquez de temps. Une ébauche de réponse est déjà une bonne chose.
  • Soyez prêt à présenter le sujet, à justifier vos choix et à parler de comment vous auriez fait les parties que vous avez laisser de côté.

django-test's People

Contributors

jisson avatar cuzureau avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.