A robust enterprise-grade solution for managing dynamic product catalogs, inventory control, and customer orders. Built with Java and Spring Boot, this system handles complex business rules, user authentication, and automated notifications within a modular and testable architecture.
- π Description
- π Getting Started
- ποΈ Project Management
- π€ Contributing
- π₯ Team
- π License
Developed as a collaborative group assignment, this project implements a full lifecycle for e-commerce operations. From secure user registration with email verification to complex order state management, the system is designed to be reliable, secure, and extensible.
- Authentication & Security: Secure user registration with mandatory email verification.
- Dynamic Catalog: Flexible management of products with customizable attributes and categories.
- Order Engine: Automated order processing with configurable business rules and state transitions.
- Inventory Control: Real-time stock monitoring and management to prevent overselling.
- Automated Notifications: Integrated email service for order confirmations and status updates.
- Admin Backoffice: A dedicated interface for administrators to manage the entire ecosystem.
- Backend: Java 17+ with Spring Boot
- Testing: Unit and Integration testing with JUnit and Mockito
- Architecture: RESTful API principles and Layered Architecture
- Version Control: GitLab (Enterprise workflow)
- Project Management: JIRA (Agile/Scrum)
- Java JDK 17 or higher.
- Maven 3.6+ for dependency management.
- A relational database (e.g., MySQL or PostgreSQL) as configured in
application.properties.
-
Clone the repository:
git clone git@github.com:SebaB29/SistemaDePedidos.git cd order-management-system -
Configure Environment: Update the
src/main/resources/application.propertiesfile with your database credentials and SMTP settings for email notifications. -
Build the project:
mvn clean install
-
Run the application:
mvn spring-boot:run
This project was developed using Agile practices. We utilized JIRA to manage our sprint backlog, track issues, and ensure a continuous delivery flow. The repository follows a strict branching strategy on GitLab to maintain code quality through Peer Reviews.
- Fork the project.
- Create your Feature Branch (git checkout -b feature/AmazingFeature).
- Commit your changes (git commit -m 'Add some AmazingFeature').
- Push to the Branch (git push origin feature/AmazingFeature).
- Open a Pull Request.
| Name |
|---|
| Sebastian Brizuela |
| Matias Rueda |
| JuliΓ‘n Rando |
| AgustΓn Vallcorba |
| Lucas Gimenez |
| Nicolas Penedo |
| JoaquΓn Czerwiak |
This project is licensed under the MIT License - see the LICENSE file for details.