_ _____ _
| | | __ \ | |
| | _ _ ___ _ __ | |__) |_ _| |_ __ ___ ___
| | | | | |/ _ \| '_ \| ___/ _` | | '_ ` _ \ / _ \
| |___| |_| | (_) | | | | | | (_| | | | | | | | __/
|______\__, |\___/|_| |_|_| \__,_|_|_| |_| |_|\___|
__/ |
|___/
- À propos
1.1. Présentation générale
1.2. Equipe & encadrement - Technologies & savoir-faire
- Structure du dépôt
- Installation & prérequis
4.1. Environnement logiciel requis
4.2. Préparation de l'environnement
4.3. Installation des dépendances
4.4. Base de données
4.5. Compte SSMS
4.6. Configuration de l'application - Authentification & comptes
- Navigation & formulaires
- Utilisation & scénarios
- Annexes & ressources
- Sources
- Remerciements
Projet personnel encadré réalisé par Yasser Bouraghda, Tom Perrat, Milan Beretoni et Valentin Peries, étudiants en 2ᵉ année de BTS Services Informatiques aux Organisations – option SLAM à Sup'Chassagnes (Oullins, 69), sous la supervision de Mme Chataing.
L'application web LyonPalme gère l'inscription et le suivi des adhérents du club (projet fictif) :
- Les secrétaires administrent les comptes, archivent les anciens membres et suivent les cotisations.
- Les nageurs consultent le trombinoscope et mettent à jour leurs informations personnelles.
Cette version enrichie du README conserve l’intégralité des informations d’origine tout en offrant une présentation plus structurée et moderne, inspirée des standards de documentation professionnels.
- Equipe projet : Yasser Bouraghda, Tom Perrat, Milan Beretoni, Valentin Peries
- Encadrement : Mme Chataing – Sup'Chassagnes (69)
- Mettre en œuvre un cycle complet d’inscription numérique (création, mise à jour, archivage) avec garanties de confidentialité.
- Illustrer notre maîtrise de Django : formulaires dynamiques, gestion des utilisateurs et intégration d’expressions régulières.
- Démontrer la capacité à documenter un projet examiné par un jury externe grâce à une base documentaire (UML, MCD, user stories).
- Offrir une expérience différenciée secrétaire / nageur pour répondre aux besoins réels des clubs sportifs.
|
Python 3.11 |
Django 4.2.x |
Bootstrap 5 |
SQLite chiffrée |
- Framework : Django
- Templates : Bootstrap, HTML
- Models : mappage ORM, migrations
- Views : vues fonctionnelles, contrôles métiers
- URLs : routage côté application
- Fichier
requirements.txt:django-cryptography,Pillow,psycopg2,asgiref,sqlparse,cffi,cryptography,pycparser,django-appconf - Données
- Base locale : SQLite (liens 1 à n, chiffrement des données sensibles)
- Modélisation : UML, MCD, diagrammes de séquence
- Outils : Git, Debian, Visual Studio Code 2019/2022
- Librairies transverses :
django-cryptographypour le chiffrement transparent des champsPillowpour la gestion des fichiers image (photos, certificats)psycopg2pour l’ouverture future vers PostgreSQL
- Versions utilisées lors du développement :
- Django 4.2.2
- Python 3.11.4
- Debian (distribution de référence)
- VSCode 1.78.2
Lyonpalme_exam/
├── README.md
├── dossier_technique/
│ ├── MCD.png
│ ├── UML.png
│ ├── sequence.png
│ └── userstory.png
└── lyon_palme/
├── inscription/
│ ├── forms.py
│ ├── logger.py
│ ├── models.py
│ ├── regex.py
│ ├── static/
│ ├── templates/
│ ├── urls.py
│ └── views.py
├── lyon_palme/
│ ├── settings.py
│ ├── urls.py
│ ├── asgi.py
│ └── wsgi.py
├── manage.py
└── requirements.txt
Python 3 (3.11.4 utilisé, compatible 3.10+)
Django 4.2.2
Debian (ou distribution équivalente)
Visual Studio Code 2019/2022
cd inscriptions_lyon_palmes/
sudo apt update
sudo apt install python3-pip
sudo apt-get install python3-venv
python3 -m venv venv
source venv/bin/activate # Windows : venv\Scripts\activatecd lyon_palme/
pip install -r requirements.txtAstuce : exécuter
pip list --format=columnsaprès installation pour vérifier que les versions attendues sont bien installées.
La base SQLite est embarquée et ne nécessite ni identifiant ni mot de passe.
- Pour développer sur une base distante (PostgreSQL ou MySQL), prévoir la mise à jour de
settings.py. - Les champs sensibles sont chiffrés via
django-cryptography.
Les logins dédiés ne sont pas nécessaires : la base SQLite locale ne requiert ni utilisateur ni mot de passe, ce qui simplifie le CRUD pendant le développement.
- Les paramètres par défaut de
lyon_palme/settings.pypointent vers la base SQLite embarquée. - Pour un futur passage sur PostgreSQL/MySQL, adapter les paramètres
ENGINE,NAME,USER,PASSWORD,HOST,PORT.
En configuration locale, aucune chaîne de connexion supplémentaire n’est requise grâce à l’usage de SQLite. Pour un SGBD distant, documenter la chaîne dans settings.py ou dans des variables d’environnement.
- Les secrétaires utilisent un compte superutilisateur Django.
- Les nageurs disposent de comptes créés automatiquement par les secrétaires lors de l'inscription.
- Les mots de passe par défaut sont régénérés et contrôlés par une politique stricte (voir
Regex.verif_mdp).
Pour créer un compte secrétaire :
python3 manage.py createsuperuser
Nom d’utilisateur: secretaire
Email d’utilisateur: secretaire@gmail.com
Password d’utilisateur: C1Secret!| Identifiant | Mot de passe |
|---|---|
| secretaire | C1Secret! |
Création par un secrétaire via le formulaire d'inscription :
Identifiant = initiale du prénom + nom (ex. jdupont)
Mot de passe = date de naissance AAAAMMJJ
| Identifiant | Mot de passe |
|---|---|
| nageur | AAAAMMJJ |
- À la première connexion, un nageur est redirigé vers le formulaire de changement de mot de passe.
- L'attribut
login_countstocké dansInscriptionpermet de contrôler cette obligation.
- URL :
http://127.0.0.1:8000/inscription/ - Présente le club, la politique de confidentialité
(http://127.0.0.1:8000/inscription/politique_confidentialite) - Barre de navigation menant vers les portails Secrétaire et Nageur
| Formulaire | URL | Rôle |
|---|---|---|
| Nageur | http://127.0.0.1:8000/inscription/login_nageur |
Accès à l’espace nageur, mot de passe oublié |
| Secrétaire | http://127.0.0.1:8000/inscription/login_secretaire |
Accès à l’espace secrétaire |
- URL :
http://127.0.0.1:8000/inscription/accueil_nageur - Fonctions : consulter/modifier les données personnelles, accéder au trombinoscope, se déconnecter, revenir à l’accueil.
- URL :
http://127.0.0.1:8000/inscription/accueil_secretaire - Fonctions :
- Modifier son mot de passe
- Consulter la liste des nageurs
- Modifier et archiver les fiches adhérents
- Administrer les inscriptions et vérifier la politique de confidentialité
L’outil centralise la gestion des adhérents du club (fictif) : inscription, suivi des documents, gestion des droits d’affichage (trombinoscope, annuaire) et archivage. Les secrétaires pilotent l’ensemble des actions quotidiennes tandis que les adhérents disposent d’un accès autonome.
- Création d’un compte adhérent à partir d’un formulaire secrétaire (génération automatique de l’identifiant et du mot de passe initial).
- Consultation et mise à jour des informations personnelles, y compris le changement de mot de passe imposé à la première connexion.
- Visualisation du trombinoscope et accès rapide aux documents de référence (politique de confidentialité, informations club).
- Archivage d’un membre : l’historique est déplacé dans
Archiveavec date de désinscription, sans perte de données. - Contrôles de saisie renforcés grâce aux regex (mails, téléphones, codes postaux, mots de passe).
- Secrétaire se connecte via
/login_secretaire. - Crée un nouvel adhérent via le formulaire dédié (
inscription_form). - Le nouvel adhérent se connecte sur
/login_nageuravec l’identifiant généré et sa date de naissance. - À la première connexion, il est redirigé vers
/change_passwordpour personnaliser son mot de passe. - Il accède ensuite à son tableau de bord
/accueil_nageur, peut modifier ses informations et consulter le trombinoscope.
- Le formulaire de modification (
modification_form.html) est mutualisé côté secrétaire et nageur mais l'accès est contrôlé par des décorateurs@login_requiredet des tests suris_superuser. - La suppression d'un adhérent passe par l'archivage :
Archiveconserve l'historique (lien direct dansviews.archiver_nageur).
- Templates : interface responsive Bootstrap/HTML
- Views : contrôles métiers et gestion des flux secrétaires/nageurs
- Models : données chiffrées (
django-cryptography) et fichiers justificatifs (ImageField) - Regex : validations d’e-mails, téléphones, codes postaux et politique de mot de passe
- Des scripts internes (non publiés) ont permis de migrer les données Access vers SQLite/MySQL durant le projet.
- Le chiffrement de
InscriptionetArchiveassure la conformité RGPD.
-
User Story – description des rôles et parcours principaux
-
Modèle Conceptuel de Données (MCD) – structuration des entités et relations
-
Diagramme de classes UML – représentation orientée objet des modèles Django
-
Diagramme de séquence – scénario type d'inscription et d'interaction secrétaires/nageurs
-
Documentation fonctionnelle et dossiers annexes :
dossier_technique/
- Documentation officielle Django – référence pour le paramétrage, les vues et l’ORM.
- Guide Bootstrap 5 – composants utilisés pour la mise en forme des templates.
- Documentation Python 3.11 – bonnes pratiques sur les virtualenvs et modules standard.
- Cours et supports internes Sup’Chassagnes (Teams) mis à disposition par Mme Chataing.
- Recommandations vidéo :
Nous remercions sincèrement toutes les personnes qui ont contribué à la réussite de ce projet :
- Mme Chataing, pour son accompagnement constant, ses retours exigeants et la confiance accordée à notre équipe.
- L’ensemble de l’équipe pédagogique du BTS SIO SLAM, qui nous a transmis les bases techniques exploitées ici.
- Nos camarades de promotion, pour leurs tests, leurs remarques et leur soutien tout au long de l’année.



