How jangbersahaja/fishon-market works
Fishon.my is a fishing-charter marketplace for anglers and captains. The principal journey is discovering and comparing charters, selecting a trip, submitting a booking through manual or payment-enabled flows, and receiving a booking outcome; accounts support follow-up bookings, messages, notifications, and reviews. The README also documents bilingual presentation, a blog CMS, analytics, promotions, and captain-side integrations. Booking and payment relationships are grounded in the sampled API handlers; other capability links reflect documented product scope, with uncertain internal wiring omitted.
Main entry points: create/route.ts Booking creation · create-guest/route.ts Guest booking · create-manual/route.ts Manual booking · trip-service.ts Trip data
Components 23
Charter marketplace
- Browse and search
src/app/[locale]/(marketplace)/search/page.tsx - Search results
src/app/[locale]/(marketplace)/search/SearchResultsClient.tsx - Charter details
src/app/[locale]/(marketplace)/charters/[id]/page.tsx
Bookings and payments
- Booking creation
src/app/api/bookings/create/route.ts - Guest booking
src/app/api/bookings/create-guest/route.ts - Manual booking
src/app/api/bookings/create-manual/route.ts - Booking records
src/lib/database/prisma.ts - Payment gateway
src/lib/payment/payment-gateway.ts - SenangPay
src/lib/payment/senangpay.ts - Payment callback
src/app/api/payment/senangpay-callback/route.ts - Payment effects
src/lib/payment/payment-side-effects.ts
Accounts and engagement
- Angler account
src/app/[locale]/(account)/account/page.tsx - Messaging
src/lib/services/message-service.ts - Pusher realtime
src/lib/pusher/server.ts - Reviews
src/lib/services/review-service.ts - Notifications
src/lib/services/notification-service.ts - Blog and CMS
src/lib/services/blog-service.ts
Platform services
- Trip data
src/lib/services/trip-service.ts - Captain data
src/lib/database/prisma-captain.ts - Analytics
src/lib/analytics-service.ts - Localization
src/i18n/config.ts
Other components
- Angler
- Captain services
Connections 30
- Angler → Browse and search: searches
- Browse and search → Search results: shows results
- Search results → Charter details: opens charter
- Charter details → Booking creation: submits booking
- Angler → Guest booking: books as guest
- Angler → Manual booking: requests booking
- Booking creation → Trip data: fetches trip
- Guest booking → Trip data: fetches trip
- Manual booking → Trip data: fetches trip
- Trip data → Captain data: reads charter data
- Booking creation → Booking records: creates records
- Guest booking → Booking records: creates records
- Manual booking → Booking records: creates record
- Booking creation → Payment gateway: creates intent
- Guest booking → Payment gateway: creates intent
- Payment gateway → SenangPay: initiates payment
- SenangPay → Payment callback: returns payment
- Payment callback → Booking records: updates status
- Payment callback → Payment effects: triggers effects
- Booking creation → Messaging: creates conversation
- Manual booking → Messaging: creates conversation
- Messaging → Pusher realtime: dispatches realtime
- Angler → Angler account: manages bookings
- Angler account → Reviews: submits feedback
- Angler → Blog and CMS: reads articles
- Booking creation → Analytics: tracks booking
- Guest booking → Analytics: tracks booking
- Manual booking → Analytics: tracks booking
- Charter details → Captain services: lists charter
- Angler → Localization: chooses language