inventorCS is a full-stack inventory management system built with the MERN Stack (MongoDB, Express.js, React, Node.js). Itβs designed for efficient stock tracking, allows user to loan the item/inventory, reporting, and secure user authentication.
Project Link: InventorCS Web App
- User Authentication: JWT-based login & registration. There are 3 user roles: User, Staff, and Admin.
- Inventory Management: Create, update, delete, and view stock.
- Item Loan Transaction: Borrow, return, and track item loan history.
- Request Meeting Scheduling: Users can request meetings with staff to discuss loan transactions.
- Dashboard Analytics: Real-time data visualization using charts, and each user role has a different dashboard.
- Date Filters & Reports: Filter data by date, export to Excel/PDF.
- Search, Sort, Filter, and Pagination: Efficient data browsing with multiple criteria.
- Email Notifications: Automated transactional emails.
- Background Jobs: Scheduled tasks via Cron & RabbitMQ workers.
- Security: Input sanitization, Helmet, CORS, and cookie management.
- Responsive UI Design: Built with TailwindCSS and Material Tailwind.
- β‘οΈ React 18 with Vite
- β‘οΈ Redux Toolkit for state management
- β‘οΈ Axios for making HTTP requests from backend
- β‘οΈ Tailwind CSS & Material Tailwind for UI
- β‘οΈ Recharts for data visualization
- β‘οΈ ExcelJS, jsPDF, FileSaver for export features
- β‘οΈ Framer Motion for animations
- β‘οΈ QR Code & Barcode support
- β‘οΈ Node.js + Express.js
- β‘οΈ MongoDB + Mongoose
- β‘οΈ JWT authentication & bcrypt password hashing
- β‘οΈ Swagger for API documentation
- β‘οΈ RabbitMQ integration (via amqplib) for async job processing
- β‘οΈ Helmet, CORS, cookie-parser for security
- β‘οΈ Nodemailer for email notifications
- β‘οΈ GitHub Actions: CI/CD automation for build & deployment
- β‘οΈ Docker & Docker Compose: Containerization for backend & frontend services
- β‘οΈ Cloudflare Zero Trust: Secure remote access & protection, and create tunnel
- β‘οΈ NGINX: Serving reverse proxy for frontend
- β‘οΈ NodeJS v22 or above
- β‘οΈ npm v9 or above
- β‘οΈ MongoDB v6 or above
- β‘οΈ RabbitMQ v3 or above
git clone https://github.com/Juwono136/inventorCS_apps.git
cd inventorCS_appscd server
npm installcd client
npm installCreate a .env file inside the server folder:
PORT = 5001
CONNECTION_URL = MONGODB_CONNECTION_URI
DB_NAME = inventorCS
CLIENT_URL = http://localhost:5173 (OR USING VITE URI)
INTERNET_SERVER = http://localhost:5001
API_USERS_URL = http://localhost:5000/api/user
NODE_ENV = production
REFRESH_TOKEN_SECRET = YOUR_REFRESH_TOKEN_SECRET
ACCESS_TOKEN_SECRET = YOUR_ACCESS_TOKEN_SECRET
ACTIVATION_TOKEN_SECRET = YOUR_ACTIVATION_TOKEN_SECRET
EMAIL_USER = YOU_HOST_EMAIL
EMAIL_PASSWORD = YOUR_EMAIL_PASSWORD
RABBITMQ_URL = amqp://<USERNAME>:<PASSWORD>@<YOUR_LOCAL_IP>:5672 cd inventorCS_apps
npm startBackend URL: http://Localhost:5001
Frontend URL: http://localhost:5173
| Script | Description |
|---|---|
npm start |
Start server and worker concurrently |
npm run dev |
Development mode with live reload |
npm run worker |
Start background worker only |
| Script | Description |
|---|---|
npm run dev |
Start dev server with hot reload |
npm run build |
Build for production |
npm run preview |
Preview production build |
npm run lint |
Run ESLint checks |
- Swagger API documentation for inventorCS Server: Coming soon...
- Swagger API documentation for User REST API: Click Here
Under process...
- Ensure MongoDB & RabbitMQ are running before starting backend (running via docker).
- Worker script (worker/autoCancelWorker.js) runs scheduled tasks automatically.
- Use nodemon for live reload during backend development.
- Cron jobs handle automatic cancellations & periodic maintenance tasks.
- Juwono (https://github.com/Juwono136)
- Ida Bagus Kerthyayana Manuaba (https://github.com/bagzcode)
- Wilbert Wirawan Ichwan (https://github.com/Rktify)
- Brilian Yudha (https://github.com/brilianvy2)
