How shanjay-k/shan-mart works
SHAN MART is a Servlet-based marketplace for buyers, sellers, and admins. Users browse/search listings, manage carts and wishlists, check out, track orders, and review products; sellers manage listings and incoming orders, while admins audit and moderate. Controllers handle HTTP workflows, with services for authentication and commerce rules and DAOs for persistence. The README documents additional dashboard and profile capabilities. Source excerpts show service-to-DAO and chat-provider calls; several controller routes and broader wiring are documented but their implementations were not sampled.
Main entry points: ShopService.java Commerce rules · ChatService.java Chat handling · ShopServlet.java Catalog and listings · AuthService.java Authentication rules
Components 28
Web workflows
- Request encoding
src/main/java/com/shanjay/mart/filter/EncodingFilter.java - Access control
src/main/java/com/shanjay/mart/filter/AuthFilter.java - Catalog and listings
src/main/java/com/shanjay/mart/controller/ShopServlet.java - Product details
src/main/java/com/shanjay/mart/controller/ProductServlet.java - Cart workflow
src/main/java/com/shanjay/mart/controller/CartServlet.java - Checkout
src/main/java/com/shanjay/mart/controller/CheckoutServlet.java - Order tracking
src/main/java/com/shanjay/mart/controller/OrdersServlet.java - Product reviews
src/main/java/com/shanjay/mart/controller/ReviewServlet.java - Wishlist portal
src/main/java/com/shanjay/mart/controller/WishlistServlet.java - Role dashboards
src/main/java/com/shanjay/mart/controller/DashboardServlet.java - Account profile
src/main/java/com/shanjay/mart/controller/ProfileServlet.java
Commerce services
- Commerce rules
src/main/java/com/shanjay/mart/service/ShopService.java
Identity and access
- Login and registration
src/main/java/com/shanjay/mart/controller/LoginServlet.java - Logout
src/main/java/com/shanjay/mart/controller/LogoutServlet.java - Authentication rules
src/main/java/com/shanjay/mart/service/AuthService.java
Marketplace persistence
- User records
src/main/java/com/shanjay/mart/dao/UserDAO.java - Product records
src/main/java/com/shanjay/mart/dao/ProductDAO.java - Cart records
src/main/java/com/shanjay/mart/dao/CartDAO.java - Order records
src/main/java/com/shanjay/mart/dao/OrderDAO.java - Review records
src/main/java/com/shanjay/mart/dao/ReviewDAO.java - Wishlist records
src/main/java/com/shanjay/mart/dao/WishlistDAO.java - H2 marketplace data
AI assistant
- Chat endpoint
src/main/java/com/shanjay/mart/controller/ChatServlet.java - Chat handling
src/main/java/com/shanjay/mart/service/chat/ChatService.java - Gemini provider
src/main/java/com/shanjay/mart/service/chat/GeminiChatProvider.java - Mock fallback
src/main/java/com/shanjay/mart/service/chat/MockChatProvider.java
Other components
- Marketplace users
- Gemini service
Connections 41
- Marketplace users → Request encoding: sends HTTP
- Request encoding → Access control: passes requests
- Access control → Catalog and listings: routes requests
- Marketplace users → Catalog and listings: browses listings
- Marketplace users → Product details: opens product
- Marketplace users → Cart workflow: manages cart
- Marketplace users → Checkout: submits order
- Checkout → Commerce rules: calls checkout
src/main/java/com/shanjay/mart/controller/CheckoutServlet.java - Commerce rules → Cart records: reads cart
src/main/java/com/shanjay/mart/service/ShopService.java - Commerce rules → Order records: creates order
src/main/java/com/shanjay/mart/service/ShopService.java - Commerce rules → Cart records: clears cart
src/main/java/com/shanjay/mart/service/ShopService.java - Marketplace users → Order tracking: tracks orders
- Marketplace users → Product reviews: submits reviews
- Marketplace users → Wishlist portal: saves products
- Marketplace users → Role dashboards: views dashboard
- Marketplace users → Account profile: updates profile
- Marketplace users → Login and registration: signs in
- Login and registration → Authentication rules: authenticates
src/main/java/com/shanjay/mart/service/AuthService.java - Authentication rules → User records: reads and writes
src/main/java/com/shanjay/mart/service/AuthService.java - Marketplace users → Logout: signs out
- Marketplace users → Chat endpoint: asks assistant
- Chat endpoint → Chat handling: processes message
src/main/java/com/shanjay/mart/controller/ChatServlet.java - Chat handling → Gemini provider: queries primary
src/main/java/com/shanjay/mart/service/chat/ChatService.java - Chat handling → Mock fallback: falls back
src/main/java/com/shanjay/mart/service/chat/ChatService.java - Gemini provider → Gemini service: sends prompt
- Catalog and listings → Product records: searches listings
src/main/java/com/shanjay/mart/controller/ShopServlet.java - Product details → Commerce rules: uses commerce rules
src/main/java/com/shanjay/mart/controller/ProductServlet.java - Cart workflow → Commerce rules: manages cart
src/main/java/com/shanjay/mart/controller/CartServlet.java - Wishlist portal → Commerce rules: manages wishlist
src/main/java/com/shanjay/mart/controller/WishlistServlet.java - Product reviews → Commerce rules: validates review
src/main/java/com/shanjay/mart/controller/ReviewServlet.java - Role dashboards → Commerce rules: loads statistics
src/main/java/com/shanjay/mart/controller/DashboardServlet.java - Account profile → Authentication rules: updates account
src/main/java/com/shanjay/mart/controller/ProfileServlet.java - Commerce rules → Product records: manages products
src/main/java/com/shanjay/mart/service/ShopService.java - Commerce rules → Wishlist records: manages wishlist
src/main/java/com/shanjay/mart/service/ShopService.java - Commerce rules → Review records: stores reviews
src/main/java/com/shanjay/mart/service/ShopService.java - Cart records → H2 marketplace data: reads and writes
- Order records → H2 marketplace data: transacts orders
- Product records → H2 marketplace data: reads and writes
- User records → H2 marketplace data: reads and writes
- Review records → H2 marketplace data: reads and writes
- Wishlist records → H2 marketplace data: reads and writes