INSATutorat est une application développée dans le cadre d'un Travail d'Initiative Personnelle (TIP) pour le département STPI de l'INSA Rouen Normandie.
Elle a pour objectif de faciliter la gestion du tutorat entre étudiants grâce à une plateforme web intuitive et complète.
- Gestion des tuteurs et tutorés
- Attribution automatique ou manuelle des appariements
- Visualisation des disponibilités des étudiants sous forme de calendrier
- Interface d'administration pour gérer les inscriptions, affectations et quotas
- Suivi des sessions de tutorat et des heures réalisées
Le projet est divisé en deux parties principales :
-
Backend (Go + Gin + GORM) :
Fournit une API REST pour gérer les inscriptions, les appariements, les comptes, et l'administration. -
Frontend (Vue/Nuxt + Tailwind) :
Interface utilisateur permettant aux étudiants et administrateurs d'interagir avec la plateforme.
Base de données : MariaDB (via GORM).
Avant d'installer et de lancer le projet, assurez-vous d'avoir :
- Golang (testé avec 1.24.0)
- Node.js (testé avec 20.11.0) et npm ≥ (testé avec 10.8.1)
- MariaDB (ou MySQL compatible)
- (Optionnel) un serveur web pour la version statique (NGINX, Caddy, ...)
git clone https://github.com/Romitou/INSATutorat
cd INSATutoratCréez une base MariaDB et configurez vos identifiants dans le fichier de configuration du backend (par ex. .env ou variables d'environnements).
Les migrations sont automatiques au lancement de l'API.
go build
./insatutoratLe serveur API est maintenant actif.
cd client
npm install
npm run devLe frontend est accessible sur http://localhost:3000.
Pour générer une version statique du frontend :
BASE_URL=https://stpi-tutorat.foo.bar/api npm run generateLes fichiers générés se trouvent dans client/dist.
Ils peuvent être servis avec NGINX, Caddy, ou tout autre serveur web.
Le backend (Go) peut être déployé indépendamment comme binaire.
Exemple mono-domaine :
server {
listen 127.0.0.1:9106;
access_log /var/log/nginx/stpi-tutorat.access.log;
error_log /var/log/nginx/stpi-tutorat.error.log;
absolute_redirect off;
root /var/www/stpi-tutorat/client/.output/public;
index index.html;
location / {
try_files $uri $uri/ $uri/index.html?$args /index.html?$args /404.html;
}
location /api/ {
proxy_pass http://127.0.0.1:9107;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/api/(.*)$ /$1 break;
}
}