This is a Spring Boot application that implements the Orders and Notifications Management System. It provides a set of RESTful APIs to manage customer accounts, product orders, and notifications. The system allows customers to view available products, place orders, and receive notifications about their orders.
- User account creation and management
- Viewing available products
- Placing single and compound orders
- Printing order details
- Payment and shipment of orders
- Notification system for order-related events
- Statistics for notifications sent
- (Bonus) Order cancellation and automated notification removal
To run the application locally, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/orders-and-notifications.git
-
Navigate to the project directory:
cd orders-and-notifications -
Build and run the application:
./mvnw spring-boot:run
The application will be accessible at http://localhost:8080.
- GET /customer?id={customerId}: Get customer information by ID.
- POST /addCustomer: Add a new customer.
- GET /viewProducts: View all available products.
- POST /addSingleOrder?productId={productId}: Add a single order.
- POST /addCompoundOrder: Add a compound order.
- GET /printOrderDetails?orderId={orderId}: Print order details.
- GET /pay?orderId={orderId}: Pay for an order.
- GET /shipOrder?orderId={orderId}: Ship an order.
- POST /cancelOrder?orderId={orderId}: Cancel an order.
- POST /notification: Create a notification.
Use Postman to test the APIs. Import the provided Postman collection for easy access to API endpoints.
- Fork the project.
- Create your feature branch:
git checkout -b feature/new-feature - Commit your changes:
git commit -m 'Add new feature' - Push to the branch:
git push origin feature/new-feature - Open a pull request.
This project is licensed under the Faculty of Computers and Artificial Intelligence (FCAI) Cairo University License.