How akash2236/stikcoins works
Stikbook is a mock rewards wallet and merchant POS: customers claim rewards, find nearby shops, redeem products with an OTP/QR, and merchants approve checkout while balances and transaction history update. React dashboards use shared context to communicate with an Express API backed by in-memory state; the backend can send OTP and receipt emails through Brevo. The README documents geolocation, map discovery, and polling capabilities; some wiring is not visible in the sampled excerpts, so uncertain links are omitted.
Main entry points: App.jsx App Router · CustomerDashboard.jsx Customer Dashboard · AppContext.jsx Shared App Context · server.js REST API
Components 17
Customer App
- App Router
src/App.jsx - Login
src/pages/LoginPage.jsx - Customer Dashboard
src/pages/CustomerDashboard.jsx - Shared App Context
src/context/AppContext.jsx - Shop Catalog
src/data/appData.js - Legacy Emulator
src/components/StikcoinsScreen.jsx - Sound Effects
src/utils/soundEffects.js
Merchant POS
- Merchant POS
src/pages/ShopkeeperDashboard.jsx
Backend Services
- REST API
backend/server.js - In-Memory State
backend/server.js - Email Sender
backend/utils/brevo.js
External Integrations
- Device GPS
- Map Tiles
- Brevo Email API
Other components
- Customer
- Shopkeeper
- Customer Inbox
Connections 18
- Customer → App Router: uses
- App Router → Login: routes
- App Router → Customer Dashboard: routes
- App Router → Merchant POS: routes
- App Router → Legacy Emulator: routes
- Login → Shared App Context: signs in via
- Customer Dashboard → Shared App Context: requests rewards
- Customer Dashboard → Shop Catalog: reads catalog
- Customer Dashboard → Device GPS: gets location
- Customer Dashboard → Map Tiles: loads tiles
- Shopkeeper → Merchant POS: uses
- Merchant POS → Shared App Context: approves orders
- Shared App Context → REST API: calls API
- REST API → In-Memory State: reads and writes
- REST API → Email Sender: sends OTP and receipt
- Email Sender → Brevo Email API: dispatches email
- Brevo Email API → Customer Inbox: delivers email
- Shared App Context → Sound Effects: plays sounds