Files
hackerspace.sh/docs/FUNCTIONALITY_TRACKER.md

11 KiB

Functionality Tracker - Hackerspace.sh

Purpose: Track what works vs what's broken, and document fixes as they're implemented
Last Updated: 2026-03-10


Overall Status Summary

Module Status Issues
Authentication PARTIAL Social auth buttons non-functional
Dashboard WORKING Minor: stats may not load if no data
Tasks WORKING All CRUD operations functional
Projects WORKING All CRUD operations functional
Members WORKING All CRUD operations functional
Contacts WORKING All CRUD operations functional
Payments PARTIAL Only cash/CSV import works
Comms (Chat) BROKEN Messages don't show up - RLS issue
Ops MOSTLY BROKEN Tabs non-functional, missing pages
Settings PARTIAL Integrations UI-only
Import BROKEN UI mockup only, no functionality

Critical Issues (Blocking)

1. Chat Messages Not Showing

Status: BROKEN
Symptoms: Users can send messages but they don't appear in the chat
Root Cause: RLS policy issue - messages are being inserted but not selected back

Analysis:

  • comms_messages table has RLS policies:
    • messages_select_members (SELECT)
    • messages_insert_members (INSERT)
  • The select policy likely checks space_id membership but may have issues
  • Client-side code does direct query: supabase.from('comms_messages').select('*').eq('channel_id', ...)
  • Realtime subscription may also be blocked by RLS

Fix Required:

  1. Check RLS policy definition for messages_select_members
  2. May need to join through space_members to verify membership
  3. Realtime needs correct RLS configuration

Fix Status: [ ] NOT STARTED


2. Ops Page Tabs Non-Functional

Status: BROKEN
Symptoms: Clicking tabs does nothing - they're purely decorative buttons Root Cause: No state management, no tab content switching

Analysis:

  • Tabs are static buttons with no onClick handlers that change state
  • No conditional rendering based on selected tab
  • No client component for tab state

Fix Required:

  1. Convert to client component or add client tab wrapper
  2. Add state for active tab
  3. Add tab content for: Knowledge Base, Processes, Secrets & Credentials, Area Leads

Fix Status: [ ] NOT STARTED


3. Missing Pages - /ops/new and /ops/[id]

Status: BROKEN
Symptoms: Links to /ops/new and /ops/[id] return 404

Fix Required:

  1. Create /app/(app)/ops/new/page.tsx - Form to create KB entry
  2. Create /app/(app)/ops/[id]/page.tsx - View/edit KB entry

Fix Status: [ ] NOT STARTED


4. Import Page - Non-Functional

Status: BROKEN
Symptoms: File upload doesn't work, buttons do nothing Root Cause: UI mockup only with no actual functionality

Fix Required:

  1. Add actual file input handler
  2. Implement CSV parsing (use Papa Parse)
  3. Implement column mapping logic
  4. Connect to importMembers and importPaymentsCsv server actions

Fix Status: [ ] NOT STARTED


Payment Platform Integration Research

PayPal

API Available: YES
Method: REST API (Transaction Search API)
Documentation: https://developer.paypal.com/docs/transaction-search/

Integration Approach:

  1. OAuth 2.0 authentication with Client ID + Secret
  2. GET /v1/reporting/transactions endpoint
  3. Returns transaction history with payer info, amounts, dates
  4. Can filter by date range, status, etc.

Required Credentials:

  • Client ID
  • Client Secret
  • Sandbox/Live mode toggle

Implementation Complexity: MEDIUM
Status: [ ] NOT IMPLEMENTED


Venmo

API Available: NO (Official)
Method: CSV Export only (Manual)
Documentation: N/A

Reality Check:

  • Venmo does NOT provide a public API for businesses
  • Business accounts can download CSV from web dashboard
  • URL hack available to download full year: manipulate startDate and endDate params
  • Unofficial Python wrapper exists but not recommended

Integration Approach:

  1. CSV Import ONLY - no live API integration possible
  2. Provide instructions for users to export from Venmo web
  3. Parse Venmo CSV format (Date, Amount, Fees, Note, From/To)

Required Credentials: None (CSV import only)

Implementation Complexity: LOW (CSV parsing only)
Status: [ ] NOT IMPLEMENTED


Zeffy

API Available: NO
Method: CSV Export only (Manual)
Documentation: https://support.zeffy.com/how-do-i-export-my-donation

Reality Check:

  • Zeffy is a free nonprofit fundraising platform
  • NO public API available
  • Users must manually export CSV from dashboard
  • Export includes: donor name, email, amount, date, form name

Integration Approach:

  1. CSV Import ONLY - no live API integration
  2. Provide instructions for Zeffy export
  3. Parse Zeffy CSV format

Required Credentials: None (CSV import only)

Implementation Complexity: LOW (CSV parsing only)
Status: [ ] NOT IMPLEMENTED


Cash

API Available: N/A
Method: Manual entry
Status: WORKING

The logCashPayment server action is fully functional.


Module-by-Module Analysis

Authentication Module

Feature Status Notes
Email/Password Login WORKING Uses Supabase Auth
Email/Password Signup WORKING Creates member record on trigger
Password Reset NOT IMPLEMENTED No forgot password page
Google OAuth BROKEN Button exists, not configured
GitHub OAuth BROKEN Button exists, not configured
Sign Out WORKING Server action works

