The Smart Warehouse Management System is an advanced web application designed to optimize inventory and logistics operations in large-scale warehouses. This project is built using Node.js, Express.js, MongoDB, and BigQuery, and includes features such as user authentication, inventory management, order processing, and real-time tracking. The application leverages BigQuery for comprehensive data analysis and reporting capabilities, ensuring efficient and secure warehouse operations.
- User Authentication: Secure user registration and login using JWT.
- Inventory Management: Add, update, delete, and view inventory items.
- Order Processing: Create, update, delete, and view orders.
- Real-Time Tracking: Monitor inventory and order status in real-time.
- Data Analysis and Reporting: Leverage BigQuery for analyzing large data sets and generating reports.
- Security: Ensure data protection with secure authentication and HTTPS.
- Backend: Node.js, Express.js
- Database: MongoDB, BigQuery
- API: RESTful API
- Authentication: JWT (JSON Web Token)
- Testing: Mocha, Chai, Supertest
SmartWarehouseManagement/
├── backend/
│ ├── config/
│ ├── controllers/
│ │ ├── inventoryController.js
│ │ ├── orderController.js
│ │ └── userController.js
│ ├── middleware/
│ │ └── auth.js
│ ├── models/
│ │ ├── Inventory.js
│ │ ├── Order.js
│ │ └── User.js
│ ├── routes/
│ │ ├── inventoryRoutes.js
│ │ ├── orderRoutes.js
│ │ └── userRoutes.js
│ ├── tests/
│ │ ├── inventory.test.js
│ │ └── user.test.js
│ ├── utils/
│ ├── package.json
│ └── server.js
├── data/
├── docs/
└── README.md
-
Clone the repository:
git clone https://github.com/oaslananka/SmartWarehouseManagement.git
-
Navigate to the
backend
directory and install the dependencies:cd SmartWarehouseManagement/backend npm install
-
Ensure MongoDB is installed and running on your system.
-
Start the server:
npm start
- Register a new user:
POST /api/users/register { "name": "Your Name", "email": "your.email@example.com", "password": "yourpassword" }
- Login a user:
POST /api/users/login { "email": "your.email@example.com", "password": "yourpassword" }
-
Add a new item to the inventory:
POST /api/inventory { "itemName": "Item Name", "quantity": 100, "location": "A1" }
-
Get all inventory items:
GET /api/inventory
-
Update an inventory item:
PUT /api/inventory { "id": "item_id", "quantity": 150, "location": "A2" }
-
Delete an inventory item:
DELETE /api/inventory/:id
-
Create a new order:
POST /api/orders { "customerName": "Customer Name", "items": [ { "itemName": "Item Name", "quantity": 10 } ] }
-
Get all orders:
GET /api/orders
-
Update an order:
PUT /api/orders { "id": "order_id", "status": "Shipped", "shipDate": "2023-01-01" }
-
Delete an order:
DELETE /api/orders/:id
Run the tests using the following command:
npm test
This project is licensed under the MIT License.