- À propos
- Prérequis
- Langages & Librairies
- Installation
- Paramétrage de l'environnement
- Création de la base de données
- Création de l'environnement de test (facultatif)
- Utilisation
- MCD (Modèle Conceptuel des Données)
- Workflow & Matrice de responsabilité
- Gestion des versions
- Licence
Formation OpenClassRooms - Architecture back-end - Projet 12
Objectifs :
- Modélisation et sécurisation d'une base de donnée SQL (postgresql)
- Mettre en place une architecture back-end sécurisée d'authentification
- Utilisation d'outils de journalisation (Sentry)
Avoir accès a postgresql (installation locale ou distante) pour la BDD.
Nécessite un compte Sentry pour la journalisation
- Python 3.12.7
- Click et Rich pour l'IHM en ligne de commande
- PyJWT & argon2-cffi pour la partie authentification (tokens et hash des mots de passe)
- Pydantic pour la validation des données
- SQLAlchemy
- PostgreSQL 16.4.1
- Sentry pour la journalisation
Cloner le repository
git clone [email protected]:Mothraa/CRM-App_CLI-pgSQL.git
Créer l'environnement virtuel avec venv
python -m venv .venv
Activer l'environnement
- sous linux ou mac
source .venv/bin/activate
- sous windows
.venv/scripts/activate
Installer les packages
pip install -r requirements.txt
- renommer le fichier ".env.template" en ".env" (ou créer des variables d'environnement)
- modifier la configuration du fichier ".env"
Des scripts (répertoire \scripts) permettent la mise en place de la base de données
- Création de la base et des tables (vide) - via compte superadmin
python scripts/1_create_db_schema_tables.py
- Création du compte admin de l'app, application des privilèges - via compte superadmin
python scripts/2_create_db_schema_tables.py
Des scripts permettent de peupler la base de données fictives :
- comptes tests fictifs pour chaque profil utilisateur :
python scripts/3_seed_test_users.py
Le mot de passe par défaut est commun a tous les comptes et modifiable dans le script.
- peuplement de données fictives (avec la lib Faker) :
python scripts/4_seed_fake_data.py
Le nombre d'entité ajouté est paramétrable dans le script.
Note : pour l'execution des tests d'intégration, une copie de la base est a réaliser.
CREATE DATABASE my_test_db WITH TEMPLATE my_db;
Vous serez peut être amenés a forcer la fermeture des connexions actives.
DO $$
BEGIN
PERFORM pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'my_db' AND pid <> pg_backend_pid();
END $$;
L'ensemble des commandes sont disponibles depuis l'execution du fichier run.py. Une option d'aide est disponible :
python src/run.py --help
Un résumé des commandes est disponible : Guide utilisateur
La dénomination des versions suit la spécification décrite par la Gestion sémantique de version
Les versions disponibles ainsi que les journaux décrivant les changements apportés sont disponibles depuis la section releases
Voir le fichier LICENSE du dépôt.