The goal of this project is to assess development skills suitable for a full-stack developer position. It tests knowledge and proficiency with software design, unit testing and web technologies like HTTP and REST.
- Project Goal: Create a small web-app for university course enrollment.
- Technology: Pick any language, web framework, and testing framework you like
- Deliverables:
- Docker compose file contains 3 images: 1. backend 2. frontend 3. database
- ER diagram
Description:
The University Course Management System is designed to manage users within the university environment. Users are categorized into two roles:
-
Students: can enroll in courses.
-
Teachers: can assign grades to students in their courses.
Frontend
- Login
- Course Enrollment (Student Only)
- Display a List of All Courses
- Grade Students (Teachers Only)
- Create New Courses (Teachers Only)
Backend
- Login
- Course Management (CRUD)
- User Management (CRUD)
- Student Course Enrollment
- Teacher Grade Management
- Design your API in a RESTful way and respond with JSON.
- Write the code and design your system to be as realistic and production-ready as possible. Follow best practices and focus on quality.
Optional
- Unit Testing
- Swagger API Documentation
Push all code to your public GitHub repository and pack all your code in a docker-compose file. The docker-compose file should contain the backend image, front image and db image. Describe your solution in a README and how to run it.
Guidelines
Utilize seed data for users (STUDENT, TEACHER) for login or registration via backend API.
Please commit often and with good commit messages. This will allow us to see how you've approached the problem. Don't worry about changing things around often.
Don’t hesitate to ask any questions if you’re uncertain about the task or if anything else is unclear.
For API documents we suggest you use a library tool like Swagger.