Welcome to The Bookstore Website! 🚀
This repository contains the source code for an e-commerce platform where users can browse books, add them to their cart, and place orders.
This project was developed as part of the CCSD Capstone Project by a team of three members using Java Spring Boot, JPA, Hibernate, Thymeleaf, HTML, Spring Boot Security, CSS, Bootstrap, and JavaScript.
- Register, Log In, Log Out: Secure authentication using Spring Security.
- Password Encryption: Secure hashing with bcrypt.
- Session Management: Ensures data protection.
- Error Handling: User-friendly error messages.
- Input Validation: Ensures data integrity.
- Add to Cart: Users can add books to their cart.
- Update Quantities: Modify item quantities.
- Remove Items: Delete items from the cart.
- Checkout Process: Users can review their cart and place an orders.
- Order Review: Confirm cart items before purchase.
- Efficient Connectivity: Secure and optimized MySQL database connection.
- CRUD Operations: Create, Read, Update, Delete operations.
- Error Handling: Handles database failures gracefully.
- Optimization: Uses connection pooling and prepared statements.
- Design: Clean and intuitive interface.
- Responsiveness: Works on all screen sizes.
- Usability: Simple and user-friendly.
- Product Categories and Filters: Improved browsing experience.
- Optimized Performance: Fast and efficient loading times.
-
Clone the Repository:
git clone https://github.com/afiqnik/The_Bookstore_Website.git cd The_Bookstore_Website
-
Install Docker Desktop (instead of MySQL)
Since this project now uses Docker Compose, install Docker Desktop from here and ensure it is running.
-
Start the Database with Docker Compose:
The database credentials are already configured in the docker-compose.yml file, so there is no need to modify them.
docker compose up -d
This will start the MySQL database inside a container.
-
Configure the Application:
The application is configured to connect to the local MySQL database started by Docker. No additional configuration is needed, but if you want to manually update the properties, they can be found in
src/main/resources/application-local.properties
. -
Run the Application:
./mvnw spring-boot:run
-
Access the Application:
Open your browser and go to http://localhost:8080
The application is deployed using Railway for the backend and AlwaysData for the database.
We welcome contributions! 🎉 Fork the repository, make changes, and submit a pull request.
@hendisantika – Added Flyway for database migration, Testcontainers, GitHub Actions, and Spring Docker Compose support (PR #9).
This project is licensed under the MIT License - see the LICENSE file for details.
For any queries or issues, please open an issue in the GitHub repository.
Thank you for visiting the Bookstore Website project!