A comprehensive e-commerce application developed entirely in Java using a traditional layered architecture. This project caters to both customers and sellers, providing functionalities from user registration to order processing. Developed using Apache NetBeans, built with Apache Ant, and backed by a MySQL relational database.
Section | Description |
---|---|
Key Features | Main functionalities and user capabilities |
Technology Stack | Tools, libraries, and platforms used |
Project Structure | Code organization and important modules |
Database Model | Detailed database tables and their purposes |
Getting Started | Setup, installation, and configuration guide |
Usage | How to use the application and user flows |
Contributing | Contribution guidelines and process |
License | License information |
Feature | Description |
---|---|
User Registration & Authentication | Secure sign-up and login system for customers and sellers, with password hashing and validation. |
Product Management | Sellers can add new products, update existing listings (name, price, stock, details), and delete products. |
Shopping Cart | Customers can add multiple products to their cart, modify quantities, and remove items before checkout. |
Order Processing & Payment | Customers place orders with payment info stored securely; orders record product prices at purchase time. |
Coupon & Discount System | Supports coupon codes for discounts linked to sellers or games, with expiration dates and validation. |
Search & Filtering | Customers can search products by name, category, and filter by price, color, size, or rating. |
Favorites & Reviews | Customers can mark products as favorites and leave reviews with star ratings and comments. |
Referral & Invitation System | Tracks customer referrals to encourage user base growth. |
Game-related Features | Supports gaming-related product categories with reset hours and tracking of customer plays. |
Shipping & Delivery Management | Integration with shipping companies; sellers have shipment IDs for order dispatching. |
Responsive & Intuitive UI | Simple, clean interface for desktop users developed with Java Swing (or similar UI libraries). |
Layer | Technologies |
---|---|
Programming Language | Java (JDK 8+) |
IDE | Apache NetBeans |
Build Tool | Apache Ant |
Database | MySQL |
Database Access | JDBC (Java Database Connectivity) |
Web Server | (Optional) Apache Tomcat for servlet hosting |
Libraries & Tools | Java Swing (for GUI), Java Collections Framework |
Table Name | Purpose |
---|---|
address | Stores address details, including address name, city, district, street, and building number. |
cart | Represents a customer's shopping cart. |
cart_item | Stores individual products and their quantities within a specific shopping cart. |
cartitem_product | Links products to items in a shopping cart. |
coupon | Stores information about discount coupons, including code, discount amount, expiration date, and associated seller or game. |
customer | Manages customer accounts, including name, phone number, email, password, height, age, and referrer ID. |
customer_product | Tracks products associated with a customer, including quantity. |
favorites | Stores products that customers have marked as favorites. |
game | Stores details about games, including game name, type, and reset hours. |
invites | Records customer invitations or referrals. |
order_product | Links products to specific orders and includes the price at the time of order. |
orders | Records completed customer orders, including order date, customer ID, and address name. |
payment_info | Stores customer payment card details such as card number, expiration date, CVC, card owner, and card name. |
plays | Records instances of customers playing games, including play time. |
product | Contains details for all products available for sale, such as product name, price, color, size, material, stock, and associated seller. |
review | Stores customer reviews for products, including star rating, comment, and rating date. |
seller | Stores seller information, including seller name, experience, rating, and associated shipment ID. |
shipping_company | Stores details about shipping companies, including company name. |
- Java JDK 8 or higher installed on your system
- Apache NetBeans IDE (recommended) for easy project management and development
- Apache Ant installed and configured for building the project
- MySQL Server installed and running locally or remotely
- Basic familiarity with Java development and SQL queries
-
Clone the repository:
git clone https://github.com/IsmailTekin05/Online_Shopping_Application.git
-
Import the project:
- Open Apache NetBeans.
- Select File > Open Project and navigate to the cloned folder.
-
Configure the database:
- Create a new MySQL database (e.g.,
online_shopping
). - Run the
database.sql
script to create tables and insert initial seed data. - Edit the database connection settings in
src/util/DBConnection.java
to match your MySQL credentials.
- Create a new MySQL database (e.g.,
-
Build and run the project:
- Open a terminal in the project directory.
- Execute the following commands to clean, build, and run:
ant clean build run
- User Registration & Login: New users can sign up as either customers or sellers and log in securely.
- Seller Dashboard: Sellers can manage product listings by adding, updating, or deleting products with detailed attributes like price, color, size, material, and stock.
- Customer Shopping Experience: Customers can browse products by category, search and filter by various criteria, add items to their cart, and modify cart contents before purchase.
- Checkout & Payment: Customers place orders by confirming cart contents and providing payment information, securely stored for future transactions.
- Order Management: Both customers and sellers can view order statuses. Admin functionality allows management of users and overall order tracking.
- Coupons & Discounts: Customers can apply valid coupon codes for discounts linked to specific sellers or games.
- Favorites & Reviews: Customers can save favorite products for quick access and submit product reviews with ratings and comments.
- Referral System: Customers can invite others, helping grow the user base.
- Gaming Integration: Supports products linked to games with special gameplay tracking features.
- Shipping Integration: Sellers associate with shipping companies to manage deliveries effectively.
We welcome contributions to improve this project! To contribute:
-
Fork the repository.
-
Create your feature branch:
git checkout -b feature/your-feature-name
-
Commit your changes with clear messages:
git commit -m "Add feature: description"
-
Push your branch:
git push origin feature/your-feature-name
-
Open a Pull Request on GitHub explaining your changes.
Please adhere to the existing code style and include tests where applicable.
This project is licensed under the Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0) License.
See the LICENSE file for full details.
Thank you for checking out the Online Shopping Application! Happy coding! π