Deterministic Membership Management System
Budget: $30 – $250 USD
Ace Magnets Poker — Project Summary
Ace Magnets Poker is a fully custom, Next.js‑based membership management system designed to run with absolute determinism, zero external dependencies, and complete transparency of data flow. The project is built around your engineering philosophy: **no ambiguity, no hidden state, no magic**, and every action produces a visible, verifiable result.
Below is a detailed breakdown of the system.
---
# **1. Core Architecture**
### **Framework**
- Built on **Next.js App Router**
- Uses **serverless API routes** for all data operations
- Runs entirely on the filesystem — no database required
### **Data Storage**
All persistent data is stored as JSON files in:
```
C:\amp\pcp\data\
```
Files include:
- `members.json` — active members
- `submissions.json` — join form submissions
- `archive.json` — archived former members
This ensures:
- Full transparency
- Easy debugging
- Zero vendor lock‑in
- Instant portability
---
# **2. Join System**
### **Join Page**
A public form where new players submit:
- First name
- Last name
- Email
- Phone
- Referral
- Date (auto‑generated)
### **Join API Route**
`/api/join`
- Accepts POST requests
- Appends new submissions to `submissions.json`
- Ensures every submission is stored permanently
This creates a clean pipeline from public entry → admin review.
---
# **3. Admin Dashboard**
The Admin Dashboard is the operational heart of the system.
### **Features**
- View all join submissions
- Approve or decline submissions
- Add approved players to the Master Member Database
- Edit member details inline
- Archive members instead of deleting
- Full persistence across refreshes and server restarts
### **Data Loading**
The Admin page fetches live data from:
- `/api/admin/submissions`
- `/api/admin/members`
- `/api/admin/archive`
All fetches use `{ cache: 'no-store' }` to guarantee fresh data.
---
# **4. API Routes**
### **Submissions**
```
/api/admin/submissions
```
- GET → returns all submissions
- POST → overwrites `submissions.json` with updated data
### **Members**
```
/api/admin/members
```
- GET → returns all active members
- POST → overwrites `members.json`
### **Archive**
```
/api/admin/archive
```
- GET → returns archived members
- POST → overwrites `archive.json`
All routes use a shared JSON utility (`jsonStore.ts`) for deterministic file operations.
---
# **5. Master Member Database**
The Master Member Database is the authoritative list of active players.
### **Capabilities**
- Inline editing
- Inline saving
- Full persistence
- Archiving instead of deletion
- Automatic ID preservation
- Clean UI reflecting brand colors and identity
This database is the backbone of the club’s operational workflow.
---
# **6. Archive System**
Instead of deleting members, the system now:
- Removes them from `members.json`
- Appends them to `archive.json`
This ensures:
- No data loss
- Full audit trail
- Ability to restore members later
- Clean separation between active and inactive players
---
# **7. Brand Integration**
The UI uses the Ace Magnets Poker brand palette:
| Color | Hex |
|-------|------|
| Dark Red | #780000 |
| Bright Red | #C1121F |
| Pale Cream | #FDF0D5 |
| Dark Navy | #003049 |
| Light Blue | #669BBC |
The layout, spacing, and typography reflect your design philosophy:
- Clean
- Modern
- Zero clutter
- High contrast
- Functional over decorative
---
# **8. Deterministic Engineering Workflow**
Every feature follows your ritual:
1. Create folder
2. Create placeholder file
3. Verify path
4. Add code
5. Test route directly
6. Test UI
7. Confirm persistence
8. Celebrate the milestone
This ensures:
- Zero drift
- Zero ambiguity
- Zero hidden state
- Perfect reproducibility
---
# **9. Current Status**
The system now includes:
- Fully functional Join pipeline
- Fully functional Admin Dashboard
- Fully functional Master Member Database
- Fully functional Archive system
- Fully stable API routes
- Fully persistent JSON storage
- Fully deterministic behavior
A production‑ready membership management system built from absolute zero.
Ace Magnets Poker is a fully custom, Next.js‑based membership management system designed to run with absolute determinism, zero external dependencies, and complete transparency of data flow. The project is built around your engineering philosophy: **no ambiguity, no hidden state, no magic**, and every action produces a visible, verifiable result.
Below is a detailed breakdown of the system.
---
# **1. Core Architecture**
### **Framework**
- Built on **Next.js App Router**
- Uses **serverless API routes** for all data operations
- Runs entirely on the filesystem — no database required
### **Data Storage**
All persistent data is stored as JSON files in:
```
C:\amp\pcp\data\
```
Files include:
- `members.json` — active members
- `submissions.json` — join form submissions
- `archive.json` — archived former members
This ensures:
- Full transparency
- Easy debugging
- Zero vendor lock‑in
- Instant portability
---
# **2. Join System**
### **Join Page**
A public form where new players submit:
- First name
- Last name
- Phone
- Referral
- Date (auto‑generated)
### **Join API Route**
`/api/join`
- Accepts POST requests
- Appends new submissions to `submissions.json`
- Ensures every submission is stored permanently
This creates a clean pipeline from public entry → admin review.
---
# **3. Admin Dashboard**
The Admin Dashboard is the operational heart of the system.
### **Features**
- View all join submissions
- Approve or decline submissions
- Add approved players to the Master Member Database
- Edit member details inline
- Archive members instead of deleting
- Full persistence across refreshes and server restarts
### **Data Loading**
The Admin page fetches live data from:
- `/api/admin/submissions`
- `/api/admin/members`
- `/api/admin/archive`
All fetches use `{ cache: 'no-store' }` to guarantee fresh data.
---
# **4. API Routes**
### **Submissions**
```
/api/admin/submissions
```
- GET → returns all submissions
- POST → overwrites `submissions.json` with updated data
### **Members**
```
/api/admin/members
```
- GET → returns all active members
- POST → overwrites `members.json`
### **Archive**
```
/api/admin/archive
```
- GET → returns archived members
- POST → overwrites `archive.json`
All routes use a shared JSON utility (`jsonStore.ts`) for deterministic file operations.
---
# **5. Master Member Database**
The Master Member Database is the authoritative list of active players.
### **Capabilities**
- Inline editing
- Inline saving
- Full persistence
- Archiving instead of deletion
- Automatic ID preservation
- Clean UI reflecting brand colors and identity
This database is the backbone of the club’s operational workflow.
---
# **6. Archive System**
Instead of deleting members, the system now:
- Removes them from `members.json`
- Appends them to `archive.json`
This ensures:
- No data loss
- Full audit trail
- Ability to restore members later
- Clean separation between active and inactive players
---
# **7. Brand Integration**
The UI uses the Ace Magnets Poker brand palette:
| Color | Hex |
|-------|------|
| Dark Red | #780000 |
| Bright Red | #C1121F |
| Pale Cream | #FDF0D5 |
| Dark Navy | #003049 |
| Light Blue | #669BBC |
The layout, spacing, and typography reflect your design philosophy:
- Clean
- Modern
- Zero clutter
- High contrast
- Functional over decorative
---
# **8. Deterministic Engineering Workflow**
Every feature follows your ritual:
1. Create folder
2. Create placeholder file
3. Verify path
4. Add code
5. Test route directly
6. Test UI
7. Confirm persistence
8. Celebrate the milestone
This ensures:
- Zero drift
- Zero ambiguity
- Zero hidden state
- Perfect reproducibility
---
# **9. Current Status**
The system now includes:
- Fully functional Join pipeline
- Fully functional Admin Dashboard
- Fully functional Master Member Database
- Fully functional Archive system
- Fully stable API routes
- Fully persistent JSON storage
- Fully deterministic behavior
A production‑ready membership management system built from absolute zero.