Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

AssetFlow — Enterprise Asset & Resource Management System

AssetFlow is a centralized ERP platform to digitize how organizations track, allocate, and manage their physical assets and shared resources — built for a hackathon in an 8-hour build window.

Live Demo: (https://ai-assetflow-manager.vercel.app) Backend API: https://ai-assetflow-manager.onrender.com


🔑 Demo Credentials

Admin

Email: admin@assetflow.com
Password: admin123

Employee — sign up any new account via the Signup page (auto-assigned Employee role).


🛠️ Tech Stack

  • Frontend: React, TypeScript, Vite, Tailwind CSS, Lucide Icons
  • Backend: Node.js, Express
  • Database: MongoDB (Mongoose)
  • Auth: JWT-based authentication with role-based access control
  • Deployment: Vercel (frontend), Render (backend), MongoDB Atlas (database)

✅ Features Implemented

Authentication & Roles

  • Signup creates an Employee account only — no self-elevation
  • JWT-based login with role-based route protection
  • Roles: Employee, Department Head, Asset Manager, Admin

Asset Registry

  • Register assets with auto-generated Asset Tag (AF-0001, AF-0002, ...)
  • Search and filter by name, tag, serial number, category, status, location
  • Lifecycle status tracking: Available, Allocated, Reserved, Under Maintenance, Lost, Retired, Disposed

Asset Allocation — with Conflict Handling

  • Asset Manager/Admin allocates assets to employees
  • Conflict detection: attempting to allocate an already-held asset is blocked, showing who currently holds it
  • Return flow resets asset status back to Available

Resource Booking — with Overlap Validation

  • Time-slot based booking for shared/bookable resources
  • Overlap detection: conflicting time-slot requests are automatically rejected
  • Booking cancellation supported

Maintenance Management — with Approval Workflow

  • Any user can raise a maintenance request for an asset (describing the issue and setting priority)
  • Asset Manager/Admin can Approve or Reject requests
  • On approval, asset status auto-updates to Under Maintenance
  • Asset Manager/Admin marks requests as Resolved, which reverts the asset back to Available

Dashboard

  • Real-time KPI cards: Assets Available, Assets Allocated, Under Maintenance, Active Allocations
  • Overdue returns and upcoming returns surfaced separately

🚧 Not Implemented (Roadmap / Known Scope Cuts)

Given the 8-hour build constraint, the following were consciously deprioritized:

  • Employee promotion UI (Admin → Department Head / Asset Manager) — role field exists in schema, promotion endpoint not yet built
  • Audit cycles and discrepancy reports
  • Reports & Analytics (utilization trends, heatmaps)
  • Real-time notifications (Socket.io) — currently polling-based via page refresh
  • Organization Setup UI (Departments/Categories are seeded directly via script rather than an admin UI)
  • Employee-initiated transfer/return requests (currently Asset Manager marks returns directly)
  • Restricting maintenance requests to only assets currently held by the requester (currently any logged-in user can raise a request for any asset)

These are the natural next steps for a v2 iteration.


📂 Project Structure

backend/
├── config/db.js
├── models/          # User, Department, AssetCategory, Asset, Allocation, Booking, Maintenance
├── routes/          # auth, asset, allocation, booking, category, user, dashboard, maintenance
├── middleware/       # JWT auth + role-based guards
├── seed/seed.js      # Seeds Admin user, departments, categories
└── server.js

client/
├── src/
│   ├── api/axios.ts
│   ├── context/AuthContext.tsx
│   ├── components/   # Navbar, ProtectedRoute
│   ├── pages/         # Login, Signup, Dashboard, Assets, Allocations, Bookings, Maintenance
│   └── types/

🔐 Role-Based Access Summary

Action Employee Department Head Asset Manager Admin
Signup / Login
View assets
Register asset
Allocate asset
Book shared resource
Raise maintenance request
Approve/Reject/Resolve maintenance
View Employee Directory

🏃 Running Locally

Backend

cd backend
npm install
npm run dev       # requires MONGO_URI and JWT_SECRET in .env
npm run seed       # seeds Admin user, departments, categories (run once)

Frontend

cd client
npm install
npm run dev

👤 Author

Navneet Patel GitHub: @patelscripts

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages