- Project Overview
- Features
- Technology Stack
- Installation
- Configuration
- Usage
- API Documentation
- Deployment
- Testing
- Contributing
- License
A robust web-based inventory management solution designed for networking equipment resellers. The system provides real-time tracking of Starlink kits, routers, and switches across multiple locations with comprehensive status monitoring.
-
Multi-location Inventory Tracking
- Warehouse, office, and client site management
- Status categorization (In Stock/Out of Stock/Damaged)
-
Role-Based Access Control
- Hierarchical user permissions (Admin/Staff/Client)
- Fine-grained access control
-
Offline-First Architecture
- Dexie.js-powered IndexedDB storage
- Automatic conflict resolution
- Background sync capability
-
Reporting Engine
- CSV export functionality
- Custom report generation
| Technology | Purpose | Version |
|---|---|---|
| HTML5 | Structure | - |
| CSS3 | Styling | - |
| JavaScript (ES6+) | Client Logic | ES2020 |
| Dexie.js | IndexedDB Wrapper | 3.2.2 |
| Technology | Purpose | Version |
|---|---|---|
| Node.js | Runtime | 14+ |
| Express.js | Web Framework | 4.17+ |
| SQLite | Database | 3.35+ |
| bcrypt | Password Hashing | 5.0+ |
| express-session | Session Management | 1.17+ |
- Raspberry Pi 3B+/4 (ARMv8)
- SSD Storage Recommended
- Nginx Reverse Proxy (Optional)
- Node.js 14+
- npm 6+
- Raspberry Pi OS (64-bit recommended)
# Clone repository
git clone https://github.com/yourrepo/inventory-management.git
cd inventory-management
# Install dependencies
npm install
# Environment configuration
cp .env.example .envPORT=3000
SESSION_SECRET=your_secret_key
DB_PATH=./data/inventory.db
BCRYPT_SALT_ROUNDS=10The system automatically creates:
userstable with admin credentials (admin/admin123)inventorytable with schema validationclientstable for customer management
node server/server.js- Web Interface:
http://localhost:3000 - API Base URL:
http://localhost:3000/api/v1
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/auth/login |
User authentication |
| GET | /api/v1/inventory |
Retrieve inventory |
| POST | /api/v1/inventory |
Create new item |
| PUT | /api/v1/inventory/:id |
Update item |
- Flash Raspberry Pi OS to SSD
- Install Node.js:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs - Configure as system service:
sudo cp systemd/inventory.service /etc/systemd/system/ sudo systemctl enable inventory.service
npm test- Unit Tests: 85%
- Integration Tests: 70%
- UI Tests: 60%
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.