Skip to content

Students Management System REST API With Java Spring Boot, Spring security, JPA, PostgreSQL, and Firebase Cloud Storage.

Notifications You must be signed in to change notification settings

muhammadzkralla/spring_boot_students_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 

Repository files navigation

School Management System API

Introduction

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

System Design Overview

drawSQL-image-export-2024-05-10

Installation

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.

Api Response

All The below responses are returned in a default ApiResponse format that looks like this :

{
    "success": ,
    "message": ,
    "data": 
}

Authentication Endpoints


• Refer to this Postman Collection

Admin Endpoints


• Refer to this Postman Collection

Teacher Endpoints


• Refer to this Postman Collection

Student Endpoints


• Refer to this Postman Collection

User Endpoints


• Refer to this Postman Collection

Class Endpoints


• Refer to this Postman Collection

About

Students Management System REST API With Java Spring Boot, Spring security, JPA, PostgreSQL, and Firebase Cloud Storage.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages