An open API service indexing awesome lists of open source software.

https://github.com/pablolec/oc_lettings


https://github.com/pablolec/oc_lettings

Last synced: 9 days ago
JSON representation

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.