An enterprise-grade platform featuring real-time communication, bulk data processing, and cloud-integrated notifications.
Library Repository is a comprehensive full-stack solution designed for modern educational environments. It manages the complete lifecycle of library resources—from acquisition via bulk CSV uploads to real-time borrowing tracking and user-to-admin communication. The architecture is designed to be event-driven, ensuring users receive instant feedback through WebSockets and push notifications.
The backend follows a Modular Monolith structure with a focus on high availability and secure data access.
- Bi-directional Communication: Leverages WebSockets for real-time messaging and status updates, moving beyond traditional polling.
- Advanced Security: Multi-layered authentication including JWT for stateless sessions and OAuth2 (Google Sign-In) for seamless user onboarding.
- Bulk Processing Engine: Custom-built CSV parsing logic (
csvHelper) to facilitate rapid data ingestion for books and user records. - Persistence Layer: MySQL integration with Hibernate, utilizing optimized JPA repositories for complex borrowing logic (handling fines, availability, and category hierarchies).
A high-performance SPA (Single Page Application) built with a focus on responsiveness and state synchronization.
- Real-time UI: Integrated RxJS Observables to manage live message streams and notification states.
- Cloud Notifications: Fully integrated with OneSignal and Firebase for cross-platform push notifications, even when the browser is inactive.
- Modular Design: Clear separation between Admin dashboards and User interfaces to ensure a streamlined UX for different roles.
| Layer | Technology | Key Usage |
|---|---|---|
| Backend | Java 17 / Spring Boot 3 | Core business logic and API orchestration. |
| Real-time | WebSockets (STOMP/SockJS) | Live chat and instant borrowing updates. |
| Frontend | Angular | Component-based UI with TypeScript. |
| Security | JWT & OAuth2 | Secure login and Google integration. |
| Notifications | OneSignal / Firebase | Push notification delivery infrastructure. |
| Database | MySQL | Relational data management and indexing. |
| Data Ingestion | OpenCSV / Apache Commons | Bulk upload and processing of library records. |
| Testing | JUnit & Mockito | Backend reliability and regression testing. |
- Bulk Ingestion: Upload thousands of book records via CSV in seconds.
- User Vetting: Admin approval flows for new registrations.
- Borrowing Control: Real-time dashboard to track active borrows and overdue items.
- Direct Support: Real-time chat system to assist library members directly.
- Smart Discovery: Search books by category, availability, or title.
- Personalized Dashboard: View active borrows, fine history, and receive push notifications for due dates.
- Google Auth: One-click registration/login using existing Google accounts.
- Stateless Architecture: JWT-based security allows the system to scale horizontally.
- Clean Code & SOLID: Strict adherence to interface-based programming in the service layer (
UserService,BooksService, etc.). - Global Error Handling: Centralized
@ControllerAdviceensures that even unexpected runtime exceptions are returned as clean, actionable JSON responses. - Schema Safety: Transactional management of complex multi-step processes (like borrowing a book and updating stock simultaneously).
- JDK 17+ & Maven
- Node.js 18+ & Angular CLI
- MySQL 8.x
- Backend:
- Navigate to
/BackEnd/Library. - Update
application.propertieswith your DB credentials and Google OAuth keys. - Run:
./mvnw spring-boot:run
- Navigate to
- Frontend:
- Navigate to
/FrontEnd/Library. - Run:
npm install - Run:
ng serve
- Navigate to
- CSV Template: Use the sample CSV provided in
/assetsfor bulk uploads.
- AI Recommendation: Suggesting books based on borrowing history.
- Barcode Integration: Mobile camera scanning for quick book check-outs.
- Dockerization: Containerizing the stack for easy cloud deployment.
This project is licensed under the MIT License.