https://github.com/pablolec/oc_lettings
https://github.com/pablolec/oc_lettings
Last synced: 9 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/pablolec/oc_lettings
- Owner: PabloLec
- Created: 2021-09-13T10:39:41.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2022-03-03T15:26:19.000Z (over 4 years ago)
- Last Synced: 2025-03-03T21:15:10.514Z (over 1 year ago)
- Language: Python
- Homepage: https://oc-lettings-pablolec.herokuapp.com/
- Size: 59.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Résumé :wink:
Site web d'Orange County Lettings
## Développement local
### Prérequis
- 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é).
### macOS / Linux
#### Cloner le repository
- `cd /path/to/put/project/in`
- `git clone https://github.com/OpenClassrooms-Student-Center/Python-OC-Lettings-FR.git`
#### Créer l'environnement virtuel
- `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 virtuel
`which 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`
#### Exécuter le site
- `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).
#### Linting
- `cd /path/to/Python-OC-Lettings-FR`
- `source venv/bin/activate`
- `flake8`
#### Tests unitaires
- `cd /path/to/Python-OC-Lettings-FR`
- `source venv/bin/activate`
- `pytest`
#### Base de données
- `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(Python-OC-Lettings-FR_profile);`
- Lancer une requête sur la table des profils, `select user_id, favorite_city from
Python-OC-Lettings-FR_profile where favorite_city like 'B%';`
- `.quit` pour quitter
#### Panel d'administration
- Aller sur `http://localhost:8000/admin`
- Connectez-vous avec l'utilisateur `admin`, mot de passe `Abc1234!`
### Windows
Utilisation de PowerShell, comme ci-dessus sauf :
- Pour activer l'environnement virtuel, `.\venv\Scripts\Activate.ps1`
- Remplacer `which ` par `(Get-Command ).Path`
### Déploiement
Le repository suit un flow CI/CD via CircleCI:
1) Lancement des tests avec `pytest`.
2) Si les tests ne retournent pas d'erreur:
- Build de l'image Docker
- Push de l'image vers Docker Hub
3) Si les actions Docker réussissent:
- Déploiement sur Heroku
Tout le processus est automatique sur push au repo GitHub.
Sur la branche `main`, toutes les étapes sont effectuées jusqu'au déploiement Heroku.
Sur les autres branches, seuls les tests sont effectués.
La configuration du workflow CircleCI se trouve dans le fichier [.circleci/config.yml](.circleci/config.yml).
La configuration de l'image Docker dans le fichier [Dockerfile](Dockerfile).
Docker Hub: https://hub.docker.com/r/pablo213/oc_lettings
Heroku: https://oc-lettings-pablolec.herokuapp.com/
Pour tirer l'image de Docker Hub et l'éxécuter localement:
```
docker run -it --name django -e "PORT=8080" -e "DEBUG=1" -p 8080:8080 pablo213/oc_lettings
```
Le site sera servi sur http://127.0.0.1:8080.