
L'application entière est régie via le fichier docker-compose.yml et est construite avec docker compose :
docker et docker-compose , cela peut nécessiter un redémarrage de votre système car Docker est un programme de très bas niveau.docker compose up --build en tant qu'utilisateur avec des autorisations à Docker, ou avec sudo / doas , l'indicateur de build est requis si le code backend ou frontal a été modifié, en outre -d le fera détacher du terminal.docker compose restart , cela est nécessaire pour que l'analyseur s'exécute et que le magasin vectoriel puisse créer de nouveaux intérêts. Le backend est construit avec Clojure, un langage de programmation fonctionnel basé sur LISP qui fonctionne sur la machine virtuelle Java.
Cette partie sert à plusieurs fins, il est responsable du grattage des pages de cours de KU ainsi que des statistiques des stads.
Le backend sert également le frontend et contient la base de données "DataScript" et est responsable des services rafraîchissants et de divers services (cette fonctionnalité est partiellement rompue pour le moment).
Ce service est responsable des recherches sémantiques utilisées dans l'itinéraire get_course_overviews , au lieu d'utiliser des trigrammes ou du texte intégral, nous avons décidé d'utiliser des recherches vectorielles pour la latence inférieure.
Ce service est l'analyseur qui prend les pages de cours grattées et les analyse dans un format que nous pouvons utiliser dans la base de données pour la recherche et pour servir au frontend.
Frontend est construit dans Svelte / TypeScript. Il s'agit d'un spa très responsable qui montre les cours sous forme de cartes qui peuvent être cliquées pour obtenir une vue plus détaillée du cours.