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.
git clone https://github.com/imrashb/horaire-ets.git
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
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) |
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
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
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 |