Helper v3 est une API backend écrite en Go pour interagir avec un outil pédagogique existant codé en PHP. L'API permet de gérer l'authentification des utilisateurs, de récupérer les IDs des cours, de vérifier le statut de présence et de marquer la présence pour les cours de la journée.
- Go 1.16 ou supérieur
- Accès à l'outil pédagogique codé en PHP
- Docker
-
Clonez le dépôt :
git clone https://github.com/votre-utilisateur/helper-v3.git cd helper-v3 -
Installez les dépendances :
go mod tidy
-
Compilez et lancez le serveur :
go run main.go
-
L'API sera disponible à l'adresse suivante :
http://localhost:8888
-
Construisez l'image Docker :
docker build -t helper-api . -
Lancez un conteneur à partir de l'image :
docker run -p 8888:8888 helper-api
-
L'API sera disponible à l'adresse suivante :
http://localhost:8888
Le Dockerfile utilisé pour créer l'image est le suivant :
FROM golang:latest as build
WORKDIR /app
COPY . .
RUN go mod download && CGO_ENABLED=0 GOOS=linux go build -o helper-api .
FROM alpine:latest
COPY --from=build /app/helper-api .
EXPOSE 8888
RUN chmod +x helper-api
ENTRYPOINT [ "/helper-api" ]- Endpoint:
/login - Méthode: POST
- Description: Authentifie l'utilisateur et récupère le cookie de session.
- Corps de la requête:
{ "username": "votre_nom_utilisateur", "password": "votre_mot_de_passe" } - Réponse:
{ "body": { "cookie": "cookie_de_session" } }
- Endpoint:
/getCourseIDs - Méthode: POST
- Description: Récupère les IDs des cours de la journée.
- Corps de la requête:
{ "cookie": "votre_cookie" } - Réponse:
{ "body": { "courses": [ { "id": "12345", "name": "Nom du cours", "period": "Matin" }, { "id": "67890", "name": "Nom du cours", "period": "Après-midi" } ] } }
- Endpoint:
/getAttendanceStatus - Méthode: POST
- Description: Récupère le statut de présence pour un cours spécifique.
- Corps de la requête:
{ "cookie": "votre_cookie", "courseID": "id_du_cours" } - Réponse:
{ "body": { "status": "Fermé et a déjà été ouvert" } }
- Endpoint:
/setPresence - Méthode: POST
- Description: Marque la présence pour un cours spécifique.
- Corps de la requête:
{ "cookie": "votre_cookie", "courseID": "id_du_cours" } - Réponse:
{ "body": { "message": "Fermé et a déjà été ouvert" } }
- Endpoint:
/fetchCalendar - Méthode: POST
- Description: Télécharge et analyse un fichier iCalendar pour récupérer le programme de la semaine.
- Corps de la requête:
{ "calUUID": "49caac7c643b4be6817db60be4374ee7" } - Réponse:
{ "body": { "schedule": [ { "day": "2024-06-12", "full_day": true, "morning": false, "afternoon": false, "remote": false, "location": "", "professor": "", "subject": "entreprise" }, { "day": "2024-06-13", "full_day": false, "morning": true, "afternoon": false, "remote": false, "location": "E 561", "professor": "John DOE", "subject": "GOLANG" } ] } }Pour récupérer l'UUID, il faudra tout d'abord trouver le lien de téléchargement du calendrier sur Pepal. Il suffit de se diriger vers l'emploi du temps, puis il sera tout simplement en haut à droite.