This is a full-featured e-commerce web application built using Spring Framework. The project provides functionalities for managing products, customers, orders, and a shopping cart, with integrated security features.
- Features
- Entity-Relationship Diagram
- Technologies Used
- Installation
- Usage
- Configuration
- Project Structure
- Presentation
- Contributing
- User registration and authentication
- Product catalog with search and filter capabilities
- Shopping cart functionality
- Order management and checkout process
- Admin dashboard for managing products and orders
- Payment gateway integration (e.g., PayPal, Stripe)
- Responsive design with Bootstrap
- RESTful API endpoints for front-end communication
- Password encryption for enhanced security
- Third-party login options using Google, Facebook, and GitHub
- Backend: Spring Framework, Spring Boot, Spring Security
- Persistence: Hibernate/JPA, MySQL
- Frontend: Thymeleaf, Bootstrap, JavaScript, jQuery
- Build Tool: Maven
- Version Control: Git
- Other Tools: Lombok, JWT (for authentication)
- Clone the repository:
git clone https://github.com/mohab-wahdan/ecommerce-spring.git cd ecommerce-spring
Follow these steps to set up the database for this project:
- Create a MySQL database named
chicly
.
- Open the
application.properties
orapplication.yml
file located in thesrc/main/resources
directory. - Update the file with your database connection details (username and password).
spring.datasource.url=jdbc:mysql://localhost:3306/chicly
spring.datasource.username=your_username
spring.datasource.password=your_password
Follow these steps to build and run the application:
Use the following command to clean and build the project:
mvn clean install
Start the application using the command:
mvn spring-boot:run
Once the application is running, navigate to the following URL in your web browser: http://localhost:8083
- Register and log in to the system.
- Browse and search for products.
- Add products to the shopping cart and proceed to checkout.
- View order history.
- Log in to the admin dashboard.
- Manage products, categories, and orders.
- Modern Spring Security configuration without
WebSecurityConfigurerAdapter
. - JWT is used for securing the API.
- Uses MySQL with Hibernate as the JPA provider.
- Configuration files are located in the
src/main/resources
directory.
The project follows a standard Spring Boot structure:
ecommerce-spring/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── ecommerce/
│ │ │ ├── controllers/ # Handles HTTP requests and responses
│ │ │ ├── dtos/ # Data Transfer Objects for data exchange
│ │ │ ├── enums/ # Custom enumeration types
│ │ │ ├── exceptions/ # Custom exception handling classes
│ │ │ ├── mappers/ # Mappers for converting between DTOs and models
│ │ │ ├── models/ # Domain model classes representing entities
│ │ │ ├── repositories/ # Repository interfaces and implementations
│ │ │ ├── security/ # Security configurations and authentication classes
│ │ │ ├── services/ # Service classes encapsulating business logic
│ │ │ ├── thirdParty/ # Classes for interacting with third-party services
│ │ │ └── util/ # Utility classes for common functions
│ │ ├── resources/
│ │ │ ├── static/ # Static resources (CSS, JavaScript, images)
│ │ │ ├── templates/ # Templates for dynamic content (e.g., Thymeleaf)
│ │ │ └── application.properties # Configuration properties for the application
│ └── test/ # Test classes for unit and integration testing
├── webapp/ # Web resources for the web application
├── target/ # Build artifacts generated by the build system
├── pom.xml # Maven project configuration file
└── README.md # Project documentation
https://gamma.app/docs/Introducing-Chicly-Your-Fashionable-Ecommerce-App-pbas76fdft6tofv
Contributions are welcome! If you would like to contribute to this project, please follow these steps:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature-branch
- Make your changes and commit them:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature-branch
- Submit a pull request.
This project was developed with the help of the following contributors:
Name | |
---|---|
Mohab Wahdan | mohabmostafa176@gmail.com |
Yasmeen saad | yasmeenesaad@gmail.com |
Mohammed Ashraf | mohamedashraf14526@gmail.com |
Waleed Kamal | waleedkamal1999@gmail.com |
Nourhan ELsherbiny | nouraelsherbiny98@gmail.com |
Feel free to reach out to any of the contributors for more information about the project.