This is the backend system for a flower shopping application.
The system includes both administrator pages and user pages.
Users are not allowed to access administrator pages unless their role is set to administrator.
The administrator pages include four main features:
- Product Management
- Category Management
- Order Management
- Notice Management
Session and token-based authentication are used to control access to protected APIs.
Users without valid authentication tokens are not allowed to use restricted APIs.
During order creation, optimistic locking is implemented to prevent duplicate order creation and inventory overselling.
Further, RabbitMQ is used to automatically cancel unpaid orders after a certain period of time and restore the inventory.
- Java
- Spring Boot
- MyBatis
- MySQL
- Maven
- RabbitMQ
- RESTful API
- Nginx
- AWS
- User Authentication
- Role-Based Access Control
- Product Management
- Category Management
- Order Management
- Notice Management
- Optimistic Locking
- Idempotency Protection
- Delayed Order Cancellation
- WeChat Pay Integration
- Refund Processing
- java17
- mysql
- rabbitMQ
- wechat miniprogram
- mvn environment
-
Clone this repository to your local machine.
-
Create a new MySQL database named
flowershoppingDB. -
Execute all SQL scripts in the
db-srcfolder for the created database before starting the application. -
Configure your environment settings in
application.properties. You may modify the configuration values according to your local environment.