image

OC-LETTINGS-SITE

Python Django Sentry

Docker Docker Render Render

pytest Coverage

PEP8 Flake8 Black

Repo Size GitHub commit activity GitHub Action

Résumé

Site web d'Orange County Lettings.

Orange County Lettings est une start-up dans le secteur de la location de biens immobiliers.

Domaines du site et du déploiement a améliorer et/ou ajouter :

1. Refonte de l'architecture modulaire dans le repository GitHub ;
2. Réduction de diverses dettes techniques sur le projet ;
3. Ajout d'un pipeline CI/CD ainsi que son déploiement ;
4. Surveillance de l’application et suivi des erreurs via Sentry ;
5. Création de la documentation technique de l’application avec Read The Docs et Sphinx.

Documents du Projet

  1. Site web 2.0 - caracteristiques et ameliorations

  2. Configuration Read the Docs Sphinx

  3. Repo d'origine

  4. Documentation du projet

Installation et activation de l'environnement Virtuel et des dépendances

Création de l'environnement virtuel :

python -m venv .venv

Activation de l'environnement virtuel se placer dans le dossier .venv/scripts et taper :

./activate

Installation des dependances necessaires au projet avec poetry :

pip install poetry
poetry install

Installation des pré-commit :

Possibilité de mettre en service des pré-commit.

pre-commit install 

Les pré-commit effectuent un lintage du code avant chaque commit sur le code.

Pour travailler sans le mode DEBUG ( désactivé par défaut ) en local, collecter les fichiers statics :

python manage.py collectstatic --noinput

Pour générer la documentation Sphinx en local :

poetry run sphinx-build -b html doc/ doc/_build/

Usage

Executer le serveur en local :

python manage.py runserver

image

Interface d'administration :

Déploiement sur render :

L'application est accessible à l'adresse suivante : https://oc-lettings-site-cuqa.onrender.com

Interface d'administration : https://oc-lettings-site-cuqa.onrender.com/admin/login/?next=/admin/

Images Docker :

Les images Docker sont taguées avec le commit court.

Lien vers le hub public : https://hub.docker.com/r/gbriche/oc-lettings-site-web

Au lancement d'une image , mettre 8000 au host port.

Tests

Pour executer les tests en local, se placer dans le dossier racine du projet :

pytest

Pour connaitre la couverture totale des tests :

pytest --cov=.

Pour effectuer un rapport html des tests :

pytest --cov=. --cov-report html

Lancer index.html du dossier htlmcov

Journalisation

L'application possède une journalisation sur sentry, enregistrant les exceptions levées et inattendues.

Lien vers sentry : https://oc-student-gbriche.sentry.io/auth/login/oc-student-gbriche/

Compte test sur Sentry pour accéder au logging :

  • Email : ocstudentgeo@gmail.com
  • Mot de passe : Pass_P13_OC_Python

Selectionner le projet : python-django

CI/CD

L'application possède un workflow ci/cd sur github actions.

Lien vers le workflow : https://github.com/geo1310/Projet-13-oc-lettings-site/actions?query=workflow%3ACI

Le pipeline est conçu pour automatiser le processus de construction, de test et de déploiement de l'application, en garantissant une intégration continue et une livraison continue.

Il est composé de trois étapes :

  1. Build : Construction et validation du code.

    • -> Déclenché sur un Push ou une P.R sur n’importe quelle branche.
    • Simule l'installation de l'application et des dépendances.
    • Effectue le lintage du code avec falke8 et black.
    • Effectue les tests avec une couverture minimum de 80%
  2. Deploy Docker : Création et gestion des images Docker.

  3. Deploy Render : Déploiement sur la plateforme Render.

    • -> Déclenché sur un Push ou une P.R sur la branche main et aprés la réusssite du deploy-docker.
    • Déploie le projet sur render à l'aide de l'URL webhook de render

Contribuer

Si vous souhaitez contribuer à ce projet, veuillez suivre ces étapes :

Ouvrez un problème pour discuter de ce que vous souhaitez changer.
Fork ce dépôt et créez une branche pour votre contribution.
Soumettez une demande d'extraction avec vos modifications.