AssetMS - Well heres the update on my little program.
I have been 'Promptgramming' hard over the past few days /week to bring my Asset Management system to life.
The drive behind this is my current clients shockingly bad IT Asset Management system.
The clients Asset Management System is called onespace, and is a Microsoft PowerApps program. The Head of Operations has been writting this program for several years and changes its functionality on a daily, sometimes multiple times per day, basis.
There is no dev system. All updates go straight to production.
Testing? Us users do that and provide feedback via teams channel stating something has stopped working.
Version control? Well i see version numbers change but im not sure how powerapps handles it. TFS, is that still a product?
So i wrote my own as an experiment in the 'Art of the possible'
My IDE runs on my Windows 11 PC, but because I am a geek/true professional I also use my Mac for development. I must note that I seem to get higher quality, better looking prompt feedback on the Mac compared to what I recieve on the PC. Why, I have no idea, just an observation.
I use Cursor as my IDE, I have the paid for version. My Models are set to Auto and the Chat interface is set to Auto.
I use git and Github for Version control - This enables me to easily pull the code between my two computers
I am using Jest as my testing framework. - You could spend days on this. I spent all Saturday trying to get better coverage. Cursor got hung up on some problems and couldnt fix some errors. I could have persevered but in the end, i rolled the code back to the working state I had first thing Saturday morning. What a waste of a day that wa
I just asked Cursor for an update about where we are with the program and got the following reply....
________________________________________________
I'll analyze the project structure and current state to give you a comprehensive summary.
Read file: masterplan.md
Read file: PHASE2_README.md
Read file: frontend/package.json
Search files...
Based on my analysis of the project structure and codebase, here's a comprehensive summary of where we are with the **TwoSpace Asset Management System**:
## �� **Project Overview**
This is a **comprehensive asset management system** built with Next.js 15, TypeScript, and PostgreSQL. The system is designed to manage company technology assets (phones, tablets, desktops, laptops, monitors) throughout their complete lifecycle from procurement to disposal.
## 🏗️ **Current Architecture**
### **Technology Stack**
- **Frontend**: Next.js 15 with TypeScript, Tailwind CSS, Shadcn/ui components
- **Database**: PostgreSQL with Drizzle ORM
- **Hosting**: Vercel platform
- **Package Manager**: Yarn
- **PDF Generation**: browserless.io (cloud-based headless Chrome)
### **Key Design Decisions**
- **Mobile-first responsive design** with progressive enhancement
- **No separate backend** - all business logic in Next.js API routes
- **Serverless-compatible** architecture for Vercel deployment
- **Type-safe** throughout with strict TypeScript
## ✅ **Fully Implemented Features**
### **1. Core Asset Management**
- ✅ **Asset lifecycle states**: Available → Signed Out → Built → Ready To Go → Issued
- ✅ **Asset types**: Mobile Phones, Tablets, Desktops, Laptops, Monitors
- ✅ **Auto-generated asset numbers** (XX-YYYYY format with type prefixes)
- ✅ **Asset properties**: Serial numbers, purchase price, descriptions, locations
- ✅ **Assignment types**: Individual (person) and Shared (location) assignments
### **2. User Interface**
- ✅ **Responsive dashboard** with real-time statistics and charts
- ✅ **Asset table** with filtering, search, and pagination
- ✅ **Asset detail pages** with full lifecycle management
- ✅ **Modal-based forms** for creating and editing assets
- ✅ **Bulk operations** interface (structure ready, needs API integration)
### **3. Database & Data Management**
- ✅ **Complete PostgreSQL schema** with proper relationships
- ✅ **Audit trail system** with automatic history tracking
- ✅ **Soft delete functionality** with archive tracking
- ✅ **Asset history** with state change tracking
- ✅ **Location management** with predefined locations
### **4. Import/Export System**
- ✅ **CSV/Excel import** functionality for bulk asset onboarding
- ✅ **Column mapping** interface for flexible data import
- ✅ **Data validation** during import process
- ✅ **Export capabilities** for asset inventory reports
### **5. Reporting & Analytics**
- ✅ **Dashboard statistics** with real-time asset counts
- ✅ **Asset distribution charts** by type and state
- ✅ **Recent activity timeline**
- ✅ **PDF export** using browserless.io for reports
### **6. Settings & Configuration**
- ✅ **System settings page** with report cache duration
- ✅ **Depreciation settings** (straight line and declining balance methods)
- ✅ **Barcode scanner test** page for hardware testing
### **7. Barcode Scanning**
- ✅ **USB barcode scanner** support (keyboard emulation)
- ✅ **Camera-based scanning** with QuaggaJS
- ✅ **Barcode search** functionality
- ✅ **Integrated scanning** in asset forms
## 🔄 **Partially Implemented Features**
### **1. User Management**
- ✅ **User table structure** and API endpoints
- ✅ **User import/export** functionality
- ❌ **Authentication system** (planned with Clerk)
- ❌ **Role-based access control** (structure ready)
### **2. Advanced Features**
- ✅ **Bulk operations UI** (structure complete)
- ❌ **Bulk operations API** (needs implementation)
- ✅ **Search functionality** (basic implementation)
- ❌ **Advanced filtering** (location-based, date ranges)
## 🚧 **Current Development Status**
### **What's Working**
- Complete asset lifecycle management
- Full CRUD operations for assets
- Import/export functionality
- Dashboard with real-time data
- Barcode scanning capabilities
- Settings and configuration
- Database schema and migrations
### **What Needs Work**
- **Authentication system** (planned with Clerk)
- **Bulk operations API** (UI ready, backend needed)
- **Advanced search/filtering** (basic version working)
- **User role enforcement** (structure ready)
- **Performance optimization** for large datasets
## 📊 **Database Schema**
The system has a robust database design with:
- **Assets table** with full lifecycle tracking
- **Asset history** for audit trails
- **Locations table** for physical location management
- **Users table** for user management
- **Settings table** for system configuration
- **Archived assets** for soft delete tracking
## 🎨 **User Experience**
- **Mobile-first design** that works on all devices
- **Intuitive navigation** with collapsible sidebar
- **Real-time feedback** for all operations
- **Consistent design language** using Shadcn/ui
- **Accessible components** following best practices
## �� **Deployment Ready**
The system is **production-ready** for:
- Asset lifecycle management
- Bulk import/export operations
- Reporting and analytics
- Barcode scanning
- Settings configuration
## 📋 **Next Priority Items**
1. **Authentication system** implementation
2. **Bulk operations API** completion
3. **Advanced filtering** enhancements
4. **Performance optimization** for large datasets
5. **User role enforcement** and permissions
## 💡 **Key Strengths**
- **Well-architected** with clean separation of concerns
- **Type-safe** throughout with strict TypeScript
- **Mobile-responsive** design
- **Comprehensive audit trail** for compliance
- **Flexible import system** for data onboarding
- **Modern tech stack** with excellent developer experience
The project is in an **advanced state** with most core functionality implemented and working. The foundation is solid, and the remaining work focuses on authentication, advanced features, and performance optimization.
________________________________________________
I do wish that Skool Would implement markdown.
I'll be doing a video walkthrough soon
Password: password01
9
16 comments
Tom Welsh
6
AssetMS - Well heres the update on my little program.
AI Developer Accelerator
skool.com/ai-developer-accelerator
Master AI & software development to build apps and unlock new income streams. Transform ideas into profits. 💡➕🤖➕👨‍💻🟰💰
Leaderboard (30-day)
Powered by