Skip to content

Mothraa/CRM-App_CLI-pgSQL

Repository files navigation

Développez une architecture back-end sécurisée avec Python et SQL

Sommaire

A propos

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)

Prérequis

Avoir accès a postgresql (installation locale ou distante) pour la BDD.

Nécessite un compte Sentry pour la journalisation

Langages & Librairies

Installation

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

Paramétrage de l'environnement

  • renommer le fichier ".env.template" en ".env" (ou créer des variables d'environnement)
  • modifier la configuration du fichier ".env"

Création de la base de données

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

Création de l'environnment de test (facultatif)

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 $$;

Utilisation

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

MCD (Modèle Conceptuel des Données)

MCD de l'application

Workflow & matrice de responsabilité

Workflow de création d'un évenement

Matrice de responsabilité des profils utilisateurs

Gestion des versions

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

Licence

Voir le fichier LICENSE du dépôt.