A comprehensive maintenance management system for tracking assets, managing maintenance requests, and coordinating repair teams.
GearGuard/
βββ Backend/ # Express.js API
β βββ src/
β β βββ models/ # MongoDB schemas
β β βββ controllers/ # Business logic
β β βββ routes/ # API endpoints
β β βββ middleware/ # Auth & error handling
β β βββ utils/ # Database & helpers
β βββ package.json
βββ Frontend/ # React + Vite
β βββ src/
β β βββ pages/ # Main pages
β β βββ components/ # Reusable components
β β βββ services/ # API calls
β β βββ context/ # State management
β β βββ styles/ # CSS files
β β βββ layouts/ # Layout components
β βββ package.json
βββ README.md
- Manage company assets (machines, computers, printers, etc.)
- Track ownership and physical location
- Record purchase date and warranty information
- Assign equipment to maintenance teams and technicians
- Filter by department, category, or employee
- View maintenance history for each asset
- Define specialized teams (Mechanics, Electricians, IT Support)
- Manage team members and technicians
- Assign teams to equipment
- Track team workload and assignments
- Corrective: Unplanned repairs (breakdowns)
- Preventive: Planned maintenance (routine checkups)
- Track request lifecycle (New β In Progress β Repaired β Scrap)
- Set priority levels (Low, Medium, High, Critical)
- Record hours spent and completion status
- Automatic overdue detection
- Overview of total, open, completed, and overdue requests
- Recent request list
- Team information
- Key statistics and metrics
- Visual workflow management
- Drag-and-drop request movement between stages
- Stage grouping: New, In Progress, Repaired, Scrap
- Visual overdue indicators
- Priority color coding
- Monthly calendar display
- Preventive maintenance scheduling
- Click to create new request
- Visual request indicators on dates
- Searchable equipment database
- Filter by department, category, location
- View detailed equipment information
- Create maintenance requests from equipment page
- Smart maintenance button with open request count
- Auto-Fill Logic: Equipment category and team auto-populate
- Scrap Logic: When moved to Scrap, equipment marked as unusable
- Overdue Detection: Automatic identification of late requests
- Status Color Coding: Visual priority indicators
- Team Workflow: Automatic assignment and status updates
- Node.js + Express.js - REST API
- MongoDB - NoSQL Database
- Mongoose - ODM
- bcryptjs - Password hashing
- jwt-simple - Authentication tokens
- CORS - Cross-Origin Resource Sharing
- React 19 - UI library
- Vite - Build tool
- React Router 6 - Navigation
- Context API - State management
- CSS3 - Styling
- Node.js (v14 or higher)
- MongoDB (local or Atlas)
- npm or yarn
cd Backend
npm installCreate .env file:
MONGODB_URI=mongodb://localhost:27017/gearguard
PORT=5000
NODE_ENV=development
JWT_SECRET=your_jwt_secret_key_here_change_in_production
Start development server:
npm run devServer will run on http://localhost:5000
cd Frontend
npm install
npm run devFrontend will run on http://localhost:5173
GET /api/equipment- List all equipmentPOST /api/equipment- Create new equipmentGET /api/equipment/:id- Get equipment detailsPUT /api/equipment/:id- Update equipmentDELETE /api/equipment/:id- Delete equipmentGET /api/equipment/:id/requests- Get equipment's requests
GET /api/maintenance-requests- List requests (with filters)POST /api/maintenance-requests- Create requestGET /api/maintenance-requests/:id- Get request detailsPUT /api/maintenance-requests/:id- Update requestPATCH /api/maintenance-requests/:id/assign- Assign to technicianPATCH /api/maintenance-requests/:id/complete- Mark completePATCH /api/maintenance-requests/:id/scrap- Mark as scrapDELETE /api/maintenance-requests/:id- Delete request
GET /api/teams- List all teamsPOST /api/teams- Create teamGET /api/teams/:id- Get team detailsPUT /api/teams/:id- Update teamPATCH /api/teams/:id/add-member- Add memberPATCH /api/teams/:id/remove-member- Remove memberDELETE /api/teams/:id- Delete team
POST /api/users/register- Register new userPOST /api/users/login- Login userGET /api/users- List usersGET /api/users/:id- Get user detailsPUT /api/users/:id- Update userDELETE /api/users/:id- Delete user
- JWT-based authentication
- User roles: Technician, Manager, Admin
- Token stored in localStorage
- Protected routes and API endpoints
{
name,
serialNumber,
category,
department,
assignedEmployee,
purchaseDate,
warrantyExpiration,
location,
status,
maintenanceTeam,
assignedTechnician;
}{
subject,
type,
equipment,
category,
status,
scheduledDate,
dueDate,
assignedTeam,
assignedTechnician,
duration,
hoursSpent,
priority,
description,
notes,
isOverdue,
createdBy;
}{
name, description, members;
}{
username,
email,
password,
fullName,
role,
team,
department,
profileImage,
isActive;
}- Modern gradient design with primary colors (#667eea, #764ba2)
- Responsive grid layouts
- Smooth transitions and hover effects
- Status color coding for quick identification
- Mobile-friendly design
- Accessibility-focused components
- Equipment breaks down
- Technician creates request with "Corrective" type
- Auto-filled with equipment details
- Manager/Technician assigns to team
- Technician updates status to "In Progress"
- Work is completed, status β "Repaired"
- Hours spent recorded
- Manager creates request with "Preventive" type
- Sets scheduled date (appears on calendar)
- System notifies assigned team
- Team performs maintenance
- Completion recorded with notes
- Automatic scheduling logic triggers next check
- Request count by status
- Request count by type
- Overdue request tracking
- Team workload analysis
- Equipment maintenance history
- Completion rate metrics
- Real-time notifications
- Mobile app
- Advanced reporting and dashboards
- Part inventory management
- Cost tracking
- File attachments for requests
- Email notifications
- Custom workflow rules
- Multi-language support
MIT License - Feel free to use this project
Contributions are welcome! Please follow the project structure and coding standards.
For issues or questions, please create an issue in the repository.
GearGuard - Making Maintenance Simple and Efficient! βοΈ