This project is a microservices-based Hostel Management System developed using Spring Boot. It manages hostel room allocations, complaints, outpass applications, and various user roles such as Admin, Chief Warden, Warden, Caretaker, and Student. The system leverages Keycloak for authentication, Eureka for service discovery, and Docker for containerization.
-
User Authentication & Role Management:
- Admin, Chief Warden, Warden, Caretaker, and Student roles.
- Keycloak-based authentication and role-based authorization.
-
Room Management:
- Manage room availability and allocation.
- Room features such as sunlight, balcony, and vacancy status.
-
Complaint Management:
- Students can file complaints regarding hostel issues.
- Caretakers can view, manage, and resolve complaints.
-
Outpass Management:
- Students can apply for outpasses.
- Wardens can approve or deny outpass requests.
-
Automated Room Allocation:
- Room allocation algorithm based on CGPA, medical needs, and club roles.
- Initiated by the Chief Warden at the end of the academic year.
-
Notification System (Optional):
- Notifications for room allocations, outpass approvals, and complaints.
- Can integrate email and in-app notifications.
The project is divided into several microservices:
- Handles user login and authentication for all user roles.
- Manages user credentials and JWT-based authentication.
- Manages student profiles and personal details.
- Students can view room availability, apply for rooms, and file complaints.
- Handles room allocations for students.
- Manages outpass requests from students.
- Sends notifications to students for room and outpass-related actions.
- Manages hostel room inventory, including room features and status.
- Tracks room availability and assignment.
- Handles complaints submitted by students.
- Caretakers can manage and resolve complaints.
- Sends email and in-app notifications for events such as room allocations, outpass approvals, and complaint resolutions.
- Spring Boot
- Spring Cloud (Eureka, Config Server)
- Keycloak for Authentication and Authorization
- Docker for Containerization
- MySQL for Database Management
- Kafka or RabbitMQ (Optional for asynchronous communication)
- Lombok (for reducing boilerplate code)
- Feign Clients (for inter-service communication)
- Java 11+
- Python 3.10+
- Maven
- Docker
- PostgreSQL
- Keycloak
git clone https://github.com/Rishavgg/ashrey-hostel.git
cd ashrey-hostel
cd ashrey-hostel/frontend/ashrey-front
npm install
npm install -g vite
npm install vite --save-dev
npm dev run