GithubHelp home page GithubHelp logo

krystosterone / rubik Goto Github PK

View Code? Open in Web Editor NEW
44.0 44.0 12.0 80.48 MB

A tool for students to easily and intuitively generate schedule combinations for different school trimesters

Home Page: http://ets.rubik.co

License: GNU General Public License v3.0

Ruby 72.67% HTML 0.55% JavaScript 1.42% Gherkin 4.13% Shell 0.30% Procfile 0.03% Sass 3.00% SCSS 13.16% Haml 4.74%

rubik's People

Contributors

brianquirion avatar dependabot[bot] avatar depfu[bot] avatar hyftar avatar krystosterone avatar tqueri avatar virgile-men avatar wilomgfx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rubik's Issues

Projets de fin d'études pas disponibles

Un étudiant a remarqué que le cours CTN793 n'était pas disponible. J'ai regardé si les autres projets de fin d'études étaient disponibles et ils ne le sont pas également.
C'est la même chose pour les anciennes sessions, est-ce que c'est normal ?

Liste des cours indisponibles

Inclure quand même les cours qui ne se donnent pas à une session donnée. Juste les affichés en grisé avec, en survol, une explication indiquant que le cours ne se donne pas durant la session et inclure les prévisions pour ce cours.

Filtre - Sélectionner les groupe-cours

Il serait bien d'avoir une fonctionalité qui permet de bloquer des groupes qui sont déja pleins. Si l'information n'est pas disponible dans les API, du moins nous laisser les bloquer manuellement.

Horraire Hiver 2023

Salut, je me demandais si Rubik allait être mis à jour d'ici les choix de cours qui se passeront le 31 octobre? Rubik m'a vraiment été utile les sessions précédentes pour mon choix de cours!

Genie MECANIQUE - cours 592 et 528

Ces 2 cours doivent être pris en même temps et il est obligatoire d’être dans le même groupe (Ex: MEC592-01 et MEC528-01) sinon ça ne fonctionne pas du coté de l’école. Cependant le générateur ne prend pas cette exception en compte. Est ce qu'il serait possible d'ajouté cette condition?

Prevent record duplication caused by browser caching

Exception creeping up: https://herokuapp44437662herokucom.airbrake.io/projects/120145/groups/1792444364527834425?tab=overview

