/horaire-ets

Générateur d'horaire pour l'ÉTS

Primary LanguageJava

HorairÉTS

HorairÉTS est un générateur de combinaisons d'horaire pour les étudiants de l'École de technologie supérieure. L'application officielle est hébergé sur https://horairets.emmanuelcoulombe.dev/. Cette application est séparée en deux projets différents, soit l'interface utilisateur et le backend. Pour en savoir plus sur l'interface utilisateur de HorairÉTS, vous pouvez la retrouver ici.

horairets

Pour commencer

Cloner le code

git clone https://github.com/imrashb/horaire-ets.git

Installation

NOTE: L'IDE IntelliJ IDEA permet de facilement installer Java 11 et Maven est déjà intégré

  • Installer les dépendances avec Maven. IntelliJ IDEA est recommandé, tout se fait presque automatiquement

Variables d'environnement

Avant de démarrer l'application, vous devez remplir les variables d'environnements. IntelliJ IDEA est recommandé, il supporte bien l'injection de variables d'environnement avec une configuration d'application

Variable d'environnement Description
DISCORD_TOKEN Le token du bot Discord
SPRING_DATASOURCE_URL L'URL de la base de donnée PostgreSQL. (ex. jdbc:postgresql://localhost:5432/postgres)
SPRING_DATASOURCE_USERNAME L'identifiant de l'utilisateur de la base de donnée (ex. postgres)
SPRING_DATASOURCE_PASSWORD Le mot de passe de l'utilisateur de la base de donnée (ex. password)

Démarrer l'application

IntelliJ IDEA est recommandé pour démarrer l'application. Il y a plusieurs classes principales

  • me.imrashb.Main: Démarre l'API et le bot Discord
  • me.imrashb.TestImageHoraire: Démarre un interface utilisateur rudimentaire pour créer des thèmes d'horaire

Conteneurisation avec Docker

Ajouter les variables d'environnement dans Dockerfile ou dans docker-compose.yml.

Créer le conteneur Docker avec Compose

docker-compose build

Démarrer le conteneur

docker-compose up

Arrêter le conteneur

docker-compose down

Technologies utilisées

Technologie de développement Description
Spring Boot Pour facilement créer des endpoints de l'API
Spring Data ORM pour accéder à la base de donnée
Lombok Accélérer le développement et simplifier le code en enlevant le code boilerplate
JDA Java Discord API pour le bot Discord
jsoup Pour scrape des données provenant du site de l'ÉTS
Apache PDFBox Pour extraire les informations des PDF de l'ÉTS
Outils de développement Description
Postman Pour tester les endpoints de l'API
Docker Pour conteneuriser l'application
Heroku Pour héberger l'application