Files
hackerspace.sh/docs/FUNCTIONALITY_TRACKER.md
T

412 lines
11 KiB
Markdown

# 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