412 lines
11 KiB
Markdown
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
|