Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                                                                                  
  _                       _____      _                
 | |                     |  __ \    | |               
 | |    _   _  ___  _ __ | |__) |_ _| |_ __ ___   ___ 
 | |   | | | |/ _ \| '_ \|  ___/ _` | | '_ ` _ \ / _ \
 | |___| |_| | (_) | | | | |  | (_| | | | | | | |  __/
 |______\__, |\___/|_| |_|_|   \__,_|_|_| |_| |_|\___|
         __/ |                                        
        |___/                                         

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

About

Application Django de gestion des adhérents d’un club de plongée (inscriptions, trombinoscope, archivage). Projet BTS SIO SLAM – Sup’Chassagnes, Lyon.

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages