E-Commerce application for diploma project.
Built with the tools and technologies:
Expelliarmus-Market is an e-commerce web application that allows businesses to create, manage, and scale online stores with ease.
- 🐳 Docker Compose Configuration: Simplifies service orchestration.
- 🔧 Makefile Management: Streamlines builds and processes.
- 🎨 Tailwind CSS Integration: Enhances UI consistency.
- 🔌 API Integration: Ensures seamless frontend-backend communication.
- 🔐 Robust User Management: Improves security and authentication.
- 📦 Dynamic Product Management: Efficient handling of inventory and discounts.
This project requires the latest installed Docker tool. After cloning the application, you need to set environment files.
First, in the root directory of the project, you will find the
.env.docker.example file.
Then, in backend directory, you will find the
.env.example file.
And finally, in frontend directory of the project, you will find
.env.example file.
By default, URL of api is - api.expelliarmus.com:8080 and frontend expelliarmus.com:3000 (dev mode) and expelliarmus.com:8000 (build mode).
You will need to set local domain name in your system hosts file:
172.0.0.1 expelliarmus.com
172.0.0.1 api.expelliarmus.com
Run following command:
make first-start-app
This command will run commands required for correct installation.
Next, you should determine in which mode to run frontend:
Developer mode:
make front-dev
Build mode:
make front-build
Additionally, you can create a test super manager to get access to the manager panel:
make super-manager
Manager login page available on /management/manager/auth URL.
For more commands see:
make help
Backend application tests can be run using this command:
make backend-tests
Expelliarmus-Market is built with a modular architecture, allowing businesses to manage various aspects of their e-commerce platform efficiently. Below is an overview of the core modules and the tasks they handle:
-
🛒 Order
-
👤 User
Provides robust user management for both customers and administrators.- Register and authenticate users with secure login.
- Manage user roles and permissions (e.g., admin, customer).
- Store and update user profiles and preferences.
- Ability to conveniently interact with products by adding them to the cart and wishlist.
-
📦 Product
Handles product catalog management for the store.- Add, edit, and delete products with detailed attributes.
- Manage product variants (e.g., sizes, colors).
- Set discounts.
-
🏬 Warehouse
Manages inventory and stock.- Track stock availability in real-time.
- Ability to view all products information.
- Manage restocking and inventory updates.
-
🏷️ Category
Organizes products into categories for better navigation.- Create and manage product categories and subcategories.
- Assign products to multiple categories.
- Display category-based filters on the storefront.
-
🔖 Brand
Manages brand information for products.- Add and edit brand details.
- Associate products with specific brands.
- Filter products by brand on the storefront.
-
📝 Content Management
Enables dynamic content updates for the store.- Manage different content section such as Slider or New Arrivals section.
-
📊 Statistics
Provides various statistics to improve user experience.
API documentation available here.