AutoPartsEstoreSystem is a server-side web application developed as a personal project for learning purposes. It allows users to browse, search, and simulate the purchase of automobile parts based on vehicle make, model, and engine type. The system includes key functionalities such as advanced search, part grouping, order management, and secure payment simulation via Stripe, as well as invoice generation.
NOTE: This project is developed as a personal learning project and is not intended for production use. Certain security features, optimizations, and production-level safeguards may be limited or simulated.
- Advanced search system based on vehicle brand, model, and engine type
- Part grouping to refine search results (e.g., braking system, engine components)
- Order management for tracking and processing purchases
- Secure payment processing with various payment methods
- Invoice generation for order transactions
- PDF invoice emailing to automatically send invoices to customers
- User registration and login system
- Secure checkout process supporting various payment methods
- Spring Framework: Core Framework for building enterprise Java applications.
- Spring Boot DevTools: Tools for improving development efficiency with features like automatic restarts and live reload.
- Spring Boot Validation: Ensures that the data being processed adheres to specified rules and constraints.
- Spring Security: Provides authentication and authorization for Spring applications
- Spring Crypto: Provides utilities for cryptographic operations in Spring applications
- Spring Boot Test: Provides testing support for Spring Boot applications.
- Spring Security Test: Provides testing support for Spring Security authentication and authorization.
- Project Lombok: Library for reducing boilerplate code in Java.
- MapStruct: Used for mapping between domain entities and DTOs.
- Stripe: Library for handling secure online payment transactions.
- JUnit5: Testing framework for unit and integration testing in Java.
- Mockito: Framework for creating mock objects in automated testing.
- Jacoco: A tool for measuring and reporting code coverage.
- Codecov: Tool for measuring and tracking code coverage, integrated with CI/CD pipelines to ensure code quality.
- CircleCI: CI/CD platform for continuous integration and automated testing.
- H2 Database: In-memory relational database for development and testing purposes.
- JSON: Data interchange format for communication between the client and the server.
The primary objective of this project is to develop a comprehensive backend system within a monolithic architecture for an automobile parts purchasing application as a learning and portfolio project. The backend manages core functionalities, such as searching for parts based on vehicle specifics, securely processing payments, invoicing, and generating order confirmations, showcasing foundational skills in backend development.
- Project setup and initialization
- Database design and entity modeling
- Implementation of CRUD operations for managing parts, brands, and models
- Development of advanced search functionality based on vehicle specifications
- Integration of order management, payment processing, and invoice generation
- Implementation of user authentication and registration system
- Testing, debugging, and optimization
- Integration with CircleCI for continuous integration and automated testing
- Deployment and final adjustments
This project is licensed under the MIT License - see the LICENSE file for details.