Site web d'Orange County Lettings
- Compte GitHub avec accès en lecture à ce repository
- Git CLI
- SQLite3 CLI
- Interpréteur Python, version 3.6 ou supérieure
Dans le reste de la documentation sur le développement local, il est supposé que la commande python
de votre OS shell exécute l'interpréteur Python ci-dessus (à moins qu'un environnement virtuel ne soit activé).
cd /path/to/put/project/in
git clone https://github.com/OpenClassrooms-Student-Center/Python-OC-Lettings-FR.git
cd /path/to/Python-OC-Lettings-FR
python -m venv venv
apt-get install python3-venv
(Si l'étape précédente comporte des erreurs avec un paquet non trouvé sur Ubuntu)- Activer l'environnement
source venv/bin/activate
- Confirmer que la commande
python
exécute l'interpréteur Python dans l'environnement virtuelwhich python
- Confirmer que la version de l'interpréteur Python est la version 3.6 ou supérieure
python --version
- Confirmer que la commande
pip
exécute l'exécutable pip dans l'environnement virtuel,which pip
- Pour désactiver l'environnement,
deactivate
cd /path/to/Python-OC-Lettings-FR
source venv/bin/activate
pip install --requirement requirements.txt
python manage.py runserver
- Aller sur
http://localhost:8000
dans un navigateur. - Confirmer que le site fonctionne et qu'il est possible de naviguer (vous devriez voir plusieurs profils et locations).
cd /path/to/Python-OC-Lettings-FR
source venv/bin/activate
flake8
cd /path/to/Python-OC-Lettings-FR
source venv/bin/activate
pytest
cd /path/to/Python-OC-Lettings-FR
- Ouvrir une session shell
sqlite3
- Se connecter à la base de données
.open oc-lettings-site.sqlite3
- Afficher les tables dans la base de données
.tables
- Afficher les colonnes dans le tableau des profils,
pragma table_info(oc_lettings_site_profile);
- Lancer une requête sur la table des profils,
select user_id, favorite_city from oc_lettings_site_profile where favorite_city like 'B%';
.quit
pour quitter
- Aller sur
http://localhost:8000/admin
- Connectez-vous avec l'utilisateur
admin
, mot de passeAbc1234!
Utilisation de PowerShell, comme ci-dessus sauf :
- Pour activer l'environnement virtuel,
.\venv\Scripts\Activate.ps1
- Remplacer
which <my-command>
par(Get-Command <my-command>).Path
- Créez un compte sur Docker
- Créez un nouveau repo sur DockerHub
- Remplacez le nom de repo L44 de config.yml ($DOCKERHUB_USERNAME/[votre-repo]) par votre repository.
Repo DockerHub utilisé pour le projet: hub.docker.com/r/wil91/oc-lettings-site
Une surveillance de l’application et suivi des erreurs est effectué avec Sentry.
- Créez un compte Sentry
- Créez un projet Django dans Sentry
- Récupérez votre clé DSN du projet
- Créez un compte Heroku
- Créez un nouvelle application Heroku
- Récupérez votre token Heroku (API Key) dans les paramètres de votre compte
- Dans les paramètres Heroku, dans Config Vars, configurer les variables suivantes:
Clé | Valeur |
---|---|
ENV | production |
DJANGO_SECRET_KEY | Token générée Django |
SENTRY_DSN | Token générée Sentry |
- Créer un compte sur circleci.com
- Commencer la configuration du projet https://circleci.com/docs/config-intro
- Configurez CircleCI avec les variables d'environnement suivantes:
Clé | Valeur |
---|---|
DOCKERHUB_USERNAME | Votre identifiant Docker Hub |
DOCKERHUB_PASSWORD | Votre mot de passe Docker Hub |
HEROKU_TOKEN | Votre API key sur Heroku |
HEROKU_APP_NAME | Le nom de l'app Heroku |
CircleCI permet d'automatiser les tests, la conteneurisation et le déploiement sur Heroku, grâce
au fichier config.yml se trouvant dans le dossier .circleci du projet. L'execution du pipeline CI/CD est déclenchée automatiquement lors d'un push sur la branch master
sur GitHub.
L'application est déployée vers le site https://oc-lettings-docker-wil.herokuapp.com/.
La commande suivante récupère et déploie en local une image du projet:
docker run -d -p 8000:8000 wil91/oc-lettings-site:$TAG
Remplacer wil91/oc-lettings-site
par votre docker hub.
Prendre le dernier tag sur DockerHub:
https://hub.docker.com/r/wil91/oc-lettings-site/tags