EpicEvents CRM - Backend Application-CLI

EpicEvents CRM is an internal application enabling Epic Events to manage its customers, contracts and events more efficiently. Developed in …
PRESENTATION
EpicEvents CRM est une application interne permettant à l’entreprise Epic Events de gérer plus efficacement ses clients, contrats et événements. Développée en Python, cette application met l’accent sur la sécurité, la maintenabilité et l’évolutivité. Elle propose une interface en ligne de commande (CLI) pour permettre aux collaborateurs (commerciaux, gestion, support) de travailler sur les données internes du CRM sans interface graphique, mais de manière simple et structurée.
L’application utilise des composants et bibliothèques de référence :
- Base de Données : PostgreSQL, pour sa robustesse, sa stabilité et ses capacités avancées.
- ORM : SQLAlchemy, pour interagir de manière sécurisée avec la base de données et éviter l’usage de requêtes SQL brutes.
- Architecture : Design patterns MVC et DAO pour une séparation claire des responsabilités, facilitant la maintenance et les évolutions futures.
- Interface Utilisateur : Click & Rich, permettant une expérience en ligne de commande plus ergonomique, avec des tables, des couleurs et des messages d’aide.
- Sécurité & Authentification : Passlib pour le hachage des mots de passe, PyJWT pour la gestion des tokens, Pydantic pour la validation des données.
- Journalisation & Suivi des Erreurs : Intégration à Sentry pour la capture des erreurs et le suivi des exceptions.
- Qualité & Tests : pytest pour les tests, flake8 + flake8-html pour s’assurer du respect des bonnes pratiques et du style de code.
Fonctionnalités Principales
- Gestion des utilisateurs et authentification (commerciaux, gestion, support) avec permissions adaptées à chaque rôle.
- Création, mise à jour et consultation des clients.
- Création, mise à jour et consultation des contrats (avec statut, montants, etc.).
- Création, assignation et mise à jour des événements (associés aux clients via les contrats).
- Filtrage et recherche avancés (par exemple, rechercher tous les événements sans support, contrats non signés, etc.).
- Interface en ligne de commande ergonomique, avec aide intégrée.
Heric

Hello and welcome to my blog. My name is Héric Libong. After a long career as a journalist, I decided 7 years ago to move into data science and then software development. Python is my main programming language. I'm an expert in Web Scraping and data extraction techniques. My development environment is the Django framework.