Skip to content

About

🎓 Automated peer-tutoring management platform for INSA Rouen Normandie : student matching, schedule planning, and session tracking.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

INSATutorat

wakatime

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.


📄 Documents du projet


🚀 Fonctionnalités principales

  • 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

🛠️ Architecture du projet

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


📋 Prérequis

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

⚙️ Installation & Lancement

1. Cloner le projet

git clone https://github.com/Romitou/INSATutorat
cd INSATutorat

2. Configurer la base de données

Cré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.

3. Lancer le backend

go build
./insatutorat

Le serveur API est maintenant actif.

4. Installer et lancer le frontend

cd client
npm install
npm run dev

Le frontend est accessible sur http://localhost:3000.


📦 Build pour la production

Pour générer une version statique du frontend :

BASE_URL=https://stpi-tutorat.foo.bar/api npm run generate

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

Configurations serveurs web

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;
    }
}

About

🎓 Automated peer-tutoring management platform for INSA Rouen Normandie : student matching, schedule planning, and session tracking.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages