Skip to content

Latest commit

 

History

History
324 lines (274 loc) · 15.8 KB

File metadata and controls

324 lines (274 loc) · 15.8 KB
                                                                                  
  _                       _____      _                
 | |                     |  __ \    | |               
 | |    _   _  ___  _ __ | |__) |_ _| |_ __ ___   ___ 
 | |   | | | |/ _ \| '_ \|  ___/ _` | | '_ ` _ \ / _ \
 | |___| |_| | (_) | | | | |  | (_| | | | | | | |  __/
 |______\__, |\___/|_| |_|_|   \__,_|_|_| |_| |_|\___|
         __/ |                                        
        |___/                                         

BTS SIO SLAM Sup'Chassagnes Étoiles GitHub

Contributeurs

Sommaire

  1. À propos
    1.1. Présentation générale
    1.2. Equipe & encadrement
  2. Technologies & savoir-faire
  3. Structure du dépôt
  4. 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
  5. Authentification & comptes
  6. Navigation & formulaires
  7. Utilisation & scénarios
  8. Annexes & ressources
  9. Sources
  10. Remerciements

À propos

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)

Objectifs pédagogiques et fonctionnels

  • 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.

Retour en haut

Technologies & savoir-faire

Python
Python 3.11
Django
Django 4.2.x
Bootstrap
Bootstrap 5
SQLite
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-cryptography pour le chiffrement transparent des champs
    • Pillow pour la gestion des fichiers image (photos, certificats)
    • psycopg2 pour 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

Retour en haut

Structure du dépôt

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

Retour en haut

Installation & prérequis

1. Environnement logiciel requis

  • Python Python 3 (3.11.4 utilisé, compatible 3.10+)
  • Django Django 4.2.2
  • Debian Debian (ou distribution équivalente)
  • Visual Studio Code Visual Studio Code 2019/2022

2. Préparation de l'environnement

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\activate

3. Installation des dépendances

cd lyon_palme/
pip install -r requirements.txt

Astuce : exécuter pip list --format=columns après installation pour vérifier que les versions attendues sont bien installées.

4. Base de donné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.

5. Compte SSMS pour se connecter à la base de données

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.

6. Configuration de l'application pour la connexion à la base

  • Les paramètres par défaut de lyon_palme/settings.py pointent vers la base SQLite embarquée.
  • Pour un futur passage sur PostgreSQL/MySQL, adapter les paramètres ENGINE, NAME, USER, PASSWORD, HOST, PORT.

Chaînes de connexion

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.

Retour en haut

Authentification & comptes

Vue d'ensemble

  • 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).

Compte secrétaire

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!

Comptes adhérents

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_count stocké dans Inscription permet de contrôler cette obligation.

Retour en haut

Navigation & formulaires

Accueil public

  • 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

Portail de connexion

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

Espace nageur

  • 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.

Espace secrétaire

  • 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é

Retour en haut

Utilisation & scénarios

Présentation de l’application

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.

Fonctionnalités clés

  • 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 Archive avec 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).

Parcours type

  1. Secrétaire se connecte via /login_secretaire.
  2. Crée un nouvel adhérent via le formulaire dédié (inscription_form).
  3. Le nouvel adhérent se connecte sur /login_nageur avec l’identifiant généré et sa date de naissance.
  4. À la première connexion, il est redirigé vers /change_password pour personnaliser son mot de passe.
  5. Il accède ensuite à son tableau de bord /accueil_nageur, peut modifier ses informations et consulter le trombinoscope.

Points de vigilance

  • 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_required et des tests sur is_superuser.
  • La suppression d'un adhérent passe par l'archivage : Archive conserve l'historique (lien direct dans views.archiver_nageur).

Technologies en pratique

  • 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

Notes sur la migration

  • Des scripts internes (non publiés) ont permis de migrer les données Access vers SQLite/MySQL durant le projet.
  • Le chiffrement de Inscription et Archive assure la conformité RGPD.

Retour en haut

Annexes & ressources

  • User Story – description des rôles et parcours principaux

    User Story LyonPalme

  • Modèle Conceptuel de Données (MCD) – structuration des entités et relations

    Modèle Conceptuel de Données

  • Diagramme de classes UML – représentation orientée objet des modèles Django

    Diagramme de classes UML

  • Diagramme de séquence – scénario type d'inscription et d'interaction secrétaires/nageurs

    Diagramme de séquence

  • Documentation fonctionnelle et dossiers annexes : dossier_technique/

Retour en haut

Sources

Retour en haut

Remerciements

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.

Retour en haut