This project is an Admin Panel for a single-vendor e-commerce platform, developed as part of the 3rd Semester Database Systems Project at the University of Moratuwa, Department of Computer Science and Engineering, Faculty of Engineering. The application allows for role-based access control (RBAC) for different types of users: Admin, Delivery Person, and Inventory Manager. It was built using MySQL, Next.js, and TypeScript.
- Project Overview
- Features
- Technologies Used
- Installation
- Usage
- Project Structure
- Contributing
- License
The admin panel is designed for a single-vendor e-commerce platform and supports the management of products, inventory, and orders, as well as delivery tracking and reporting features. It allows administrators, delivery personnel, and inventory managers to access specific functionalities according to their roles.
- Admin: Full access to all functionalities, including user management and detailed analytics.
- Delivery Person: Access to manage and track delivery statuses.
- Inventory Manager: Access to manage product inventory and stock levels.
- Maintain product catalog with options for multiple variants (e.g., size, color).
- Categorize products to enable efficient search and sorting functionality.
- Define custom attributes for different types of products.
- Handle customer orders, including tracking order status and managing payment methods (cash on delivery, card).
- Automatically update inventory after an order checkout to ensure consistency.
- Calculate estimated delivery time based on product availability and delivery location.
- Track delivery status and update as necessary.
- Generate quarterly sales reports and other analytics, such as:
- Products with the highest sales
- Most ordered product categories
- Customer order reports
- Interest in products over specific time periods
- MySQL: For database management and transaction consistency.
- Next.js: For building a robust, scalable front-end.
- TypeScript: Ensures type safety and better error handling.
To run this project locally:
-
Clone the repository:
git clone https://github.com/your-username/admin-panel-ecommerce.git
-
Navigate to the project directory:
cd admin-panel-ecommerce -
Install dependencies:
npm install
-
Set up the MySQL database and add the necessary environment variables in a
.envfile. -
Run the development server:
npm run dev
- Log in with the respective role (Admin, Delivery Person, Inventory Manager).
- Navigate through the panel based on role-based permissions.
- Use available features to manage products, inventory, orders, and delivery tracking.
- Access reports and analytics in the Admin dashboard.
The project follows a standard Next.js and TypeScript structure, with organized directories for pages, components, and services.
Contributions are welcome! Please fork the repository, create a feature branch, and submit a pull request.
This project is licensed under the MIT License.