This is a RESTful API built with Spring Boot and PostgreSQL for managing students, classes, submissions, requests, and more in a student management system.
Teachers can create classes and add tasks with resources, and students will be able to submit their solutions to the tasks after requesting to join the class and being approved, and later teachers can grade the submissions and add announcements.
• You can see a sample client mobile app on this API from here : Mobile App
To start using the API, you should clone the repository :
https://github.com/muhammadzkralla/spring_boot_students_api.git
• Email service is disabled for testing environment and the verification OTP is always 111111
. If you want to enable it, go to MailSenderServiceImpl
class and remove the if condition,
and inside AuthenticationServiceImpl
class, modify the generateRandomOtp
function.
• Rename the env
file in the resources package to application.yml
and update it with your database credentials and environment information.
• Refer to this Article
to know how to integrate your own Firebase Cloud Storage to the project.
Once you have downloaded the JSON file:
1- add it under the resources package.
2- Replace the CREDENTIALS_FILE_PATH
variable in the StorageServiceImpl
class with the path of your JSON file.
That's it, now you are good to go! Run the project in Intellij.
Please Note That:
• Any user should be authenticated and send their JWT access token to receive a response.
• Any user should verify their email to be able to make a request.
• The JWT access token must be valid and not expired, if it is expired, you should request to refresh token or login again.
• All Admin Endpoints must be called ONLY by Admin users. If a Student or a Teacher tries to make an admin request, they will receive a 403 Forbidden Response.
• All Teacher Endpoints must be called ONLY by Teacher users. If a Student or an Admin tries to make a Teacher request, they will receive a 403 Forbidden Response.
• All Student Endpoints must be called ONLY by Student users. If a Teacher or an Admin tries to make a Student request, they will receive a 403 Forbidden Response.
All The below responses are returned in a default ApiResponse format that looks like this :
{
"success": ,
"message": ,
"data":
}
• Refer to this Postman Collection
• Refer to this Postman Collection
• Refer to this Postman Collection
• Refer to this Postman Collection
• Refer to this Postman Collection
• Refer to this Postman Collection