Please create the back end of an education management system.
- User can perform CRUD operations on the following resources:
- student
- student group (class)
- teacher
- subject
- course
- exam
- User (student) can see all the subjects on the course they are enrolled on, along with who teaches them.
- User (student) can see their exams (upcoming, failed, passed).
- User (teacher) can see all the students they teach.
- User (teacher) can add exams and assign subjects to them. The status of an exam can be changed.
- User (administrator) can add courses and assign subjects to them.
- User (administrator) can add students, student groups, teachers, subjects, and make the connections between them.
- Optional: any additional operations and/or data that make the application fit to manage education in a school.
- Optional: User can see a graphical endpoint documentation on the root endpoint.
- Endpoints use the conventional HTTP methods (create - POST, read - GET, update - PUT, delete - DELETE)
- Data are stored in a database.
- This is a web application that accepts and serves data in
json
format. - Please use error handlers to ensure only proper data get saved into the database.
- Your repository should have a
.gitignore
and arequirements.txt
file. - Database data must be protected.
- Please change the contents of the
README
file and add instructions on how to set up and run your application. - Don't forget to commit and push your changes regularly.