Go to file
Emmy D'Anello e1b4e1bb6b
Fix psycopg
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
2024-10-28 22:57:40 +01:00
api Use Django 4.1 (soon 4.2) to use the new async framework 2023-04-04 10:25:46 +02:00
chat More specific code to ETEAM 2024-06-08 00:23:44 +02:00
docs Add documentation for year transitioning 2024-10-28 22:24:11 +01:00
draw Linting 2024-10-20 20:15:29 +02:00
locale/fr/LC_MESSAGES Prevent registration when we are not between registration dates 2024-10-28 20:21:02 +01:00
logs Don't trigger signals on raw imports 2023-04-04 10:25:47 +02:00
participation Add documentation for year transitioning 2024-10-28 22:24:11 +01:00
registration Add export photo authorizations script 2024-10-28 21:33:58 +01:00
tfjm Prevent registration when we are not between registration dates 2024-10-28 20:21:02 +01:00
.bashrc Smaller bashrc 2020-09-19 21:31:11 +02:00
.dockerignore Reset project 2020-12-27 11:14:35 +01:00
.gitignore Allow to use a local settings file 2024-02-24 08:45:59 +01:00
.gitlab-ci.yml Upgrade dependencies + add support for Python 3.13 and Django 5.1 2024-10-21 19:36:08 +02:00
Dockerfile Fix psycopg 2024-10-28 22:57:40 +01:00
LICENSE Clone Corres2math platform 2020-12-27 11:49:54 +01:00
README.md Temporary remove chat feature (maybe reintroduce a better one later) 2024-01-13 17:04:45 +01:00
entrypoint.sh There is no fixture to load 2024-04-07 13:46:03 +02:00
manage.py Clone Corres2math platform 2020-12-27 11:49:54 +01:00
nginx_tfjm.conf Add reverse-proxy headers 2023-04-04 10:25:53 +02:00
requirements.txt Fix psycopg 2024-10-28 22:57:40 +01:00
tfjm.cron Fix TFJM sympa lists every day instead of every two minutes 2024-05-19 21:18:58 +02:00
tox.ini Upgrade dependencies + add support for Python 3.13 and Django 5.1 2024-10-21 19:36:08 +02:00

README.md

Plateforme du TFJM²

pipeline status coverage report

La plateforme du TFJM² est née pour la dixième édition en 2019 de l'action. D'abord codée en PHP, elle a subi une refonte totale en Python, à l'aide du framework Web Django.

Cette plateforme permet aux participants et encadrants de s'inscrire et de déposer leurs autorisations nécessaires. Ils pourront ensuite déposer leurs solutions et notes de synthèse pour le premier tour en temps voulu. La plateforme offre également un accès pour les organisateurs et les jurys leur permettant de communiquer avec les équipes et de récupérer les documents nécessaires.

Un wiki plus détaillé arrivera ultérieurement. L'interface organisateur et jury est vouée à être plus poussée.

L'instance de production est disponible à l'adresse inscription.tfjm.org.

Installation

Le plus simple pour installer la plateforme est d'utiliser l'image Docker incluse, qui fait tourner un serveur Nginx exposé sur le port 80 avec le serveur Django. Ci-dessous une configuration Docker-Compose, à adapter selon vos besoins :

  plateforme-tfjm:
    build: https://gitlab.com/animath/si/plateforme-tfjm.git
    links:
      - postgres
    ports:
      - "80:80"
    env_file:
      - ./inscription-tfjm.env
    volumes:
    # - ./inscription-tfjm:/code
      - ./inscription-tfjm/media:/code/media

Le volume /code n'est à ajouter uniquement en développement, et jamais en production.

Il faut remplir les variables d'environnement suivantes :

TFJM_STAGE=                     # dev ou prod
DJANGO_DB_TYPE=                 # MySQL, PostgreSQL ou SQLite (par défaut)
DJANGO_DB_HOST=                 # Hôte de la base de données
DJANGO_DB_NAME=                 # Nom de la base de données
DJANGO_DB_USER=                 # Utilisateur de la base de données
DJANGO_DB_PASSWORD=             # Mot de passe pour accéder à la base de données
SMTP_HOST=                      # Hôte SMTP pour l'envoi de mails
SMTP_PORT=465                   # Port du serveur SMTP
SMTP_HOST_USER=                 # Utilisateur du compte SMTP
SMTP_HOST_PASSWORD=             # Mot de passe du compte SMTP
FROM_EMAIL=contact@tfjm.org     # Nom de l'expéditeur des mails
SERVER_EMAIL=contact@tfjm.org   # Adresse e-mail expéditrice
SYMPA_URL=lists.example.com     # Serveur Sympa à utiliser
SYMPA_EMAIL=                    # Adresse e-mail du compte administrateur de Sympa
SYMPA_PASSWORD=                 # Mot de passe du compte administrateur de Sympa

Si le type de base de données sélectionné est SQLite, la variable DJANGO_DB_HOST sera utilisée en guise de chemin vers le fichier de base de données (par défaut, db.sqlite3).

En développement, il est recommandé d'utiliser SQLite pour des raisons de simplicité. Les paramètres de mail ne seront pas utilisés, et les mails qui doivent être envoyés seront envoyés dans la console. L'intégration mail seront également désactivées.

En production, il est recommandé de ne pas utiliser SQLite pour des raisons de performances.

La dernière différence entre le développment et la production est qu'en développement, chaque modification d'un fichier est détectée et le serveur se relance automatiquement dès lors.