[ca] Aquest projecte es centra en la creació d'una nova aplicació web eficient i pràctica que permet la generació automàtica d'horaris, els quals els usuaris poden utilitzar com a assistència per gestionar els períodes de matrícula al grau GEI (Grau d'Enginyeria Informàtica), a la FIB (Facultat d'Informàtica de Barcelona). Aquesta eina utilitza un enfocament algorísmic basat en la satisfactibilitat per resoldre els possibles conflictes entre les assignatures que els usuaris poden triar. L'objectiu principal de l'eina és poder generar aquests horaris, amb assigna- tures que no tinguin classes sobreposades. Aquest informe inclou un estudi comparatiu sobre els solvers SAT i SMT, i també aprofundeix en com es poden codificar les Restriccions de Cardinalitat en ambdós enfocaments, així com optimització de solucions. Finalment, es tria un dels dos per a la versió final, tenint en compte tant l'eficiència com la sostenibilitat de l'eina. Com a segon objectiu important, aquest projecte pretén utilitzar dades en temps real obtin- gudes de la pròpia API de la facultat sobre la disponibilitat de places de matrícula d'assignatures. Això permet als usuaris seleccionar només les assignatures realment disponibles, així com obtenir informació sobre la fiabilitat de l'horari generat a mesura que passi el temps i s'esgotin les places de matrícula. Un tercer objectiu per a aquest projecte era tenir aquesta aplicació executant-se en un servi- dor remot, i tenir tant l'aplicació web, com el endpoint del Backend exposat perquè els usuaris poguessin generar els seus propis horaris sense utilitzar la interfície d'usuari, si així ho desitjessin. Aquest informe també inclou alguns detalls de l'arquitectura utilitzada per a aquest sistema, així com alguns detalls sobre la seva infraestructura. Addicionalment, s'ha afegit un conjunt extra de funcionalitats, que permeten als usuaris personalitzar com es calculen aquests conflictes de forma independent per a cada assignatura, donant-los més llibertat d'elecció, a més de fer l'eina més versàtil.

[en] This project is centered around the creation of a new, efficient and practical web application that allows the automatic generation of schedules that users can use as assistance to man- age enrollment periods in the GEI (Grau d'Enginyeria Informàtica) bachelor's degree, in the FIB (Facultat d'Informàtica de Barcelona) faculty. This tool uses a Satisfiability based algorithm approach to solve the potential collisions between the subjects that users are able to choose. The tool's main goal is to be able to generate these schedules, with subjects that do not have overlapping classes. This report includes a deep comparative study on SAT and SMT solvers, and also delves into the how Cardinality Constraints can be encoded on both approaches, as well as some minor solution optimization. Finally, one of the two is chosen for the final version, taking into consideration both efficiency and maintainability. As a second important goal, this project aims to use real-time data fetched from the fac- ulty's own API on subject enrollment slots availability. This allows users to be able to select only subjects that are actually available, as well as also get information on how reliable the generated schedule will be as time passes and slots run out. A third goal for this project was to have this application running on a remote server, and have both the web application, as well as just the Backend endpoint exposed for users to generate their own schedules without using the user interface, if they so desired. This report also includes some details of the architecture used for this system, as well as some details about it's infrastructure. Additionally, an extra set of functionalities have been added, which allow users to customize how these collisions are computed independently for each subject, giving them more freedom of choice, as well as making the tool more versatile.