How shippexdevs/shippex works
Shippex is a Spring Boot backend for user accounts and shipping-related product and order management. The main user workflow is registering and verifying a phone number with an OTP, signing in for a JWT, browsing products, and placing or managing orders; administrators have separate account and order-management capabilities. Redis supports OTP state, MongoDB is the application’s documented database, and WhatsApp delivery is an external integration. Dashboard, admin-order, and notification components are represented from the repository tree, but their internal calls are not verified by the sampled sources.
Main entry points: OtpService.java OTP verification · AppUserController.java Account API · AppUserService.java User accounts · ProductController.java Product API
Components 22
Identity and accounts
- Account API
src/main/java/com/shippex/controller/AppUserController.java - User accounts
src/main/java/com/shippex/service/AppUserService.java - User authentication
src/main/java/com/shippex/controller/AuthController.java - OTP verification
src/main/java/com/shippex/service/impl/OtpService.java
Products and orders
- Product API
src/main/java/com/shippex/controller/ProductController.java - Product catalog
src/main/java/com/shippex/service/ProductService.java - Order API
src/main/java/com/shippex/controller/OrderController.java - Order management
src/main/java/com/shippex/service/OrderService.java
Admin operations
- Admin authentication
src/main/java/com/shippex/controller/AdminAuthController.java - Admin accounts
src/main/java/com/shippex/controller/AdminController.java - Admin services
src/main/java/com/shippex/service/AdminService.java - Admin orders
src/main/java/com/shippex/controller/AdminOrderController.java - Dashboard
src/main/java/com/shippex/service/impl/DashboardServiceImpl.java
External integrations
- WhatsApp messaging
src/main/java/com/shippex/service/impl/WhatsAppService.java - Meta WhatsApp API
Persistence and security
- User records
src/main/java/com/shippex/repository/AppUserRepository.java - Product records
src/main/java/com/shippex/repository/ProductRepository.java - Order records
src/main/java/com/shippex/repository/OrderRepository.java - Redis state
- MongoDB
Other components
- Platform user
- Administrator
Connections 22
- Platform user → Account API: manages profile
src/main/java/com/shippex/controller/AppUserController.java - Account API → User accounts: delegates updates
src/main/java/com/shippex/controller/AppUserController.java - Platform user → User authentication: signs in
README.md - Platform user → OTP verification: requests verification
README.md - OTP verification → Redis state: stores OTP state
src/main/java/com/shippex/service/impl/OtpService.java - OTP verification → WhatsApp messaging: sends OTP
src/main/java/com/shippex/service/impl/OtpService.java - WhatsApp messaging → Meta WhatsApp API: sends message
src/main/java/com/shippex/service/impl/WhatsAppService.java - Platform user → Product API: browses catalog
- Product API → Product catalog: delegates catalog
src/main/java/com/shippex/controller/ProductController.java - Platform user → Order API: places orders
- Order API → Order management: delegates orders
src/main/java/com/shippex/controller/OrderController.java - Administrator → Admin authentication: signs in
README.md - Administrator → Admin accounts: manages admins
src/main/java/com/shippex/controller/AdminController.java - Admin accounts → Admin services: delegates management
src/main/java/com/shippex/controller/AdminController.java - Administrator → Admin orders: manages orders
- Administrator → Dashboard: views metrics
- User accounts → User records: uses repository
- Product catalog → Product records: uses repository
- Order management → Order records: uses repository
- User records → MongoDB: persists users
- Product records → MongoDB: persists products
- Order records → MongoDB: persists orders