A centralized ERP-style platform to track physical assets, schedule audits, manage maintenance ticket approvals, and handle overlapping bookings for shared resources like conference rooms and vehicles.
π Live Demo Β Β·Β β¨ Features Β Β·Β π Getting Started Β Β·Β ποΈ Architecture
- About the Project
- Features
- Tech Stack
- Getting Started
- Demo Credentials
- Role-Based Access Control
- Application Modules
- Architecture
- Deployment
- License
In fast-growing organizations, managing the lifecycle of physical assets and shared resources often disintegrates into a mess of fragmented spreadsheets, double-booked rooms, and unassigned equipment.
We built AssetFlow during the Odoo Hackathon 2026 to solve this exact bottleneck. It is a highly cohesive, client-side Enterprise Resource Planning (ERP) prototype designed to manage physical assets from procurement to decommissioning. The platform offers a unified dashboard that covers real-time inventory tracking, smart calendar conflict resolution for shared resources, structured maintenance workflows, and comprehensive audit cycles.
To deliver an instantly testable, zero-setup experience for judges and developers alike, the entire business logic and relational data engine is engineered in-browser, using state-backed persistence (localStorage) that keeps data intact between refreshes.
- Asset Registration - Register assets with unique auto-generated tags (
AF-XXXX), custom fields per category, acquisition cost, serial numbers, and condition tracking - Asset Lifecycle - Full status tracking:
AvailableβAllocatedβUnder MaintenanceβLost/Retired - Asset History - Immutable audit trail recording every registration, allocation, transfer, return, and maintenance event
- Department Management - Create and manage departments with hierarchical parent-child relationships and manager assignments
- Asset Categories - Configurable categories (Electronics, Vehicles, Shared Spaces, etc.) with custom fields per category
- Employee Management - Full CRUD for employees with role assignment, department mapping, and account activation/deactivation
- Check-out / Check-in - Allocate assets to employees with expected return dates and return condition tracking
- Transfer Workflow - Request, approve, or reject asset transfers between employees with manager/head approval gates
- Overdue Tracking - Automatic detection and notification for overdue asset returns
- Overlap Detection - Real-time validation prevents double-booking of shared resources (conference rooms, vehicles)
- Time-Slot Booking - Book shared/bookable assets for specific time windows with status lifecycle (
UpcomingβOngoingβCompleted/Cancelled)
- Ticket Lifecycle -
PendingβApprovedβTechnician AssignedβIn ProgressβResolved(orRejected) - Priority Levels - Low / Medium / High / Critical priority classification
- Manager Approval Gate - Maintenance requests require manager approval before progressing
- Technician Assignment - Assign named technicians to approved tickets
- Auto Status Sync - Resolving a ticket automatically sets the asset back to
Available
- Configurable Scoping - Define audit scope by department, location, or auditor
- Per-Asset Verification - Auditors verify each asset as
Verified,Damaged, orMissing - Discrepancy Tracking - Automatic flagging of missing/damaged assets with notes
- Lifecycle Integration - Closing an audit with
Missingassets automatically marks them asLost
- Dashboard KPIs - Real-time counts for available, allocated, and under-maintenance assets
- Booking Overview - Active and upcoming bookings at a glance
- Transfer Requests - Pending transfer requests with quick-action approve/reject
- Overdue Alerts - Highlight overdue allocations needing attention
- In-App Notifications - Real-time notifications per user for allocations, transfers, approvals, and maintenance updates
- Activity Audit Log - Chronological record of all system actions with user attribution
- Unread Badge - Sidebar notification badge with unread count
| Layer | Technology |
|---|---|
| Framework | React 19 (Hooks + Context API) |
| Build Tool | Vite 8 |
| Styling | Vanilla CSS (glassmorphism, custom gradients) |
| Fonts | Google Fonts - Inter, Outfit |
| Linting | OxLint |
| Deployment | GitHub Pages via gh-pages |
| State | React Context + localStorage persistence |
- Node.js (v18 or higher recommended)
- npm (comes bundled with Node.js)
# Clone the repository
git clone https://github.com/Scorzion/AssetFlow.git
cd AssetFlow
# Install dependencies
npm install
# Start the development server
npm run devThe app will be available at http://localhost:5173/AssetFlow/.
| Command | Description |
|---|---|
npm run dev |
Start Vite development server |
npm run build |
Build production bundle to dist/ |
npm run preview |
Preview the production build locally |
npm run lint |
Run OxLint for code quality checks |
npm run deploy |
Build and deploy to GitHub Pages |
The application comes pre-seeded with demo data and four user accounts:
| Role | Password | |
|---|---|---|
| Admin | admin@assetflow.com |
admin123 |
| Manager | manager@assetflow.com |
manager123 |
| Dept. Head | head@assetflow.com |
head123 |
| Employee | employee@assetflow.com |
employee123 |
Tip: You can also create new accounts via the Sign Up form. New accounts default to the
employeerole.
Each role has access to a specific set of modules:
| Module | Admin | Manager | Dept. Head | Employee |
|---|---|---|---|---|
| Dashboard | β | β | β | β |
| Organization Setup | β | - | - | - |
| Asset Directory | β | β | β | β |
| Asset Allocation | β | β | β | - |
| Resource Bookings | β | β | β | β |
| Maintenance | β | β | β | β |
| Audit Cycles | β | β | β | β |
| Reports & Analytics | β | β | β | - |
| Notifications | β | β | β | β |
Central hub showing KPI cards (available, allocated, under-maintenance assets, active bookings), overdue allocation alerts, pending transfer requests, personal asset allocations, and a quick-action to raise maintenance requests.
Manage departments (with hierarchy and manager assignment), asset categories (with custom fields), and employees (create, edit, promote, activate/deactivate accounts).
Searchable, filterable asset registry with inline detail views. View complete asset history, custom field data, and lifecycle status. Managers+ can register new assets.
Allocate available assets to employees, process returns with condition check-in, and manage transfer requests through an approval workflow.
Book shared resources (conference rooms, vehicles) with real-time overlap detection. View, cancel, or complete bookings across a time-slot system.
Raise, approve, assign, and resolve maintenance tickets. Full ticket lifecycle with priority management and technician assignment.
Create audit cycles scoped by department or location, assign auditors, verify individual assets, track discrepancies, and close cycles with automatic lifecycle updates.
Visual summaries and data tables for asset utilization, booking patterns, maintenance history, and audit outcomes.
Centralized notification center with per-user filtering, read/unread status, and mark-all-as-read functionality.
AssetFlow/
βββ public/
β βββ favicon.svg # App favicon (3D isometric logo)
β βββ icons.svg # SVG icon sprite
βββ src/
β βββ context/
β β βββ AppContext.jsx # Global state - all business logic, CRUD, and localStorage sync
β βββ views/
β β βββ LoginSignup.jsx # Authentication (login + registration)
β β βββ Dashboard.jsx # KPI dashboard with quick actions
β β βββ OrgSetup.jsx # Department, category & employee management
β β βββ AssetDirectory.jsx # Asset registry with search & filters
β β βββ AssetAllocation.jsx # Allocation, return & transfer workflows
β β βββ ResourceBooking.jsx # Shared resource booking with overlap detection
β β βββ Maintenance.jsx # Maintenance ticket lifecycle
β β βββ AssetAudit.jsx # Audit cycle management
β β βββ ReportsAnalytics.jsx # Reports & data analytics
β β βββ ActivityNotifications.jsx # Notification center
β βββ App.jsx # App shell - sidebar navigation, routing, toast system
β βββ App.css # Component-specific styles
β βββ index.css # Global design system (tokens, animations, glassmorphism)
β βββ main.jsx # React entry point
βββ index.html # HTML entry point with SEO meta tags
βββ vite.config.js # Vite configuration with base path
βββ package.json # Dependencies and scripts
βββ .gitignore
- Centralized State - Single
AppContextprovider manages all application state withuseState+useEffectfor localStorage persistence - Role-Based Rendering - Navigation items and view actions are conditionally rendered based on
currentUser.role - Immutable History - Asset history entries are prepended (newest-first) and never modified
- Notification System - Cross-cutting concern: actions in any module can generate user-targeted notifications
- Toast System - Ephemeral feedback toasts with type-based styling (success, error, warning, info)
The app is deployed to GitHub Pages at:
π https://scorzion.github.io/AssetFlow/
To deploy your own instance:
# Build and deploy to gh-pages branch
npm run deployThis runs vite build followed by gh-pages -d dist, pushing the dist/ folder to the gh-pages branch.
We are a team of students from the Indian Institute of Science Education and Research, Bhopal (IISERB). Collaborating under the fast-paced environment of the hackathon, we combined our individual strengths to build a clean, production-ready frontend architecture:
- Aryan Sanjot (
Core Frontend Architect)- Architected the central React state engine and global data relationships (
AppContext), built the modular routing logic, and designed theLoginSignupuser onboarding views.
- Architected the central React state engine and global data relationships (
- Antriksh Gangwar (
UI/UX Designer & Data Architect)- Engineered the executive Dashboard's KPI metrics, implemented custom responsive layout variables, crafted analytical reporting views, and designed the cross-cutting notifications pipeline.
- Mohit Kumawat (
Asset Lifecycle & Operations Engineer)- Designed the core Asset Directory, custom category field mappings, full inventory registration, and implemented the granular asset state transition models.
- Sourav Sharma (Scorzion) (
Lead Integrator & DevOps Engineer)- Integrated cross-component workflows (checkout/check-in, resource booking with overlap validation, asset transfers), created custom visual brand assets, and managed CI/CD deployment pipelines.
This project was developed as a hackathon submission for the Odoo Hackathon 2026.