Fixes Needed:

  • Remove non-functional OAuth buttons OR implement properly
  • Add forgot password flow

Dashboard Module

Feature Status Notes
Task summary WORKING Shows open tasks
Project summary WORKING Shows active projects
Payment stats WORKING Shows unlinked payments
Activity feed WORKING Shows recent activity
Quick actions WORKING Links work

No Critical Fixes Needed


Tasks Module

Feature Status Notes
Create task WORKING Full form with all fields
Claim task WORKING Updates status
Complete task WORKING Marks done
Delete task WORKING Removes task
Filter tasks WORKING By status, area
Search tasks WORKING Client-side search

No Critical Fixes Needed


Projects Module

Feature Status Notes
Create project WORKING Full form
Update status WORKING Kanban-style status changes
Delete project WORKING Removes project
View details PARTIAL No dedicated detail page

Minor Improvement: Add project detail page


Members Module

Feature Status Notes
View members WORKING Table with all info
Add member WORKING Admin-only form
Update member WORKING Edit modal
Remove member WORKING Admin-only delete
Approve pending WORKING For self-signup members
Payment status WORKING Shows overdue status

No Critical Fixes Needed


Contacts Module

Feature Status Notes
Create contact WORKING Full form
Update contact WORKING Edit modal
Delete contact WORKING Removes contact
Filter by type WORKING Vendors, Sponsors, etc.

No Critical Fixes Needed


Payments Module

Feature Status Notes
Log cash payment WORKING Form works
Import CSV PARTIAL Action exists but UI broken
Link to member WORKING Assignment works
View history WORKING Table displays
PayPal sync NOT IMPLEMENTED Needs API integration
Venmo sync NOT POSSIBLE CSV import only
Zeffy sync NOT POSSIBLE CSV import only

Fixes Needed:

  • Implement PayPal API integration
  • Fix CSV import UI
  • Add Venmo/Zeffy CSV format parsers

Comms (Chat) Module

Feature Status Notes
View channels WORKING List loads
Select channel WORKING UI updates
Send message BROKEN Inserts but no display
View messages BROKEN RLS blocks select
Real-time updates BROKEN Subscription may fail
Create channel NOT IMPLEMENTED No UI

Critical Fixes Needed:

  • Fix RLS policy for message selection
  • Test realtime subscription
  • Add channel creation UI

Ops Module

Feature Status Notes
Knowledge Base list WORKING Shows entries
KB entry detail BROKEN Page doesn't exist
KB create BROKEN Page doesn't exist
KB edit BROKEN Page doesn't exist
Processes tab NOT IMPLEMENTED Tab decorative
Secrets tab NOT IMPLEMENTED Tab decorative
Area Leads tab NOT IMPLEMENTED Tab decorative
Search KB NOT IMPLEMENTED Input decorative

Critical Fixes Needed:

  • Create /ops/new page
  • Create /ops/[id] page
  • Make tabs functional
  • Implement search

Settings Module

Feature Status Notes
Space settings WORKING Name, city, etc.
Member tiers PARTIAL UI exists, actions work
Payment config UI ONLY Platform toggles decorative
Integrations UI ONLY PayPal/etc forms don't save
Webhook config WORKING Secret rotation works

Fixes Needed:

  • Connect payment platform toggles
  • Make integration saves functional

Import Module

Feature Status Notes
CSV upload BROKEN No file handler
Column mapping BROKEN UI mockup only
Preview BROKEN No data
Execute import BROKEN No functionality
Database connector BROKEN UI mockup only

Critical Fixes Needed:

  • Implement full CSV import flow
  • Connect to existing server actions

Fix Priority Order

  1. CRITICAL - Chat messages (core feature completely broken)
  2. CRITICAL - Ops tabs and pages (half the page non-functional)
  3. HIGH - Import page (needed for onboarding)
  4. HIGH - Payment CSV import (Venmo/Zeffy require this)
  5. MEDIUM - PayPal API integration (only platform with API)
  6. LOW - OAuth buttons (remove or implement)
  7. LOW - Password reset (nice to have)

Implementation Progress

Fix 1: Chat Messages

  • Audit RLS policy for comms_messages
  • Fix SELECT policy to allow member access
  • Test message sending and receiving
  • Verify realtime subscription works

Fix 2: Ops Module

  • Create /ops/new page with form
  • Create /ops/[id] page with view/edit
  • Add client component for tab switching
  • Implement Processes tab content
  • Implement Secrets tab content
  • Implement Area Leads management
  • Add working search

Fix 3: Import Module

  • Add file input with onChange handler
  • Install and use Papa Parse for CSV
  • Build column mapping state machine
  • Create preview table
  • Connect to importMembers action
  • Connect to importPaymentsCsv action

Fix 4: Payment Platform Integration

  • Build PayPal OAuth flow
  • Implement transaction fetch
  • Build Venmo CSV parser
  • Build Zeffy CSV parser
  • Create unified import UI

Notes

  • Database schema is solid, most issues are frontend/RLS
  • Server actions are comprehensive, just need UI connections
  • Most "broken" features have backend support, just need wiring