A robust, enterprise-ready full-stack application designed for managing organizational resources across Classrooms and Faculty offices. Built with a focus on ease of use, maintainability, and real-time synchronization.
The Resource Management System provides a centralized dashboard to monitor, track, and manage physical resources (printers, projectors, computers, etc.). It bridges the gap between hardware tracking and administrative allocation.
- 🎯 Resource Tracking: Real-time status Monitoring (
WORKING,NON_WORKING). - 📍 Smart Allocation: Detailed allocation logic for
FACULTYandCLASSROOMtypes. - 🔍 Advanced Filtering: Multi-parameter search by resource type, status, and name.
- 📊 Maintenance Logging: Track maintenance cycles and purchase history.
- 🛡️ Production Ready: CORS enabled, H2 persistent storage, and auto-seeding.
graph TD
User((User))
SubGraph1[Frontend - React Dashboard]
SubGraph2[Backend - Spring Boot REST API]
DB[(H2 Database)]
User <--> SubGraph1
SubGraph1 <-->|REST API / JSON| SubGraph2
SubGraph2 <-->|Spring Data JPA| DB
Lap/
├── README.md # Main Documentation
├── ResourceManagmentBackend/ # Java Spring Boot Service
│ └── src/
│ ├── main/java/com/aayush/... # Business Logic & REST Controllers
│ └── main/resources/ # Configuration & DB Settings
└── Resource Management Dashboard/ # React Frontend
└── src/
├── components/ # UI Components (Radix UI)
└── data/ # Mock data & interfaces
| Component | Technology | Role |
|---|---|---|
| Frontend | React, Vite | Reactive UI & Dev Workflow |
| Styling | Tailwind CSS | Modern Responsive Design |
| State | React Hooks | Component-level State |
| API | Spring Web | RESTful Endpoint Exposure |
| Persistence | Spring Data JPA | Object-Relational Mapping |
| Database | H2 (File-based) | High-speed Local Development |
- Node.js (v18+)
- JDK 17 or higher
- Maven (optional, wrapper included)
cd ResourceManagmentBackend
./mvnw.cmd spring-boot:runNote
On first run, the system will automatically seed the database with sample data defined in DataLoader.java.
cd "Resource Management Dashboard"
npm install
npm run devThe application will launch at http://localhost:5173.
All API calls should be prefixed with /api/resources.
| Method | Endpoint | Description |
|---|---|---|
GET |
/ |
Retrieve all resources (supports type/status/search filters) |
GET |
/{id} |
Fetch specific resource details |
POST |
/ |
Register a new organizational resource |
PUT |
/{id} |
Update existing resource metadata |
DELETE |
/{id} |
Remove a resource from the system |
{
"name": "EPSON L3250",
"type": "PRINTER",
"allocationType": "FACULTY",
"status": "WORKING",
"allocatedTo": "CS Department",
"purchaseDate": "2024-02-23"
}- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Designed with ❤️ for efficiency.