Checkout schema design inside draw.io
Imagine you're writing a program for a school. Within the school, there are 4 different user roles:
- Admin
- Counselor
- Teacher
- Student
Design a student app, where each student has a specific grade. There must be CRUD (Create, Read, Update, Delete) functionalities for the student object:
- Admins can perform CRUD operations at the school level.Admins can also expel students.
- Counselors can only read but have access to the students' information across the entire school.
- Teachers can perform CRUD operations only in their class. They can't expel (delete) a student from another class they don't teach.
- Students can only view their own grade. They're not allowed to update, leave, create another student, or view others' grades.
- The programming language must be Python.
- Use JWT and FastAPI or Flask for this task.
- To simplify and save time, you can skip creating an SQL table and store the data within the application. The table structure and data class must be respected, though.
- Writing tests is appreciated.
- Adhering to OOP principles and clean code standards will be valued.
- Don't spend more than 4 hours on this task. If it takes longer, no worries, but better to keep it within 4 hours. Whenever you're free, put some time into it.
There's no deadline. I'm not hiring anyway! 😄