This is caused by browsers having a back-forward cache (see: https://developer.mozilla.org/en-US/Firefox/Releases/1.5/Using_Firefox_1.5_caching). This cache disregards any headers related to cache. This in turn causes a bug where:

  1. Edit an agenda
  2. Add a course
  3. Click continue
  4. End up on the results back and hit back on the browser
  5. Resubmit the form
  6. 💥 because the record already exists

Implemented this solution: http://stackoverflow.com/a/13123626 (f9ddb78)
And had already previously removed browser caching all together in the hopes to fix the problem (28030c0)

I'd prefer finding a better solution.

Mise a jour des pdfs

L'école à update les pdfs ce matin (23 oct vers 6hr).

Pour mécanique, il manquait une plage horaire de TP avec un cours (je sais plus lequel), donc une partie des horaires générés sur rubik sont décalé présentement (exemple: MEC741 qui a affiche un cours le matin alors que c'est un cours de soir).

Je sais pas si ça affecte les autres programmes, mais tout les pdfs affichent une nouvelle date en bas de chaque page.

Filtre - Cours par jours

bonjour, j'aimais bien l'option antérieur qui permettait de choisir combien de jours nous désirons avoir des cours ... pourrais-je y avoir accès puisque je dois tester tous les jours de congés un par un et c'est long... merci pour cet outil de générateur d'horaire c'est très utile

Merci encore ce serait 4 cours parmi ing 150, mat165, mat 350, ent202 ou 201 , gpe450, chm131 ...je suis en opérations et logistique et j'aimerais avoir soit 3 jours complets ou 4 après midi de 13h à 21h 30

MEC727 H2022 wrong time/day

MEC727 will be:
Thursday 8:30-12:00 C
Wednesday 15:30-17:30 TP/Labo

In Rubik it is Thursday PM only as of 2021-10-17

Mise a jour de données pour les sessions 2020

Bonjour !
J'ai remarqué que les PDFs de planification des horaires et choix de cours des sessions été 2020 et automne 2020 sont maintenant disponibles sur le site de l'ETS : https://www.etsmtl.ca/Etudiants/Horaire-cours

Je me demandais donc si une mise à jour des données du site était prévue pour bientôt étant donné que la période des choix de cours de la session été 2020 débute la semaine prochaine. Merci d'avance !

Ps : Sinon y a-t-il moyen de contribuer pour mettre à jour ces données ?

Erreur dans l'horaire du cours de LOG635

Bonjour,

Le PDF dit que le cours LOG635 groupe 2 est le Mardi matin et mardi après-midi pour les 2 sous-groupes. Votre site indique que le groupe est le mardi matin et le mardi après-midi pour le sous-groupe 1 mais vendredi après-midi pour le sous-groupe 2

Rubik :
image

PDF ÉTS :
image

Rajouter une notion de cours obligatoire

Bonjour, J'ai une suggestion d'amélioration. Il serait intéressant de pouvoir sélectionner certains cours comme "obligatoire". Par exemple, je sélectionne les cours A, B, C et D et je désire faire 2 cours la session prochaine, mais je dois absolument faire le cours A. J'inscrit donc le cours A comme obligatoire et le système me propose alors seulement les combinaisons contenant le cours A (AB, AC et AD) et retire les autres des résultats (BC, BD et CD). Alexandre

Listes de cours pas à jour pour l'automne 2019

L'école a effectué de gros changements de cours et d'horaires qui seront appliqués dès l'automne 2019. Les nouveaux PDFs d'horaires ont été mis à jour sur le site de l'école (Lien) pour les programmes concernés.

Dans la plateforme de Rubik, les horaires ne sont pas à jour et il y manque les nouveaux cours pour les programmes concernés.

Filtre - Occurences de cours de soir

Salut, ça serait cool s'il pouvait y avoir un filtre pour le nombre de cours qu'on accepterait à avoir de soir. Par exemple, dans mon cas, je n'ai pas de préférences par rapport à quel soir de la semaine sera dédié à mes cours, mais j'en voudrais maximum 2 par semaine. Ça pourrait être fait pour les autres périodes, mais je pense que le besoin serait surtout pour le soir.

Exporter les résultats

Permettre de sauvegarder les sélection (le profil reste souvent le même d'une session à l'autre) ou tout du moins permettre d'exporter en xml ou json les sélections (congés, session, programme, cours). Si cela est compliqué, alors inclure des profil "types", du genre travailleurs (occupé en semaine de 8h à 17h)

Setup Airbrake for your Ruby application

Installing with the CLI

The Airbrake CLI installs the Airbrake Ruby notifier automatically in your Ruby project. To install the gem directly without using the CLI, please scroll down to the Installing manually section.

Install the CLI via Homebrew

brew install airbrake/airbrake-cli/airbrake

Authenticate via config command

Authenticate by setting your user-key with the config command:

airbrake config set user-key YOUR_USER_KEY_HERE

You can find your user key in your profile settings page.

Install command

Invoke the following to have the Airbrake CLI install the Airbrake notifier for your project:

airbrake install --project-id YOUR_PROJECT_ID_HERE

You can find your project ID in your project's settings.

After this, you are set! Check out the Testing your installation section to send a test error to Airbrake.

Installing manually

Option 1: Bundler

Add the Airbrake Ruby gem to your Gemfile:

gem 'airbrake-ruby'

Option 2: Manual

Invoke the following command from your terminal:

gem install airbrake-ruby

Configuration

Just require the library and copy this configuration snippet into your Ruby project:

(You can find your project ID and API key in your project's settings)

require 'airbrake-ruby'

Airbrake.configure do |c|
  c.project_id = <Your project ID>
  c.project_key = '<Your project API KEY>'
end

Testing your installation

To test your installation, send a test error to Airbrake as shown in one of the examples below. Uncaught errors are automatically sent to Airbrake. Caught errors can be sent to Airbrake using the notify or notify_sync methods:

Report errors synchronously

# Synchronous error delivery for short lived processes/scripts.
begin
  1/0
rescue ZeroDivisionError => ex
  Airbrake.notify_sync(ex)
end

Report errors asynchronously

# Asynchronous error delivery for longer living processes/apps.
begin
  1/0
rescue ZeroDivisionError => ex
  Airbrake.notify(ex)
end

Full documentation

For in depth examples and advanced configuration options like error filtering or custom parameters, please visit our official GitHub repo.

Liste de cours en bas de chaque horaire

Salut! Suggestion: Afficher une liste des cours contenu dans chaque horaire possible serait pratique. ex: - ELExxx - INGxxx - INFxxx - MATxxx C'est du beau travail!

Horaire été 2019

Bonjour,

Les horaires sont disponibles depuis cet PM. Est-ce possible de les ajouter sur le site Web?

Merci beaucoup

MAT472 absent

MAT472 est absent des cours pour les étudiants en GPA.

Distribuer le logiciel sous la licence de logiciel libre

Sinon beau travail! Le site est clean et c'est pratique. Je te suggère de soumettre ton projet à la Maison du Logiciel Libre qui ouvre bientôt, où des étudiants de l'ETS vont apprendre à contribuer à des projets libres. http://maisonlogiciellibre.org/

Salut Krystian, comme le suggère @samdidos, la maison du logiciel libre est une très belle opportunité! Tu peux créer des missions pour ton projet auxquelles tout le monde peut participer pour bénéficier d'une visibilité tout en contribuant pour la communauté! 😄

ELE344 wrong date

The schedule for ELE344 group 2 is:
Labo: monday 18:30 to 21:00
Cours: tuesday 18:30 to 21:30

Yet it show that the course is wednesday.

Add tests

  • AgendaController#before_action :expires_now
  • ErrorsController
  • Maintenance middleware
  • AcademicDegreeTerm#enabled scope
  • show_navigation + assign_donation

Add browser tests for:

  • Leaves
  • Comments
  • Donations

Polytechnique use case

Webpage of courses offered for the bachelor degree: http://www.polymtl.ca/etudes/cours/horaire.php?cycle=BA

Key differences for the Polytechnique use case

  1. Course codes are usually 7 characters (important for the adapted width of course buttons on the agenda view)
  2. The website does not split the courses per concentration (as such, the homepage of Rubik has to be slightly modified)
  3. Course periods can occur every 2 weeks, either on week 1 OR 2 (see: http://www.polymtl.ca/registrariat/cours-et-programmes/horaire-des-cours-0); this means the combination logic has to be changed and the schedule view has now accept multiple courses in the same timeslot)

Road to success (not necessarily in that order)

  • Have a parser to extract course information on website

  • Have a new School model

  • Modify the combination logic / Course model logic

  • Modify the home page to be able to accept the term as the entry point (a the website does not split the courses per concentration)

    • Explore the benefit (even for ETS) to not split by concentration, thus having a single agenda be able to accept any and all courses from any concentration Remember that WHY you kept it this way in the first place is that you were unsure if there were going to be discrepancies between concentration PDFs; i.e. having CHM131 not match in the LOG pdf and the GOL pdf for example
      image
  • Modify the course codes in the agenda view to not have their width hardcoded around codes from ETS (be more adaptive of any and all course code lengths)
    image

  • Modify the schedule view to accept concurrent periods in the same timeslots (but marked differently depending on recurring period)

    • Probably tweak the schedule view for mobile use if it is to accept same timeslots
    • Probably have the list of course-groups at the bottom of the schedule
      image

Update ETS - session ÉTÉ 2018

Salut Krystian, penses tu mettre a jour prochainement les horaires pour le choix de cours pour la session d'été 2018.

Merci encore pour ton travail !

Unsubscribe from updates

Once you subscribe to notifications for future updates to the schedule, there is no way to revert.
It is possible to manage by marking e-mails as spam, but an "unsubscribe" link would be a nice feature

Session Hiver 2023

Bonjour, la planification des cours est déjà sortie pour l'hiver 2023. À quand pensez-vous les ajouter?

Merci beaucoup.

Schedule is not generated anymore + Changes in TI/LOG PDF files

When selecting courses and clicking on Soumettre, the website keeps processing but no schedule is generated.

In addition, ETS just made some changes in the LOG and TI programs yesterday night. PDF files have been updated and might need to be uploaded again into Rubik.

Erreur 500

Le site présente une erreur 500 depuis quelques jours.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.