maj README

This commit is contained in:
Grégory Lebreton 2024-04-03 22:06:39 +02:00
parent 2f61efd30f
commit 8f0b2a5c2e

166
README.md
View File

@ -1,69 +1,135 @@
# DJANGO QUIZZ
# DJANGO QUIZ :mortar_board:
### Ce projet est une version fonctionnelle actualisée de Tom Walker (https://github.com/tomwalker/django_quiz).
> Ce projet est une version fonctionnelle actualisée de Tom Walker (https://github.com/tomwalker/django_quiz).
les prérequis sont :
- python 3.6
- pip3
- les librairies contenus dans le requirements.txt
Il propose la possibilité de créer des quizs de type QCM ou de type ESSAY, l'administrateur peux accéder à tous les résultats, les utilisateurs peuvent consulter leurs scores ainsi que leur statistiques.
L'administration est gérée par Django admin et permet de créer des utilisateurs facilement.
Pour l'utilisation d'OpenID (avec Keycloak), le login "traditionnel" est désactivé mais une fois les réglages OIDC éffectués, la création d'utilisateur s'éffectue par keycloak.
Les modifications apportées concernent la librairy pour la lectures des classes codées en python2 :
- Utilisation de la librairy six et utilisation de Django 2.2.9 (la 3.0 ne prends plus en charge python 2).
- Modification du requirements.txt en conséquence.
- Implémentation d'OpenID connect avec Keycloak settings via mozilla oidc module (dans la branche keycloak).
## PRE REQUIS :paperclip:
## INSTALLATION
- python 3.6 au minimum (fonctionne sous 3.11)
- pip3
- Docker et compose
git clone
cd djangoquizz
## INSTALLATION LOCALE :house:
```bash
git clone https://git.legaragenumerique.fr/GARAGENUM/django-quiz.git
cd django-quiz/quiz-app
python3 manage.py runserver
```
## VISITER localhost:8000/admin et ce connecter avec les identifiants administrateur par défaut :
user : Greg
mot de passe : Juliette21
## Changer l'administrateur en créant un nouveaux utilisateur avec tous les droits, puis supprimer l'utilisateur "Greg"
## CREER SON QUIZZ !
### Creer son quizz en choisissant le type (multiplechoice) :
### Créer des questions :
### Créer des utilisateurs :
### Customiser le logo :
## Avec Docker :
### INSTALLATION
git clone
cd djangoquizz
docker build -t djangoquizz .
docker run -d -p 8000:8000 djangoquizz
### VISITER 0.0.0.0:8000/admin
admin : Greg / mdp: Juliette21
--> Pour modifier les acréditations de l'admin, éffectuer :
### CEER UN UTILISATEUR ADMIN :bust_in_silhouette:
```bash
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser # suivre les indications pour créer un utilisateur admin
```
python manage.py createsuperuser
> Se rendre à l'adresse http://localhost:8000/admin pour se connecter
### Personnaliser :
## VIA DOCKER :whale:
- Modifier la dernière ligne pour spécifier une IP (ex: 192.168.1.1:8000)
- --> répercuter l'adresse dans /testenv_django_quiz/settings.py dans ALLOWED_HOSTS = ['192.168.1.1']
```bash
git clone https://git.legaragenumerique.fr/GARAGENUM/django-quiz.git
cd django-quiz
docker compose up -d
```
### CEER UN UTILISATEUR ADMIN :bust_in_silhouette:
```bash
# pour se connecter au terminal du conteneur
docker exec -it django-quiz bash
# dans le terminal du conteneur
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser # suivre les indications pour créer un utilisateur admin
```
> Se rendre à l'adresse http://localhost:8000/admin pour se connecter
## PRE REQUIS :paperclip:
- python 3.6 au minimum (fonctionne sous 3.11)
- pip3
- Docker et compose
## CONFIGURATION
- testenv_django_quiz/settings.py:
```python
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'put-a-good-secret-key!'
# security token
CSRF_TRUSTED_ORIGINS = ['https://quiz.your-domain/tld']
```
## INSTALLATION LOCALE :house:
```bash
git clone https://git.legaragenumerique.fr/GARAGENUM/django-quiz/src/branch/keycloak.git
cd django-quiz/quiz-app
python3 -m pip install -r requirements.txt
python3 manage.py runserver
```
### CEER UN UTILISATEUR ADMIN :bust_in_silhouette:
```bash
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser # suivre les indications pour créer un utilisateur admin
```
> Se rendre à l'adresse http://localhost:8000/admin pour se connecter
## VIA DOCKER :whale:
```bash
git clone https://git.legaragenumerique.fr/GARAGENUM/django-quiz/src/branch/keycloak.git
cd django-quiz
docker compose up -d
```
### CEER UN UTILISATEUR ADMIN :bust_in_silhouette:
```bash
# pour se connecter au terminal du conteneur
docker exec -it django-quiz bash
# dans le terminal du conteneur
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser # suivre les indications pour créer un utilisateur admin
```
> Se rendre à l'adresse http://localhost:8000/admin pour se connecter
## TODO :bookmark_tabs:
- [x] Modify user creation and update methods
- [x] Docker-compose.yml
- [x] OpenID with keycloak
- [ ] Secure secrets in env + ports
- [ ] Pass groups with user creation from Keycloak
- [ ] Automatiser creation superuser at startup
## VERSION AUTHENTIFICATION EXTERNE (SSO KEYCLOAK) :key:
> https://git.legaragenumerique.fr/GARAGENUM/django-quiz/src/branch/keycloak
## TODO :bookmark_tabs:
- [ ] filtre Quiz par catégories
- [ ] filtre questions par quizs