CAW1 2019 Projet de Quentin LANUSSE et Clément LOPEZ : Différence entre versions
(→Screencast de l'application) |
|||
Ligne 102 : | Ligne 102 : | ||
** Username : <code>Player1</code> ou <code>Player2</code> | ** Username : <code>Player1</code> ou <code>Player2</code> | ||
** Password : <code>userpassword</code> | ** Password : <code>userpassword</code> | ||
+ | |||
+ | |||
+ | ==Tests== | ||
+ | Pour lancer les tests, il suffit de lancer la commande suivante : | ||
+ | $ python manage.py test |
Version du 11 juin 2019 à 09:26
![]() | |
---|---|
Titre du projet | Impr'Orga |
Cadre | Projet Web 2AA Ensimag 2019 |
Page principale | CAW1_Demonstration_Realisation
|
Équipe | Quentin Lanusse, Clément Lopez |
Encadrants | Sébastien Viardot |
Impr'Orga
Description
Impr'Orga est une application Web de gestion d'une troupe d'improvisateurs (artistes de théâtre d'improvisation).
L'application permet de proposer différents évènements à la troupe avec description (date, lieu, type d'évènement, etc.) et de permettre aux membres de s'inscrire à ces évènements en fonction de leurs disponibilités.
L'idée est de faciliter la gestion des évènements pour les responsables de troupe ainsi que de garder une trace simple d'accès des évènements passés et à venir.
Objectifs
Les Objectifs du projet sont de créer une application Web permettant :
- L'ajout/modification/suppression d'évènements
- L'inscription à certains évènements
- L'ajout/modification/suppression d'exercices d'entraînement
- Un chat général ainsi qu'une gestion de commentaires par évènement
via la découverte et la prise en main du Framework Django
Screencast de l'application
Découvrez cette magnifique application [ici !](https://www.youtube.com/watch?v=rKZyBT9HobQ&feature=youtu.be)
Modélisation
Cas d'usage
Ci-dessous est le diagramme des cas d'utilisations à l'origine du projet, nous n'avons pas réussi à tout implémenter (notamment les modifications) durant le temps imparti.
Voici la liste des éléments qui sont pas (ou pas complètement) implémentés :
Administrator
- Tout est en place via l'administration Django qui pourrait être mieux personnalisée.
Moderator
- Tous les éléments de gestion d'évènement sont en place via l'administration Django, ce qui nécessite des droits Admin est n'est pas optimal.
User
- Les inscriptions ne sont pas en place.
Modèle de données
Choix techniques
Technologies utilisées
Django
- Back en python
- Front en Html/Yaml
Webservice utilisé
Nous utilisons [Leaflet](https://leafletjs.com/) comme API externe. Il s'agit d'une librairie JavaScript open-source qui utilise elle-même [OpenStreetMap](https://www.openstreetmap.org/) afin de nous permettre d'afficher une carte dynamique sur notre site.
L'intérêt de cette carte et de permettre à un utilisateur de trouver où sera situé un évènement sans avoir besoin de rechercher l'adresse en dehors de l'application.
Architecture de l'application
L'utilisation du framework Django impose la mise en place d'une architecture [MVC](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) avec l'ajout de templates réutilisables dans les vues et d'une ORM très performante et adaptable à différentes bases de données. Notre application utilise la base de données SQLite de base proposée par Django de façon à ce qu'il soit simple de faire une transition vers une base de données plus performante plus tard.
Installation
Prérequis :
Il est nécessaire d'avoir installé sur son poste les éléments suivants en amont :
- Pip
- Git
- Python 3.X
Prérequis pour les tests
Certains de nos tests se font avec Selenium, qui permet de reproduire et d'automatiser des interactions utilisateur avec les applications web. Pour installer Selenium il faut exécuter la commande suivante :
$ sudo pip install selenium
Nos tests Selenium ont été écrits pour des navigateurs Google Chrome, il vous faudra télécharger le driver correspondant et le placer dans le répertoire du projet Impr'Orga.
Si vous n'utilisez pas Google Chrome, il vous faudra remplacer la ligne cls.selenium = webdriver.Chrome()
du fichier testSelenium.py
par le navigateur web de votre choix et télécharger le driver correspondant, dans ce cas-là ce lien pourrait vous être utile
Procédure
Il faut tout d'abord cloner le projet :
$ git clone https://gitlab.ensimag.fr/lanusseq/impr_orga.git
On va maintenant se placer dans le répertoire de notre projet
$ cd impr_orga
Par la suite, il faut exécuter un premier script qui va créer la structure de notre base de données et installer 2 packages :
- Django, le framework web python utilisé pour ce projet
- Django-Leaflet permettant d'utiliser l'API Leaflet avec Django
$ ./setup.sh
Enfin, pour remplir notre base de données avec quelques données, il faut exécuter un deuxième script :
$ ./loadBD.sh
Lancement
Enfin, on va pouvoir lancer le serveur :
$ python manage.py runserver
Le serveur est alors accessible à l'adresse http://127.0.0.1:8000/
il vous sera alors demandé de vous connecter,
si vous avez lancé préalablement loadBD.sh
vous pouvez entrer sur le site
- En tant qu'administrateur
- Username :
ADMIN
- Password :
PASS
- Username :
- En tant que simple utilisateur
- Username :
Player1
ouPlayer2
- Password :
userpassword
- Username :
Tests
Pour lancer les tests, il suffit de lancer la commande suivante :
$ python manage.py test