# CrossApp Application Django pour l’enregistrement des temps de courses des coureurs. ## Fonctionnalités principales - Gestion des courses (création, historique, vue course) - Scan QR code (html5-qrcode) - Génération de dossards PDF - Export des résultats/stats customisés en CSV/PDF - Module admin Django ## Installation 1. Créez et activez un environnement virtuel Python 2. Installez les dépendances : ```bash pip install -r requirements.txt ``` 3. Appliquez les migrations : ```bash python manage.py makemigrations main python manage.py migrate ``` 4. Créez un superutilisateur : ```bash python manage.py createsuperuser ``` 5. Lancez le serveur : ```bash python manage.py runserver 0.0.0.0:8000 ``` 6. Accès à l'interface admin depuis : ```bash https://USER:PORT/admin ``` ## Tester en HTTPS en local avec Daphne ATTENTION ! L'utilisation de la caméra pour scanner les QR codes nécessite que le site soit servi en HTTPS. Pour tester en local, vous pouvez générer un certificat autosigné et lancer Daphne avec TLS comme expliqué ci-dessous. Le certificat autosigné n'est pas destiné à un usage en production. 1. Générez un certificat autosigné pour `localhost` : ```bash mkdir -p certs openssl req -x509 -newkey rsa:2048 -nodes -keyout certs/localhost.key -out certs/localhost.crt -days 365 -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost,IP:127.0.0.1" ``` 2. Si vous utilisez la connexion ou l'administration, ajoutez cette origine dans `conf.env` afin que la protection CSRF accepte les requêtes HTTPS : ```env DJANGO_CSRF_TRUSTED_ORIGINS=https://localhost,https://127.0.0.1 ``` 3. Collectez les fichiers statiques puis lancez Daphne avec TLS : ```bash python manage.py collectstatic --noinput daphne -e ssl:8443:interface=0.0.0.0:privateKey=certs/localhost.key:certKey=certs/localhost.crt crossapp.asgi:application ``` 4. Ouvrez [https://localhost:8443](https://localhost:8443). Le navigateur affichera un avertissement car le certificat est autosigné ; c'est attendu pour un test local. Les certificats sont ignorés par Git. Ce certificat convient à `localhost` et `127.0.0.1` ; pour tester depuis un autre appareil ou avec une adresse IP différente, générez un certificat contenant cette adresse dans `subjectAltName` et ajoutez son origine HTTPS à `DJANGO_CSRF_TRUSTED_ORIGINS`. ## Fonctionnalités interface admin - Gestion des coureurs (ajout, modification, suppression) - Import en masse des coureurs dans la rubrique "Coureurs" via CSV ou depuis export Pronote