This project is a Spring Boot web application that allows users to manage inventory for a bike shop.
It includes functionality for managing in-house parts, outsourced parts, and products, along with custom validation rules and a responsive UI.
-
π¨ Custom HTML UI
- Added shop name, product names, and part names across all pages
- Integrated Bootstrap for responsive design and improved UX
- Cleaned and validated HTML to follow W3C standards
-
π·οΈ About Page
- Added an βAbout Usβ landing page for the shop
- Linked it to the main screen with navigation buttons
- Added support for images and custom CSS
-
π¦ Sample Inventory
- Preloaded the app with 5 products and 5 parts on startup
- Ensures users have working data without manual entry
-
π Buy Now Feature
- Each product has a Buy Now button
- Decrements product inventory on purchase (does not affect part inventory)
- Displays success or failure messages after a transaction
-
π Inventory Constraints
- Added maximum and minimum inventory fields to parts
- UI forms updated to include input fields for
MIN_INVandMAX_INV - Product and part tables display these fields
-
β Validation
- Custom validation ensures inventory is between min and max values
- Error messages display when:
- Inventory is below minimum
- Inventory exceeds maximum
- Product creation would lower part inventory below minimum
- Created reusable annotations and validators for cleaner code
-
π§ͺ Unit Testing
- Implemented JUnit tests for
MIN_INVandMAX_INVgetters/setters - Validates business logic and enforces data integrity
- Implemented JUnit tests for
-
π§Ή Code Cleanup
- Removed unused imports and validators
- Refactored controllers for consistency
- Promoted clean code practices throughout the project
- β Java 21
- π± Spring Boot 3 / Spring Framework 6
- π’οΈ MySQL (in progress)
- π Spring Web β REST & MVC
- ποΈ Spring Data JPA β persistence layer
- π MySQL Connector/J β DB connection
- π¦ Jackson β JSON serialization
- π§ͺ Spring Boot Starter Test β unit testing
- π§βπ» VS Code β IDE
- π Git & GitHub β version control