niaefeup / feup-exchange-backend Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
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).
The endpoint should allow the fetching of the date and time in which the allocation algorithm is scheduled to execute. This information should probably be kept in the database.
Update README with more information about the project.
See what is already done in the TTS backend repository.
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.
FYI talk to department
Fix all end of line encoding and standardize file formatting, so that every OS can run the project.
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.
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.
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.
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.
Python
Django
PostgreSQL
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.
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).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.