Code Monkey home page Code Monkey logo

feup-exchange-backend's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

feup-exchange-backend's Issues

[Endpoint] Fetch all new allocations for students

This endpoint should only be available for admin users (and thus, it should be protected by token authentication).
The endpoint should be called after the allocation algorithm has been executed. It should allow admins to fetch the new schedule allocations for all students, so they can review them in the platform and perform a sanity check, confirming if the generated schedules are valid.
We can also think about allow an admin to fetch for the schedule of a specific student (to be decided).

Update README

Update README with more information about the project.

[Endpoint] Implement ability for students to indicate occupied time slots in their schedule

Initially, we will only have access to each student's L.EIC/M.EIC subjects automatically, through the SIGARRA API. However, students may have subjects from other universities, or other activities that will not allow them to be available at certain times. Ideally, in the future, the platform will be able to fetch subjects and schedules from all UP faculties, but for now, we need a way to let the student indicate a block of time in which they will not be available. The new schedule originated for this student must not occupy these time slots.

We should have an endpoint that allows the student to indicate the beginning and end date of an occupied time block.

Task to send email only to platform admins

This issue is very similar to sending the email to the students, however, it is directed to the platform admins only. This can be used to inform platform admins that the algorithm has finished running, so that the admins can verify if the solution is valid (as a sanity check), before letting the students know their new schedules.

[Endpoint] Allow the fetching of the initial schedule of a certain student

In order to run our allocation algorithm, we will need information about their current/initial schedule. This information should be obtained through the SIGARRA API. We need to implement a function that allows us to fetch this information for a particular student. We need to see if we can do that, and what type of authentication do we need.

[Endpoint] Allow the scheduling of the algorithm execution

We need a way to schedule the execution of the student allocation algorithm for a certain time. The endpoint should receive a request indicating the desired datetime for the execution, and schedule its execution for that time (after verifying that the datetime is valid). If necessary, we can save this datetime in the DB so that it can be shown to admins and students, and also edited/deleted in the future.

When it is time to run the algorithm, it should create a separate thread that will proceed to do its execution, and after finishing it should save the result in the database.

As it was mentioned, the endpoint should also allow to delete the scheduling or to edit the datetime previously chosen.

[Endpoint] Implement authentication of platform admins

Besides having accounts for the students that are using the platform, we need admin accounts that have special previleges and can preform special operations, like scheduling the running of the algorithm or downloading the document of the allocation of students.

These admin accounts need to be registered in our database. We should use DjangoDRF and token authentication to authenticate the admin. In case of success, we will receive a token that we can later use for any requests that are admin-only.

Generate documentation using Swagger + Redoc

Install and use the Python library drf-yasg to generate documentation for the project. Redoc will serve a web page with documentation for endpoints, and Swagger will serve a web page that allows the user to access the API endpoints through the browser.

[Endpoint] Fetch all registered students and their preferences

This endpoint should only be available for admin users (and thus, it should be protected by token authentication).
The endpoint should allow admins to fetch all students that have registered in the system and used the platform, as well as their allocation preferences: their targets, give-ins, and desired buddies. (ex: student 123 wants to change from class 2 to 3 in the subject XPTO, etc).

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.