{"id":44717160,"url":"https://github.com/sazzadul1205/asset_tracker","last_synced_at":"2026-02-15T14:19:15.006Z","repository":{"id":323773635,"uuid":"1094356714","full_name":"sazzadul1205/asset_tracker","owner":"sazzadul1205","description":"A simple Office Asset Management System","archived":false,"fork":false,"pushed_at":"2026-01-06T14:16:17.000Z","size":769,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-06T17:24:35.708Z","etag":null,"topics":["asset-management","mongodb","nextjs","tailwindcss","webapp"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sazzadul1205.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-11T15:49:45.000Z","updated_at":"2025-12-12T04:34:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sazzadul1205/asset_tracker","commit_stats":null,"previous_names":["sazzadul1205/asset_tracker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sazzadul1205/asset_tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sazzadul1205%2Fasset_tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sazzadul1205%2Fasset_tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sazzadul1205%2Fasset_tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sazzadul1205%2Fasset_tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sazzadul1205","download_url":"https://codeload.github.com/sazzadul1205/asset_tracker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sazzadul1205%2Fasset_tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29481086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T11:35:25.641Z","status":"ssl_error","status_checked_at":"2026-02-15T11:34:57.128Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asset-management","mongodb","nextjs","tailwindcss","webapp"],"created_at":"2026-02-15T14:19:14.357Z","updated_at":"2026-02-15T14:19:14.997Z","avatar_url":"https://github.com/sazzadul1205.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🏢 Asset Tracker - Enterprise Asset Management System\n\nA comprehensive asset tracking and management system built with Next.js 14, featuring role-based access control, real-time tracking, and complete asset lifecycle management.\n\n## LIVE DEMO: [https://asset-tracker-gules.vercel.app/](https://asset-tracker-gules.vercel.app/)\n\n# 🚀 What's New in V1.1\n\nWelcome to the latest update of our Asset Management System! Version 1.1 brings significant improvements, new features, and enhanced user experience. Here's what you can expect:\n\n## ✨ **Major New Features**\n\n### 📱 **Complete Mobile Responsiveness**\n\n- **All pages now fully responsive** - Works seamlessly on mobile, tablet, and desktop\n- **Mobile-optimized navigation** - Touch-friendly buttons and menus\n- **Responsive tables** that transform into cards on mobile devices\n- **Adaptive layouts** that adjust based on screen size\n\n### 🎨 **Enhanced User Interface**\n\n- **Modern dashboard design** with improved card layouts\n- **Consistent color scheme** across all components\n- **Better visual hierarchy** and spacing\n- **Smooth animations** and transitions\n\n## 🌟 Features\n\n### **🔐 Authentication \u0026 Authorization**\n\n- **Multi-role system** (Admin, Manager, Employee)\n- **Secure login** with NextAuth.js\n- **Protected routes** based on user roles\n- **Session management** with JWT tokens\n\n### **📊 Dashboard \u0026 Analytics**\n\n- **Role-specific dashboards** for each user type\n- **Real-time statistics** and metrics\n- **System activity logs**\n- **Interactive charts** and data visualization\n\n### **🏷️ Asset Management**\n\n- **Complete asset lifecycle tracking** (Acquisition to Disposal)\n- **Barcode generation** and scanning support\n- **Asset categorization** with custom fields\n- **Asset assignment** to employees/departments\n- **Depreciation tracking** and valuation\n\n### **👥 Employee \u0026 Department Management**\n\n- **Employee profiles** with asset assignments\n- **Department hierarchy** management\n- **Manager-employee relationships**\n- **Bulk user operations**\n\n### **🔄 Request \u0026 Workflow System**\n\n- **8+ request types**: Assign, Transfer, Repair, Return, Dispose, Retire, Update, Request New\n- **Approval workflows** with notifications\n- **Request history** and tracking\n- **Automatic email notifications**\n\n### **📈 Reporting \u0026 Transactions**\n\n- **Transaction history** with audit trail\n- **Custom reports** generation\n- **Export functionality** (PDF, Excel)\n- **Filtering and searching** capabilities\n\n## 🏗️ Project Structure\n\n```\nasset_tracker/\n├── src/app/                    # Next.js App Router\n│   ├── admin/                  # Admin panel pages\n│   │   ├── dashboard/         # Admin dashboard\n│   │   ├── assets/            # Asset management\n│   │   ├── employees/         # Employee management\n│   │   ├── departments/       # Department management\n│   │   ├── assetsCategories/  # Asset categories\n│   │   ├── myAssets/          # Admin's assigned assets\n│   │   ├── myRequests/        # Admin's requests\n│   │   ├── transactions/      # All system transactions\n│   │   ├── profile/           # Admin profile\n│   │   └── companySettings/   # Company configuration\n│   │\n│   ├── manager/               # Manager panel pages\n│   │   ├── dashboard/         # Manager dashboard\n│   │   ├── myAssets/          # Manager's assets\n│   │   ├── myEmployees/       # Manager's team\n│   │   ├── myRequests/        # Manager's requests\n│   │   ├── transactions/      # Department transactions\n│   │   └── profile/           # Manager profile\n│   │\n│   ├── employee/              # Employee panel pages\n│   │   ├── dashboard/         # Employee dashboard\n│   │   ├── myAssets/          # Employee's assets\n│   │   ├── myRequests/        # Employee's requests\n│   │   └── profile/           # Employee profile\n│   │\n│   ├── auth/                  # Authentication pages\n│   │   └── login/             # Login page\n│   │\n│   ├── api/                   # API Routes\n│   │   ├── auth/              # Authentication endpoints\n│   │   ├── assets/            # Asset CRUD operations\n│   │   ├── users/             # User management\n│   │   ├── department/        # Department operations\n│   │   ├── requests/          # Request handling\n│   │   ├── assetsCategories/  # Category operations\n│   │   ├── company/           # Company settings\n│   │   ├── allCounts/         # Dashboard statistics\n│   │   └── requestLogs/       # Activity logs\n│   │\n│   └── layout.js              # Root layout\n│\n├── src/Shared/                # Reusable components\n│   ├── Navbar/               # Navigation component\n│   ├── Footer/               # Footer component\n│   ├── Loading/              # Loading indicators\n│   ├── Error/                # Error components\n│   ├── Shared_Button/        # Custom buttons\n│   ├── Shared_Input/         # Form inputs\n│   └── Table_Pagination/     # Data table components\n│\n├── src/hooks/                # Custom React hooks\n│   ├── useAuth.js           # Authentication hook\n│   ├── useAxiosPublic.js    # API client hook\n│   ├── useImageUpload.js    # Image upload hook\n│   └── useToast.js          # Notification hook\n│\n├── src/Providers/           # Context providers\n│   └── QueryProvider.js     # React Query provider\n│\n├── src/Utils/              # Utility functions\n│   ├── formatCurrency.js   # Currency formatting\n│   └── formatStatus.js     # Status formatting\n│\n├── src/lib/               # Database and external libs\n│   └── connectDB.js       # Database connection\n│\n├── public/                # Static assets\n│   ├── Icons/            # Custom icons\n│   ├── Logo/             # Brand logos\n│   └── various SVG files\n│\n└── middleware.js          # Route protection middleware\n```\n\n## 🎯 User Roles \u0026 Permissions\n\n### **👑 Admin**\n\n- Full system access\n- Manage all assets, users, departments\n- Configure system settings\n- View all transactions and logs\n- Approve/reject all requests\n\n### **👔 Manager**\n\n- Manage department assets\n- View and manage team members\n- Approve department requests\n- Generate department reports\n- Limited system configuration\n\n### **👤 Employee**\n\n- View assigned assets\n- Submit asset requests\n- Track personal requests\n- Update personal profile\n- View department assets\n\n## 📋 Request Types\n\nThe system supports 8 types of asset requests:\n\n1. **📦 Assign Asset** - Assign asset to employee\n2. **🔄 Transfer Asset** - Transfer between employees/departments\n3. **🔧 Repair Asset** - Request maintenance/repair\n4. **↩️ Return Asset** - Return assigned asset\n5. **🗑️ Dispose Asset** - Dispose of damaged assets\n6. **🏁 Retire Asset** - Retire obsolete assets\n7. **✏️ Update Asset** - Modify asset information\n8. **🆕 Request Asset** - Request new asset acquisition\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n- MongoDB database\n- npm or yarn\n\n### Installation\n\n1. **Clone the repository**\n\n```bash\ngit clone \u003crepository-url\u003e\ncd asset_tracker\n```\n\n2. **Install dependencies**\n\n```bash\nnpm install\n# or\nyarn install\n# or\npnpm install\n```\n\n3. **Environment Configuration**\n\n```bash\ncp .env.example .env.local\n```\n\nEdit `.env.local` with your configuration:\n\n```env\nMONGODB_URI=your_mongodb_connection_string\nNEXTAUTH_SECRET=your_secret_key\nNEXTAUTH_URL=http://localhost:3000\n```\n\n4. **Database Setup**\n\n- Ensure MongoDB is running\n- The system will create necessary collections automatically\n\n5. **Run the development server**\n\n```bash\nnpm run dev\n# or\nyarn dev\n# or\npnpm dev\n```\n\n6. **Access the application**\n\n- Open [http://localhost:3000](http://localhost:3000)\n- Login with default admin credentials (setup required)\n\n## 🛠️ Technology Stack\n\n### **Frontend**\n\n- **Next.js 14** - React framework with App Router\n- **React 18** - UI library\n- **Tailwind CSS** - Styling framework\n- **React Icons** - Icon library\n- **React Hook Form** - Form handling\n- **React Query** - Data fetching and caching\n\n### **Backend**\n\n- **Next.js API Routes** - Serverless functions\n- **NextAuth.js** - Authentication\n- **Mongoose** - MongoDB ODM\n- **Axios** - HTTP client\n- **JWT** - Token-based authentication\n\n### **Database**\n\n- **MongoDB** - NoSQL database\n- **Mongoose** - Data modeling\n\n### **Development Tools**\n\n- **ESLint** - Code linting\n- **Prettier** - Code formatting\n- **Turbopack** - Fast builds\n\n## 📊 Database Models\n\n### **User Model**\n\n```javascript\n{\n  name: String,\n  email: String,\n  password: String,\n  role: ['admin', 'manager', 'employee'],\n  department: ObjectId,\n  manager: ObjectId,\n  status: ['active', 'inactive'],\n  profileImage: String,\n  contactInfo: Object\n}\n```\n\n### **Asset Model**\n\n```javascript\n{\n  tag: String, // Unique identifier\n  serialNumber: String,\n  name: String,\n  category: ObjectId,\n  status: ['available', 'assigned', 'maintenance', 'retired'],\n  assignedTo: ObjectId,\n  department: ObjectId,\n  purchaseDate: Date,\n  purchaseValue: Number,\n  currentValue: Number,\n  location: String,\n  specifications: Object\n}\n```\n\n### **Request Model**\n\n```javascript\n{\n  type: String, // 8 request types\n  asset: ObjectId,\n  requestedBy: ObjectId,\n  assignedTo: ObjectId,\n  department: ObjectId,\n  status: ['pending', 'approved', 'rejected', 'completed'],\n  priority: ['low', 'medium', 'high'],\n  description: String,\n  attachments: Array,\n  comments: Array,\n  approvedBy: ObjectId,\n  approvalDate: Date\n}\n```\n\n## 🔧 API Endpoints\n\n### **Authentication**\n\n- `POST /api/auth/[...nextauth]` - Login/Logout\n- `POST /api/auth/UpdatePassword/[userId]` - Password update\n\n### **Users**\n\n- `GET /api/users` - List all users\n- `POST /api/users` - Create user\n- `GET /api/users/[userId]` - Get user details\n- `PUT /api/users/[userId]` - Update user\n- `GET /api/users/EmployeeManager` - Get managers\n- `GET /api/users/MyEmployees/[userId]` - Get manager's employees\n\n### **Assets**\n\n- `GET /api/assets` - List all assets\n- `POST /api/assets` - Create asset\n- `GET /api/assets/[tag]` - Get asset by tag\n- `PUT /api/assets/[tag]` - Update asset\n- `DELETE /api/assets/[tag]` - Delete asset\n- `GET /api/assets/AssetOption` - Asset options for dropdowns\n\n### **Requests**\n\n- `GET /api/requests` - List all requests\n- `POST /api/requests` - Create request\n- `GET /api/requests/[requestedBy]` - Get user's requests\n- `PUT /api/requests/Accepted/[id]` - Approve request\n- `PUT /api/requests/Rejected/[id]` - Reject request\n\n### **Departments**\n\n- `GET /api/department` - List departments\n- `POST /api/department` - Create department\n- `GET /api/department/[departmentId]` - Get department\n- `PUT /api/department/[departmentId]` - Update department\n- `GET /api/department/DepartmentOptions` - Department options\n\n## 🎨 Customization\n\n### **Adding New Asset Categories**\n\n1. Navigate to `/admin/assetsCategories`\n2. Click \"Add New Category\"\n3. Define category fields and validation rules\n\n### **Configuring Company Settings**\n\n1. Navigate to `/admin/companySettings`\n2. Update company information\n3. Configure system preferences\n\n### **Customizing Email Templates**\n\n- Email templates are located in the API routes\n- Modify request approval/rejection emails in `/api/requests/`\n\n## 📱 Mobile Responsiveness\n\nThe application is fully responsive across:\n\n- **Desktop** (≥1024px) - Full feature access\n- **Tablet** (768px-1023px) - Optimized layouts\n- **Mobile** (\u003c768px) - Touch-friendly interfaces\n\n## 🔒 Security Features\n\n- **Role-based access control** (RBAC)\n- **Password hashing** with bcrypt\n- **JWT token authentication**\n- **CSRF protection**\n- **Input validation** and sanitization\n- **SQL/NoSQL injection prevention**\n- **Rate limiting** on authentication endpoints\n\n## 📈 Performance Optimizations\n\n- **Server-side rendering** for critical pages\n- **Client-side caching** with React Query\n- **Image optimization** with Next.js Image\n- **Code splitting** and lazy loading\n- **Database indexing** for frequent queries\n- **Compressed assets** and minified code\n\n## 🚢 Deployment\n\n### **Vercel (Recommended)**\n\n```bash\nnpm i -g vercel\nvercel\n```\n\n### **Docker Deployment**\n\n```dockerfile\nFROM node:18-alpine\nWORKDIR /app\nCOPY package*.json ./\nRUN npm install\nCOPY . .\nRUN npm run build\nEXPOSE 3000\nCMD [\"npm\", \"start\"]\n```\n\n### **Environment Variables for Production**\n\n```env\nMONGODB_URI=your_production_mongodb_uri\nNEXTAUTH_SECRET=strong_random_secret\nNEXTAUTH_URL=https://yourdomain.com\nNEXT_PUBLIC_API_URL=https://api.yourdomain.com\n```\n\n## 🧪 Testing\n\n### **Run Tests**\n\n```bash\n# Unit tests\nnpm test\n\n# Integration tests\nnpm run test:integration\n\n# E2E tests\nnpm run test:e2e\n```\n\n### **Test Coverage**\n\n- **Unit tests**: Components and utilities\n- **Integration tests**: API endpoints\n- **E2E tests**: User workflows\n- **Security tests**: Authentication and authorization\n\n## 🐛 Troubleshooting\n\n### **Common Issues**\n\n1. **MongoDB Connection Failed**\n\n   - Verify MongoDB is running\n   - Check connection string in `.env.local`\n   - Ensure network access is allowed\n\n2. **Authentication Issues**\n\n   - Clear browser cookies\n   - Check JWT secret in environment variables\n   - Verify user exists in database\n\n3. **Build Errors**\n   - Clear `.next` cache: `rm -rf .next`\n   - Reinstall dependencies: `npm ci`\n   - Check Node.js version compatibility\n\n### **Logs**\n\n- Application logs are available in the console\n- Database queries can be logged by enabling Mongoose debug\n- API request logs are stored in the database\n\n## 📄 License\n\nThis project is proprietary software. All rights reserved.\n\n## 👥 Support\n\nFor support, please contact:\n\n- **System Administrator**: admin@company.com\n- **Technical Support**: support@company.com\n- **Documentation**: [Internal Wiki Link]\n\n## 🔄 Changelog\n\n### **Version 1.0.0** (Current)\n\n- Initial release with core features\n- Multi-role system implementation\n- Complete asset lifecycle management\n- Request and approval workflows\n- Comprehensive reporting\n\n---\n\n## 🚀 Quick Start Commands\n\n```bash\n# Development\nnpm run dev\n\n# Production build\nnpm run build\nnpm start\n\n# Linting\nnpm run lint\n\n# Formatting\nnpm run format\n\n# Type checking (if using TypeScript)\nnpm run type-check\n```\n\n---\n\n**✨ System Ready!** Your asset tracking system is configured and ready for deployment. Remember to:\n\n1. Set up initial admin user\n2. Configure company settings\n3. Import existing assets (if any)\n4. Train users on the system\n5. Set up regular backups\n\nFor detailed implementation guides, refer to the internal documentation or contact the development team.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsazzadul1205%2Fasset_tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsazzadul1205%2Fasset_tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsazzadul1205%2Fasset_tracker/lists"}