How zzstar101/fish works
FISH (鱼小应) is a campus-only secondhand marketplace built around on-campus, in-person handoffs—not platform payment or shipping. A user signs in, finds or publishes a listing, and can chat with its owner; a buyer can also post a wish, which the background worker matches against listings and turns into an in-app notification. The parties can then propose and complete a meetup transaction. Groups reflect product stages and supporting runtime layers. The README documents several capabilities whose detailed source was not sampled; those are represented at domain level without implying unverified internal calls.
Main entry points: app.ts HTTP API · schema PostgreSQL · conversations Chat and realtime · realtime WebSocket hub
Components 21
User experiences
- Mobile web
apps/web/src - PC web
apps/web-pc/src - Miniapp
apps/miniapp/src
Marketplace
- Campus identity
apps/api/src/modules/auth - Listings and search
apps/api/src/modules/listings - Media uploads
apps/api/src/modules/uploads - Content moderation
apps/api/src/modules/moderation
Matching and communication
- Wish wall
apps/api/src/modules/wishes - Match jobs
apps/worker/src/jobs/matching - Job worker
apps/worker/src/index.ts - In-app notifications
apps/api/src/modules/notifications - Chat and realtime
apps/api/src/modules/conversations - WebSocket hub
apps/api/src/modules/realtime
Meetup and governance
- Meetup transactions
apps/api/src/modules/transactions - Profiles
apps/api/src/modules/profile - Admin governance
apps/api/src/modules/admin
Platform runtime
- HTTP API
apps/api/src/app.ts - Shared contracts
packages/contracts/src - PostgreSQL
packages/db/src/schema - S3 storage
Other components
- Campus users
Connections 35
- Campus users → Mobile web: use
- Campus users → PC web: use
- Campus users → Miniapp: use
- Mobile web → HTTP API: HTTP requests
- PC web → HTTP API: HTTP requests
- Miniapp → HTTP API: API requests
- Mobile web → WebSocket hub: WebSocket
- PC web → WebSocket hub: WebSocket
- HTTP API → Shared contracts: validates against
- HTTP API → Campus identity: dispatches
- HTTP API → Listings and search: dispatches
- HTTP API → Media uploads: dispatches
- HTTP API → Content moderation: dispatches
- HTTP API → Wish wall: dispatches
- HTTP API → In-app notifications: dispatches
- HTTP API → Chat and realtime: dispatches
- HTTP API → WebSocket hub: mounts
- HTTP API → Meetup transactions: dispatches
- HTTP API → Profiles: dispatches
- HTTP API → Admin governance: mounts
- HTTP API → PostgreSQL: reads and writes
- Job worker → Match jobs: runs jobs
- Match jobs → PostgreSQL: reads and writes
- Match jobs → In-app notifications: creates notifications
- Media uploads → S3 storage: presigns and verifies
- Listings and search → PostgreSQL: reads and writes
- Wish wall → PostgreSQL: reads and writes
- Campus identity → PostgreSQL: reads and writes
- Chat and realtime → PostgreSQL: reads and writes
- Chat and realtime → WebSocket hub: publishes events
- Meetup transactions → PostgreSQL: reads and writes
- Meetup transactions → Chat and realtime: writes system messages
- In-app notifications → PostgreSQL: reads and writes
- Profiles → PostgreSQL: reads
- Admin governance → PostgreSQL: reads and writes