Project Tracker
Task checklist by person, decisions log, and naming conventions for the ActivityFox project.
| Person | Role | Focus |
|---|
| Greg | Developer | Frontend, backend, infrastructure |
| Narayana | Tech Client | n8n workflows, vendor data scraping, integrations |
| Eric | Founder | Product direction, business strategy, naming |
- ActivityFox — the marketplace platform
- CampScout — the consumer-facing planner/scheduler feature (formerly KAMp Planner)
%%{init: {'theme': 'neutral'}}%%
graph TD
Org["Organisation<br/><i>e.g. City Sports Club Inc.</i>"]
V1["Vendor Account<br/><i>e.g. John Smith (coach)</i>"]
V2["Vendor Account<br/><i>e.g. Sarah Lee (manager)</i>"]
A1["Activity<br/><i>After School Soccer</i>"]
A2["Activity<br/><i>Weekend Art Workshop</i>"]
S1["Session<br/><i>Term 1 Mon/Wed 3–5pm</i>"]
S2["Session<br/><i>Term 1 Sat 9–11am</i>"]
S3["Session<br/><i>Sunday 10am–12pm</i>"]
Org -->|"has members"| V1
Org -->|"has members"| V2
V1 -->|"creates"| A1
V2 -->|"creates"| A2
A1 -->|"has sessions"| S1
A1 -->|"has sessions"| S2
A2 -->|"has sessions"| S3
style Org fill:#e0e7ff,stroke:#4f46e5,color:#000
style V1 fill:#fef3c7,stroke:#d97706,color:#000
style V2 fill:#fef3c7,stroke:#d97706,color:#000
style A1 fill:#d1fae5,stroke:#059669,color:#000
style A2 fill:#d1fae5,stroke:#059669,color:#000
style S1 fill:#fce7f3,stroke:#db2777,color:#000
style S2 fill:#fce7f3,stroke:#db2777,color:#000
style S3 fill:#fce7f3,stroke:#db2777,color:#000
| Level | What it is | Example | Notes |
|---|
| Organisation | Legal entity or business | City Sports Club Inc. | Optional — solo vendors don't need one |
| Vendor | Person with an account who creates activities | John Smith | A vendor can belong to an organisation |
| Activity | A program/offering | After School Soccer | Has category, age range, location, description |
| Session | A specific scheduled run of an activity | Term 1 Mon/Wed 3–5pm | Has dates, times, capacity, price. Becomes a Sharetribe listing on publish |
- Single purchase per session (not subscription)
- Cart supports adding multiple sessions, checkout as one transaction
- Each session booking = one Sharetribe transaction
| Status | Task | Priority | Notes |
|---|
| :white_check_mark: | Docs reorganisation (client/technical split + Mermaid) | — | Done 2026-03-19 |
| :black_square_button: | Send Narayana n8n credentials | High | Coolify/Hetzner instance creds |
| :black_square_button: | Send Narayana link to n8n public template examples | High | See scraping resources below |
| :black_square_button: | Cart functionality — single purchase flow | High | Discussed 2026-03-19 with Eric |
| :black_square_button: | Organisation model — add org entity above vendor | Medium | New Supabase table + API |
| :black_square_button: | Session naming — finalise terminology (session vs class vs event) | Medium | Align with Eric |
| :black_square_button: | Sharetribe Console configuration | Medium | Categories, listing type, search schema |
| :black_square_button: | Transaction process expansion (cancel/refund + EOI) | Medium | Requires flex-cli |
| :black_square_button: | Port Replit design components | Low | Visual pass, Montserrat font, orange primary |
| :black_square_button: | CampScout branding in planner/scheduler UI | Low | Rename from KAMp Planner |
| Status | Task | Priority | Notes |
|---|
| :black_square_button: | Set up n8n scraping workflows for vendor/org discovery | High | Waiting on creds from Greg |
| :black_square_button: | Identify target sources for activity vendor data | High | Local directories, council sites, Google Maps |
| :black_square_button: | n8n sync workflows (Supabase → Meilisearch) | Medium | Full sync, seat tracking, like counts |
| :black_square_button: | Test scraping pipeline end-to-end | Medium | Scrape → normalize → load to Supabase |
| Status | Task | Priority | Notes |
|---|
| :black_square_button: | Finalise session/class/event naming convention | High | What do parents call it? |
| :black_square_button: | Confirm cart UX for single-purchase model | High | Review when Greg builds it |
| :black_square_button: | Approve CampScout branding/positioning | Medium | Consumer-facing planner name |
| :black_square_button: | Define organisation onboarding flow | Medium | How do orgs claim their profile? |
| :black_square_button: | Review vendor dashboard UX | Low | When Greg sends staging link |
Greg: Send Narayana the following:
- n8n instance URL (Coolify/Hetzner)
- Login credentials
- Any API keys needed (Google Maps, etc.)
Public n8n templates useful for vendor/org scraping:
Located at: ~/repos/n8n/n8n-nodes-sharetribe/workflows/public-templates/
Relevant for post-scrape workflows:
sync-new-users-to-mailchimp.json — pattern for syncing scraped vendors to external systems
auto-approve-users-by-type.json — auto-approve scraped vendor accounts
%%{init: {'theme': 'neutral'}}%%
flowchart LR
A["Source<br/>(Google Maps,<br/>council sites,<br/>directories)"] -->|"HTTP Request<br/>node"| B["Scrape<br/>Raw Data"]
B -->|"Function<br/>node"| C["Normalize<br/>(name, category,<br/>address, contact)"]
C -->|"Supabase<br/>node"| D["Insert to<br/>vendor_signups<br/>table"]
D -->|"Manual review"| E["Approve &<br/>Create Vendor<br/>Account"]
| Decision | Detail | Decided By |
|---|
| Platform name | ActivityFox | Eric |
| Planner name | CampScout (was KAMp Planner) | Eric |
| Purchase model | Single purchase per session, cart for multi-session checkout | Eric + Greg |
| Vendor hierarchy | Organisation → Vendor → Activity → Session | All |
| Vendor sourcing | n8n scraping workflows | Narayana |