Skip to content

Backend for a Pokemon® Go® -like game whith multiple choice questions instead of Pokemons

Notifications You must be signed in to change notification settings

aneutron/mtsgo-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MTSGO Server

Build Status Code Coverage

Présentation

Ceci est le repo du bloc serveur de l'application MTSGO. Il regroupe le code, la documentation, et les spécifications techniques.

Dépendences

Pour le moment, le développement se fait avec Python 3, et est testé avec les versions 3.5 et 3.6. (Des efforts sont en cours pour étudier la portabilité de la solution à Python 2.7)

Vous pouvez utiliser SQLite, MySQL, ou PostgreSQL. Les tests d'intégration sont éxecutés pour tout ces SGBD, et donc tant que vous voyez que le build est en passing, cette version de l'application devrait marcher avec les trois.

Le projet dépend des librairies:

  • Django (1.10): Framework de base pour le projet
  • django-tokenapi (0.2.5): Librairie pour l'authentification
  • matplotlib (1.5.3): Utilisé pour résoudre le problème point in polygon.
  • pymysql (0.7.10): Si vous voulez utiliser MySQL, Le driver classique MySQLdb ne marche pas sur Python 3 pour le moment, c'est pourquoi cet alternative est utilisée. (Elle peut être installée comme si elle était MySQLdb avec du monkey patching)
  • pycopg2: Si vous utilisez PostgreSQL.

Installation

Pour votre environnement de développement :

D'abord positionnez vous dans le dossier que vous souhaitez, et cloner le projet:

git clone https://github.com/aneutron/mtsgo-server

Ensuite installez les dépendances (Préférablement dans un environnement virtuel pour éviter les conflits de dépendances):

pip install -r requirements.txt

Eventuellement modifiez les paramètres dans mtsgo/settings.py, ensuite appliquez les schémas à votre BDD avec python mtsgo-server/manage.py makemigrations puis python mtsgo-server/manage.py migrate.

Pour lancer votre serveur de test, éxecutez:

python manage.py runserver

Astuce: Utilisez Postman pour accélerer votre développement et vos tests.

Pour du déploiement :

Il est recommandé d'utiliser l'image Docker pour setup rapidement une instance pré-configuré. Après avoir installé Docker, il suffit d'éxecuter la commande suivante dans le dossier du repo cloné:

docker build -f ./Dockerfile -t mtsgo:latest ./

Et puis:

docker run -d -p 8080:80 -n mtsgo-server mtsgo:latest

Vous pouvez alors accéder à votre serveur sur localhost:8080.

Si votre setup requiert une persistence, monter la base de donnée en volume Docker, ou utiliser une base de donnée MySQL/PgSQL est recommandé.

Code coverage & Tests

Pour tester la conformité à la spécification de l'API, et assurer une qualité du code assez correcte, des tests ont été écrit pour chaque API (mtsgo/test.py, api/test.py, superapi/test.py) , et sont lancés automatiquement à chaque commit, et des statistiques de code coverage sont générés.

Vous pouvez visiter la page du projet sur la plateforme d'intégration continue TravisCI, et aussi la page du projet sur la plateforme de statistiques de code coverage CodeCov.io .

Voici un des graphes montrant la couverture avec l'arborescence du projet: Code Coverage Tree

Auteurs

François Beugin, Ronan Garet, Ayoub Boudhar.

About

Backend for a Pokemon® Go® -like game whith multiple choice questions instead of Pokemons

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published