Site web d'OC Lettings
- Compte GitHub avec accès en lecture à ce repository
- Git CLI
- SQLite3 CLI
- Interpréteur Python, version 3.13 ou supérieure
- Poetry (gestionnaire de dépendances Python)
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é).
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -curl -sSL https://install.python-poetry.org | python3 -Après l'installation, redémarrez votre terminal.
cd /path/to/put/project/ingit clone https://github.com/OpenClassrooms-Student-Center/Python-OC-Lettings-FR.git
cd /path/to/Python-OC-Lettings-FRpoetry install- Confirmer que la version de l'interpréteur Python est la version 3.13 ou supérieure
poetry run python --version
cd /path/to/Python-OC-Lettings-FRpoetry run python manage.py runserver- Aller sur
http://localhost:8000dans 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-FRpoetry run flake8
cd /path/to/Python-OC-Lettings-FRpoetry run 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(profiles_profile); - Lancer une requête sur la table des profils,
select user_id, favorite_city from profiles_profile where favorite_city like 'B%'; .quitpour 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 Poetry, les commandes sont préfixées par
poetry run - Exemple :
poetry run python manage.py runserver
| Ancienne commande (pip) | Nouvelle commande (Poetry) |
|---|---|
pip install package |
poetry add package |
pip install -r requirements.txt |
poetry install |
pip install package --dev |
poetry add package --group dev |
python script.py |
poetry run python script.py |
pytest |
poetry run pytest |
flake8 |
poetry run flake8 |
- Docker et Docker Desktop installés et en cours d'exécution
- Compte Docker Hub (pour télécharger l'image)
L'application est disponible sous forme d'image Docker sur Docker Hub. Vous pouvez la télécharger et l'exécuter localement avec les commandes suivantes :
docker pull <votre-username>/oc-lettings:latestRemplacez <votre-username> par le nom d'utilisateur Docker Hub du projet.
docker run -d \
-p 8000:8000 \
-e SECRET_KEY="your-secret-key-here" \
-e DEBUG=False \
-e ALLOWED_HOSTS=localhost,127.0.0.1 \
--name oc-lettings \
<votre-username>/oc-lettings:latestExplications des options :
-d: Exécute le conteneur en arrière-plan (mode détaché)-p 8000:8000: Mappe le port 8000 du conteneur vers le port 8000 de votre machine-e: Définit les variables d'environnement nécessairesSECRET_KEY: Clé secrète Django (utilisez une valeur aléatoire et sécurisée)DEBUG: Mode debug (False en production)ALLOWED_HOSTS: Hôtes autorisés (ajoutez votre domaine en production)
--name: Nom du conteneur pour faciliter la gestion
# Voir les conteneurs en cours d'exécution
docker ps
# Voir les logs du conteneur
docker logs oc-lettingsOuvrez votre navigateur et allez sur http://localhost:8000
# Arrêter le conteneur
docker stop oc-lettings
# Supprimer le conteneur
docker rm oc-lettings
# (Optionnel) Supprimer l'image
docker rmi <votre-username>/oc-lettings:latestSi vous souhaitez construire l'image vous-même au lieu de la télécharger depuis Docker Hub :
# Construire l'image
docker build -t oc-lettings:local .
# Exécuter le conteneur avec l'image locale
docker run -d \
-p 8000:8000 \
-e SECRET_KEY="your-secret-key-here" \
-e DEBUG=False \
-e ALLOWED_HOSTS=localhost,127.0.0.1 \
--name oc-lettings \
oc-lettings:localLe projet utilise GitHub Actions pour l'intégration et le déploiement continus. Le pipeline se compose de 3 jobs :
- Tests & Linting : Exécute flake8 et pytest avec une couverture minimale de 80%
- Build & Push Docker : Construit l'image Docker et la pousse sur Docker Hub
- Deploy to Render : Déploie l'application sur Render
Le pipeline se déclenche automatiquement à chaque push sur la branche master.
Les secrets suivants doivent être configurés dans les GitHub Secrets :
DOCKER_USERNAME: Nom d'utilisateur Docker HubDOCKER_PASSWORD: Token d'accès Docker HubRENDER_DEPLOY_HOOK_URL: URL du webhook de déploiement Render
La documentation complète du projet est disponible sur Read The Docs (le lien sera fourni une fois la documentation publiée).
Elle comprend :
- Guide d'installation détaillé
- Architecture de l'application
- Documentation de l'API
- Guide de déploiement
- Structure de la base de données
L'application utilise Sentry pour le monitoring des erreurs en production. Pour activer Sentry :
- Créez un compte sur sentry.io
- Créez un nouveau projet Django
- Copiez le DSN (Data Source Name)
- Ajoutez-le comme variable d'environnement :
# En local (.env)
SENTRY_DSN=your-sentry-dsn-here
SENTRY_ENVIRONMENT=development
# En production (variables d'environnement Render/Docker)
SENTRY_DSN=your-sentry-dsn-here
SENTRY_ENVIRONMENT=production