Giter VIP home page Giter VIP logo

criador-horarios's Introduction

All Contributors GitHub last commit LICENSE

Criador de Horários

Demo animation


To Run

On Development

With Docker

If you have docker installed, you only need to run docker compose up (you might want to add -d to have it run detached)

Locally

  • Requirements:
    • Node >= 14

This project uses React with Typescript.
Install the dependencies by running yarn i and then run yarn start to start the app in development mode.
Open http://localhost:3000 to view it in the browser.

Changelog

Changelog file

TODOs

List of TODOs

Bugs

  • When exporting to image, lessons overlapping bugs
  • Courses from another degree are not removed from courses list when a different degree is selected
  • When a shift is selected, if the course is unselected and selected again, it may have a different color
  • There were no 'Teórico-Práticas' type of shifts
  • When removing a course (while a shift is selected) and adding again, the chip in the timetable does not recognize the shifts selected
  • When a course is broken, the chip still shows and can't be removed

Suggestions

  • Allow export image of the chosen schedule
  • Allow selection of multiple degrees to have all the courses in the selection list
  • Add loading progress when making request
  • Add checklist with chosen shifts from each course to keep track
  • Add titles to schedules (thanks to @Hugo-Marques-work)
  • Distinguish courses with I, II, etc. (i.e. CDI-I and CDI-II) (FenixEdu sets the same acronym)
  • Find minimum classes for enrolments
  • Give option of what to add (room, campus, etc.) in excel
  • Add occupation on shift hover
  • If the occupations is negative, it means that Fénix is awaiting for first year students
  • Add buttons below the left schedule to show/hide courses

Contributors ✨

Thanks goes to these wonderful people (emoji key):

João David
João David

💻
Daniel Gonçalves
Daniel Gonçalves

💻
Afonso Gonçalves
Afonso Gonçalves

💻
André Breda
André Breda

💻
Diogo Correia
Diogo Correia

💻
Diogo Dinis
Diogo Dinis

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

criador-horarios's People

Contributors

abread avatar allcontributors[bot] avatar carlosfelgueiras avatar dependabot[bot] avatar diogotcorreia avatar dmbdpt avatar joaocmd avatar masterzeus05 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

Watchers

 avatar  avatar  avatar

criador-horarios's Issues

Remove legacy code

The legacy folder can probably be deleted, it isn't doing anything and it's stored in Git history anyway.

Refactor `Lesson` object

I've converted the Lesson class to an object on #68, but it might make sense to use a class again, given that we have a method to return the object to pass on to FullCalendar.

The way it is now, the Lesson is storing redundant information that belongs to Shift and Course.

Add better ESLint config

The current ESLint config is very lax, it doesn't restrict a lot of the formatting, leaving us with inconsistent formatting across the project (e.g. trailing spaces in lines, spaces between if and (, trailing comma on lists, new line on EOF, and much more).

We could probably add a better ESLint config to ensure consistent formatting.

Add "random color" button to color picker

Sometimes we just want to generate a new color instead of manually choosing a color.
Monkey brain doesn't want to think too much, just spam the button until we like the color.

Choosing different shifts

One useful feature would be the possibility of choosing to be in both Alameda and Tagus shifts for the theoretical classes of the same course. For example, if a given course has 2 theoretical classes with 2 pairs of shifts, 1 pair in Alameda and the other pair in Tagus, it would be nice to choose one shift from one pair (Alameda) and choose the other shift from the other pair (Tagus).

Course has all shifts incorrectly shown as being lectured all in the same campus

Description of the issue:

Picked course shows all lectures and labs as being lectured on one of the campus, despite some of them being lectured on the other campus.

Additional details:

  • Initially I found only one course,ADSI/AOBD,exhibiting this specific behavior so I didn't know for sure if the problem extended to others, but there is at least another one where the same behavior is shown,SEC/HDS/SDTF.
  • All the testing was done on Firefox (version 122.0.1) on private and normal tabs with both showing the same behavior

Reproduction steps:

  1. Pick a degree that has one of the affected courses, for ADSI/AOBD lets pick MEIC-T as an example
  2. Pick the course ADSI/AOBD
  3. All possible lectures and labs are displayed and we can see that every shift shown is supposedly being lectured at campus Alameda which is incorrect as some of them are lectured on the campus Tagus Park

Remove new domain dialog

The "new domain" dialog should be useless now that the old domain has expired.
Consider removing it to clean App.tsx a bit. I haven't moved it to a separate component on #68 because of this.

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.