Prettier format pending files

This commit is contained in:
Builder.io 2025-11-12 05:06:07 +00:00
parent 21bb72a467
commit 159063a0aa
16 changed files with 176 additions and 62 deletions

View file

@ -68,9 +68,9 @@ export async function getCourses(req: Request) {
});
} catch (error: any) {
console.error("Error fetching courses:", error);
return new Response(
JSON.stringify({ error: "Failed to fetch courses" }),
{ status: 500, headers: { "Content-Type": "application/json" } },
);
return new Response(JSON.stringify({ error: "Failed to fetch courses" }), {
status: 500,
headers: { "Content-Type": "application/json" },
});
}
}

View file

@ -573,9 +573,18 @@ const App = () => (
{/* Ethos Guild Routes */}
<Route path="/ethos/library" element={<TrackLibrary />} />
<Route path="/ethos/artists/:userId" element={<ArtistProfile />} />
<Route path="/ethos/settings" element={<ArtistSettings />} />
<Route path="/ethos/licensing" element={<LicensingDashboard />} />
<Route
path="/ethos/artists/:userId"
element={<ArtistProfile />}
/>
<Route
path="/ethos/settings"
element={<ArtistSettings />}
/>
<Route
path="/ethos/licensing"
element={<LicensingDashboard />}
/>
<Route path="/support" element={<Support />} />
<Route path="/status" element={<Status />} />

View file

@ -174,8 +174,9 @@ export default function CreatorProfile() {
<CardContent>
<div className="flex flex-wrap gap-2">
{creator.skills.map((skill) => {
const endorsement = creator.aethex_skill_endorsements?.find(
(e) => e.skill === skill
const endorsement =
creator.aethex_skill_endorsements?.find(
(e) => e.skill === skill,
);
return (
<Badge
@ -214,7 +215,7 @@ export default function CreatorProfile() {
<span className="text-sm font-medium text-amber-300">
{creator.aethex_skill_endorsements.reduce(
(sum, e) => sum + e.count,
0
0,
)}{" "}
total endorsements
</span>

View file

@ -169,7 +169,9 @@ export default function FoundationAchievements() {
<Trophy className="h-8 w-8 text-red-400" />
<div>
<h1 className="text-3xl font-bold">Achievements</h1>
<p className="text-slate-300">Earn badges and unlock rewards</p>
<p className="text-slate-300">
Earn badges and unlock rewards
</p>
</div>
</div>
@ -200,7 +202,9 @@ export default function FoundationAchievements() {
</Card>
<Card className="bg-slate-800/30 border-slate-700">
<CardContent className="p-6">
<p className="text-sm text-slate-400 mb-1">Total Points</p>
<p className="text-sm text-slate-400 mb-1">
Total Points
</p>
<p className="text-2xl font-bold text-red-400">
{totalPoints}
</p>
@ -211,7 +215,9 @@ export default function FoundationAchievements() {
<p className="text-sm text-slate-400 mb-1">
Rarest Badge
</p>
<p className="text-2xl font-bold text-red-400">Platinum</p>
<p className="text-2xl font-bold text-red-400">
Platinum
</p>
</CardContent>
</Card>
</div>
@ -262,7 +268,9 @@ export default function FoundationAchievements() {
}`}
>
<CardContent className="p-6 flex flex-col items-center text-center">
<div className="text-5xl mb-4">{achievement.icon}</div>
<div className="text-5xl mb-4">
{achievement.icon}
</div>
<h3 className="font-bold text-white mb-2">
{achievement.name}
@ -274,7 +282,9 @@ export default function FoundationAchievements() {
<div className="flex items-center justify-center gap-2 mb-4">
<Badge
className={difficultyColors[achievement.difficulty]}
className={
difficultyColors[achievement.difficulty]
}
>
{achievement.difficulty.toUpperCase()}
</Badge>
@ -315,8 +325,9 @@ export default function FoundationAchievements() {
Start Earning Badges
</h3>
<p className="text-slate-400 mb-6 max-w-2xl mx-auto">
Sign in to track your achievements, earn points, and unlock
exclusive rewards as you progress through Foundation courses.
Sign in to track your achievements, earn points, and
unlock exclusive rewards as you progress through
Foundation courses.
</p>
<Button
onClick={() => navigate("/login")}

View file

@ -222,9 +222,7 @@ export default function FoundationCurriculum() {
key={diff.value}
onClick={() => {
setSelectedDifficulty(
selectedDifficulty === diff.value
? null
: diff.value,
selectedDifficulty === diff.value ? null : diff.value,
);
}}
className={`px-4 py-2 rounded-lg transition ${
@ -264,9 +262,7 @@ export default function FoundationCurriculum() {
key={course.id}
className="bg-slate-800/30 border-slate-700 hover:border-red-500/50 transition overflow-hidden cursor-pointer"
onClick={() =>
navigate(
`/foundation/curriculum/${course.slug}`,
)
navigate(`/foundation/curriculum/${course.slug}`)
}
>
{course.cover_image_url && (
@ -289,7 +285,9 @@ export default function FoundationCurriculum() {
</div>
<div className="flex gap-2 mb-4">
<Badge className={difficultyColors[course.difficulty]}>
<Badge
className={difficultyColors[course.difficulty]}
>
{course.difficulty.charAt(0).toUpperCase() +
course.difficulty.slice(1)}
</Badge>

View file

@ -39,7 +39,10 @@ export default function ClientContracts() {
<p className="text-slate-400 mb-6">
Contract management coming soon
</p>
<Button variant="outline" onClick={() => navigate("/hub/client")}>
<Button
variant="outline"
onClick={() => navigate("/hub/client")}
>
Back to Portal
</Button>
</CardContent>

View file

@ -39,7 +39,10 @@ export default function ClientDashboard() {
<p className="text-slate-400 mb-6">
Advanced dashboard analytics coming soon
</p>
<Button variant="outline" onClick={() => navigate("/hub/client")}>
<Button
variant="outline"
onClick={() => navigate("/hub/client")}
>
Back to Portal
</Button>
</CardContent>

View file

@ -338,7 +338,9 @@ export default function ClientHub() {
<Button
variant="ghost"
size="sm"
onClick={() => navigate(`/hub/client/projects/${project.id}`)}
onClick={() =>
navigate(`/hub/client/projects/${project.id}`)
}
>
View Details
</Button>

View file

@ -39,7 +39,10 @@ export default function ClientInvoices() {
<p className="text-slate-400 mb-6">
Invoice tracking coming soon
</p>
<Button variant="outline" onClick={() => navigate("/hub/client")}>
<Button
variant="outline"
onClick={() => navigate("/hub/client")}
>
Back to Portal
</Button>
</CardContent>

View file

@ -56,7 +56,8 @@ const mockProjects: ClientProject[] = [
{
id: 2,
name: "AI Integration Project",
description: "Integration of AI-powered features into existing game platform",
description:
"Integration of AI-powered features into existing game platform",
status: "In Progress",
progress: 45,
startDate: "2025-01-15",
@ -113,8 +114,7 @@ export default function ClientProjects() {
const matchesSearch =
project.name.toLowerCase().includes(search.toLowerCase()) ||
project.description.toLowerCase().includes(search.toLowerCase());
const matchesStatus =
!selectedStatus || project.status === selectedStatus;
const matchesStatus = !selectedStatus || project.status === selectedStatus;
return matchesSearch && matchesStatus;
});
@ -188,7 +188,7 @@ export default function ClientProjects() {
key={status}
onClick={() =>
setSelectedStatus(
selectedStatus === status ? null : status
selectedStatus === status ? null : status,
)
}
className={`px-4 py-2 rounded-lg transition ${
@ -276,8 +276,8 @@ export default function ClientProjects() {
<div className="flex items-center gap-2 text-slate-300">
<TrendingUp className="h-4 w-4 text-slate-500" />
<span>
${project.spent.toLocaleString()} /
${project.budget.toLocaleString()}
${project.spent.toLocaleString()} / $
{project.budget.toLocaleString()}
</span>
</div>
</div>

View file

@ -39,7 +39,10 @@ export default function ClientReports() {
<p className="text-slate-400 mb-6">
Detailed project reports and analytics coming soon
</p>
<Button variant="outline" onClick={() => navigate("/hub/client")}>
<Button
variant="outline"
onClick={() => navigate("/hub/client")}
>
Back to Portal
</Button>
</CardContent>

View file

@ -39,7 +39,10 @@ export default function ClientSettings() {
<p className="text-slate-400 mb-6">
Account settings and preferences coming soon
</p>
<Button variant="outline" onClick={() => navigate("/hub/client")}>
<Button
variant="outline"
onClick={() => navigate("/hub/client")}
>
Back to Portal
</Button>
</CardContent>

View file

@ -58,7 +58,7 @@ export default function OpportunityDetail() {
limit: 3,
});
setRelatedOpportunities(
relatedResult.data.filter((opp) => opp.id !== id)
relatedResult.data.filter((opp) => opp.id !== id),
);
} catch (error) {
console.error("Failed to fetch opportunity:", error);

View file

@ -139,9 +139,7 @@ export default function OpportunityPostForm() {
toast({
title: "Error",
description:
error instanceof Error
? error.message
: "Failed to post opportunity",
error instanceof Error ? error.message : "Failed to post opportunity",
variant: "destructive",
});
} finally {

View file

@ -7,11 +7,13 @@
## Session 1: The Strategic Vision (Your First Prompt)
### **User's Opening Question**
> "Ok what about labs, foundation, nexus? corp?"
**Context:** You asked about the status of the OTHER arms of AeThex (beyond Ethos Guild and GameForge which were already complete).
### **Initial Status**
- ✅ **Ethos Guild** (music marketplace) - COMPLETE
- ✅ **GameForge** (game dev platform) - COMPLETE
- ❓ **Labs** - Just landing page
@ -32,12 +34,14 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
#### **The Two Cash Registers:**
**1. NEXUS** - Scalable commission-based marketplace
- **Why:** Creators list themselves, clients post opportunities, AeThex takes 20% commission per transaction
- **Business Model:** High volume, low touch (automated)
- **Target:** Thousands of creators × thousands of opportunities = recurring revenue
- **Implementation:** Full marketplace system (profiles, opportunities, applications, messaging, contracts, payments)
**2. CORP** - High-touch enterprise consulting
- **Why:** Sell $250k+ contracts to enterprise clients
- **Business Model:** High-value, high-touch (personalized service)
- **Target:** 50-100 enterprise clients = predictable revenue
@ -46,6 +50,7 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
#### **The Community Funnel (Supporting Both):**
**3. FOUNDATION** - Non-profit top-of-funnel
- **Why:** Attract creators for FREE → educate them → when they're skilled enough, funnelize to NEXUS marketplace
- **Business Model:** Free education = trust + community = creator acquisition cost
- **Target:** 10,000+ community members → 1,000 active creators on Nexus
@ -58,7 +63,7 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
### **Your Priority Framework**
| Arm | Status | System Type | Priority | Reason |
|-----|--------|------------|----------|--------|
| -------------- | ------------ | --------------------------- | ------------------ | --------------------------------- |
| **Nexus** | Landing page | **Full marketplace** | **P1 (Critical)** | Scalable cash register |
| **Corp** | Landing page | **Client portal** | **P2 (Strategic)** | Enterprise cash register |
| **Foundation** | Landing page | **Full education platform** | **P3 (Support)** | Top-of-funnel creator acquisition |
@ -71,9 +76,11 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
### **What Was Built: Databases**
#### **Foundation System Migration**
**File:** `code/supabase/migrations/20250214_add_foundation_system.sql` (340 lines)
**Why Built:**
- Store courses, modules, lessons (curriculum)
- Track user progress through courses (engagement)
- Manage mentorship requests/sessions (support)
@ -81,6 +88,7 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
- Approve mentors (quality control)
**Tables Created:**
```
├─ foundation_courses (store educational content)
├─ foundation_course_modules (organize courses into chapters)
@ -96,9 +104,11 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
```
#### **Nexus Marketplace Migration**
**File:** `code/supabase/migrations/20250214_add_nexus_marketplace.sql` (407 lines)
**Why Built:**
- Store creator profiles (talent supply)
- Store opportunity postings (talent demand)
- Track applications (matching)
@ -107,6 +117,7 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
- Track commissions (20% split)
**Tables Created:**
```
├─ nexus_creator_profiles (creator portfolio + rates)
├─ nexus_portfolio_items (creator project showcase)
@ -126,14 +137,17 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
### **What Was Built: Admin Dashboards**
#### **Foundation Admin Dashboard**
**File:** `code/client/components/admin/AdminFoundationManager.tsx` (589 lines)
**Why Built:**
- Approve/reject mentor applications (quality gate)
- Publish/unpublish courses (content management)
- View achievement stats (monitor engagement)
**Features:**
```
├─ Mentor Approval Tab
│ └─ List pending mentors, approve with one click
@ -146,14 +160,17 @@ You clarified that **AeThex's "Go-to-Market" is 100% focused on MONETIZATION.**
```
#### **Nexus Admin Dashboard**
**File:** `code/client/components/admin/AdminNexusManager.tsx` (623 lines)
**Why Built:**
- Moderate opportunity postings (prevent spam/abuse)
- Resolve disputes between creators/clients (trust)
- Track commission revenue (financial visibility)
**Features:**
```
├─ Opportunity Moderation Tab
│ ├─ List all opportunities
@ -194,9 +211,11 @@ Nexus Admin APIs:
## Session 5: Wiring Into Admin Panel
### **What Changed**
Added Foundation & Nexus tabs to `/admin` page
**Files Modified:**
- `code/client/pages/Admin.tsx`
- Added imports for `AdminFoundationManager` and `AdminNexusManager`
- Added two new `<TabsContent>` sections in admin tabs
@ -208,18 +227,22 @@ Added Foundation & Nexus tabs to `/admin` page
## Session 6: Domain & DNS Crisis
### **What Happened**
You accidentally reset DNS on Hostinger domain.
### **Why It Matters**
- All Discord OAuth redirects depend on correct domain (`https://aethex.dev/api/discord/oauth/callback`)
- Activity manifest depends on domain (`https://aethex.dev`)
- SSL certificates depend on correct DNS
### **What Was Fixed**
- Corrected DNS records to point to Vercel
- Fixed SSL issue on root domain
### **Why This Blocks Everything**
- Users can't sign in with Discord
- All OAuth linking fails
- Activity integration fails
@ -230,10 +253,13 @@ You accidentally reset DNS on Hostinger domain.
## Session 7: The Lost Context - Full Ecosystem Audit
### **What Happened**
You said: "I'm losing myself in my own ecosystem" and asked for an audit.
### **Root Cause**
Over time, 100+ routes were created for various purposes:
- Some legacy (from before the strategic pivot to monetization)
- Some duplicate (same functionality, different paths)
- Some incomplete (routes exist but features not built)
@ -241,6 +267,7 @@ Over time, 100+ routes were created for various purposes:
### **The Routes We Found**
#### **Strategic Routes (Supporting Monetization)**
```
/nexus → Landing page for Nexus
/creators → Creator directory (NEXUS marketplace)
@ -262,6 +289,7 @@ Over time, 100+ routes were created for various purposes:
```
#### **Legacy Routes (Pre-Monetization Pivot)**
```
/consulting → OLD, duplicate of /corp
/game-development → OLD, duplicate of /gameforge
@ -276,6 +304,7 @@ Over time, 100+ routes were created for various purposes:
```
#### **Why They Exist**
Each was built for a reason at the time, but many became redundant as the business model evolved from "everything marketplace" to "focused monetization."
---
@ -283,13 +312,14 @@ Each was built for a reason at the time, but many became redundant as the busine
## Session 8: The Strategic Reset - Your Vision Clarified
### **Your Statement**
> "Our `"Go-to-Market"` Roadmap is 100% focused on one thing: Monetization.
> Our two `"cash registers"` are `NEXUS` (commissions) and `CORP` (contracts)."
### **What This Means for Routes/Systems**
| Route | Purpose | Keep/Remove |
|-------|---------|-----------|
| ------------------ | --------------------------------- | --------------------- |
| `/nexus/*` | Scalable commission marketplace | **KEEP & ENHANCE** |
| `/creators/*` | Creator supply for Nexus | **KEEP & ENHANCE** |
| `/opportunities/*` | Job demand for Nexus | **KEEP & ENHANCE** |
@ -308,6 +338,7 @@ Each was built for a reason at the time, but many became redundant as the busine
### **The Three Pillars of Monetization**
1. **NEXUS** (P1 - Scalable Cash Register)
- **Database:** ✅ Complete (407-line migration)
- **Admin:** ✅ Complete (moderation, disputes, commissions)
- **Public UI:** ❌ Needs enhancement
@ -316,6 +347,7 @@ Each was built for a reason at the time, but many became redundant as the busine
- Applications need: messaging system, contract management
2. **CORP** (P2 - Enterprise Cash Register)
- **Landing Page:** ✅ Complete
- **Client Portal:** ❌ NOT BUILT (needs `/hub/client`)
- Project tracking
@ -333,6 +365,7 @@ Each was built for a reason at the time, but many became redundant as the busine
### **Why All the Duplication Exists**
The ecosystem grew organically:
- **Early days:** Build all possible features (everything marketplace)
- **As it grew:** Added more routes, more arms, more features
- **No consolidation:** Old routes stayed even when new ones were created
@ -346,18 +379,21 @@ The ecosystem grew organically:
### **To Achieve Monetization Goals:**
1. **Enhance Nexus UI** (P1)
- The DATABASE is ready
- The ADMIN TOOLS are ready
- But the PUBLIC STOREFRONT needs work
- Users can't see the beautiful marketplace we built
2. **Build Corp Client Portal** (P2)
- The LANDING PAGE hooks customers
- But there's nowhere for PAYING CLIENTS to go
- They can't see projects, invoices, or dashboards
- You're leaving money on the table
3. **Build Foundation Public UI** (P3)
- The DATABASE is ready
- The ADMIN TOOLS are ready
- But potential creators don't see the free education
@ -385,6 +421,7 @@ Each feature exists because of ONE of these reasons:
### **Your Next Move**
Focus on making the THREE CASH REGISTERS visible to users:
- Nexus storefront (creators browse, post, apply, earn 80% commission)
- Corp portal (clients see projects, invoices, dashboards)
- Foundation curriculum (future creators learn for free)

View file

@ -20,11 +20,13 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Current Ecosystem Structure (By Business Division)
### **🟡 LABS** (Yellow) - Research & Development
**Landing Page:** `/labs`
**Sub-pages:** `/labs/explore-research`, `/labs/join-team`, `/labs/get-involved`
**Status:** ✅ Landing pages complete | ❌ Full system NOT built
**Legacy/Duplicate:**
- `/research` → ResearchLabs (OLD legacy page, same as `/labs`)
**Decision:** REMOVE `/research` route, consolidate to `/labs/*`
@ -32,9 +34,11 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
---
### **🟢 GAMEFORGE** (Green) - Game Development Platform
**Landing Page:** `/gameforge`
**Sub-pages:** `/gameforge/start-building`, `/gameforge/view-portfolio`, `/gameforge/join-gameforge`
**System Pages:**
- `/projects` - Project management
- `/projects/new` - Create project
- `/projects/:projectId/board` - Kanban board
@ -43,6 +47,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ✅ Full system COMPLETE
**Legacy/Duplicate:**
- `/game-development` (OLD, same as `/gameforge`)
**Decision:** REMOVE `/game-development` route
@ -50,10 +55,12 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
---
### **🔴 FOUNDATION** (Red) - Education & Community
**Landing Page:** `/foundation`
**Sub-pages:** `/foundation/contribute`, `/foundation/learn-more`, `/foundation/get-involved`
**Community Section (overlapping):**
- `/community` - Main community/social feed
- `/community/teams` - FoundationTeams
- `/community/about` - FoundationAbout
@ -68,6 +75,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**CRITICAL ISSUE:** `/foundation/*` and `/community/*` are DUPLICATING the same content!
**Decision:**
- `/community` should BECOME `/foundation`
- `/community/mentorship``/foundation/mentorship`
- `/community/mentor/:username``/foundation/mentors/:username`
@ -76,7 +84,9 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
---
### **🟠 ETHOS GUILD** (Orange/Red) - Music & Audio Marketplace
**Routes:**
- `/community/groups/ethos` - Guild landing
- `/ethos/library` - Track library
- `/ethos/artists/:userId` - Artist profile
@ -86,16 +96,19 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ✅ Full system COMPLETE (Supabase tables: ethos_tracks, ethos_artist_profiles)
**Decision:** CLEAN UP - Move Ethos Guild pages to organized `/ethos/*` path
- `/community/groups/ethos``/ethos` (landing)
- Rest are fine
---
### **🔵 CORP** (Blue) - Enterprise Consulting
**Landing Page:** `/corp`
**Sub-pages:** `/corp/schedule-consultation`, `/corp/view-case-studies`, `/corp/contact-us`
**Legacy/Duplicate:**
- `/consulting` (OLD DevelopmentConsulting page)
- `/services` - Services page (overlapping with Corp)
- `/engage` (Pricing, navigates to `/pricing`)
@ -105,6 +118,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ✅ Landing pages complete | ❌ Client portal `/hub/client` NOT built
**Decision:**
- REMOVE `/consulting`, `/services` (consolidate to `/corp`)
- REMOVE `/wix` and `/wix/*` routes (legacy)
- REMOVE `/engage` and `/pricing` (consolidate, decide on one pricing page)
@ -113,9 +127,11 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
---
### **🟣 NEXUS** (Purple) - Talent Marketplace
**Landing Page:** `/nexus`
**Creator Network Routes (ALREADY EXIST):**
- `/creators` - CreatorDirectory
- `/creators/:username` - CreatorProfile
- `/opportunities` - OpportunitiesHub
@ -125,6 +141,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ✅ Database complete | ⏳ UI partially built (basic directory exists, needs enhancement)
**Decision:**
- These routes are ALREADY WIRED correctly
- Need to ENHANCE with Nexus features (messaging, contracts, payments, 20% commission)
- NO changes to routes needed
@ -132,9 +149,11 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
---
### **💜 STAFF** (Purple/Internal) - Employee Portal
**Landing Page:** `/staff`
**Auth:** `/staff/login`
**Dashboard:**
- `/staff/dashboard` - Operations dashboard
- `/staff/directory` - Team directory
- `/staff/admin` - Admin tools
@ -157,7 +176,9 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
---
### **🔷 DEV-LINK** (Cyan) - External Roblox Platform
**Routes:**
- `/dev-link` - Landing page
- `/dev-link/waitlist` - Embedded iframe to dev-link.me
@ -170,6 +191,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Documentation & Learning
**Routes:**
- `/docs` (nested) - Main docs hub with sub-routes
- `/docs/getting-started`
- `/docs/platform`
@ -181,6 +203,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
- `/docs/integrations`
**Legacy/Duplicate:**
- `/tutorials` (separate Tutorials page, overlaps with `/docs/tutorials`)
**Status:** ✅ Docs complete with nested routing
@ -192,6 +215,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## User Profiles & Passport
**Routes:**
- `/profile` - User profile/settings
- `/profile/me` - User profile (same as `/profile`)
- `/profile/applications` - Job applications
@ -200,6 +224,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
- `/passport/:username` - Other user passport
**Legacy/Duplicate:**
- `/developers` - DevelopersDirectory (overlaps with `/creators`)
- `/developers/:id` (redirects to LegacyPassportRedirect)
- `/profiles` (redirects to `/developers`)
@ -208,6 +233,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ✅ Wired correctly but with legacy redirects
**Decision:**
- REMOVE legacy `/developers` and `/profiles` routes
- KEEP `/passport/*` for public profiles
- KEEP `/profile` for personal settings
@ -218,6 +244,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Community & Social
**Routes:**
- `/community` - Main social feed
- `/community/:tabId` - Dynamic tabs (legacy pattern)
- `/feed` - Alternative feed
@ -229,6 +256,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
**Status:** ⏳ Partially built
**Decision:**
- CONSOLIDATE `/teams``/squads` (keep only `/squads`)
- KEEP `/mentee-hub` (will become `/foundation/mentorship` per FOUNDATION consolidation)
- CLEAN UP `/community/:tabId` (use explicit routes instead)
@ -238,12 +266,14 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Discord Integration
**Routes:**
- `/login` - Login page (has Discord OAuth button)
- `/profile/link-discord` - Discord linking
- `/discord-verify` - Discord verification code
- `/activity` - Discord Activity SPA
**API Endpoints (NOT routes, but important):**
- `/api/discord/oauth/start`
- `/api/discord/oauth/callback`
- `/api/discord/activity-auth`
@ -259,6 +289,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Admin & Internal
**Routes:**
- `/admin` - Main admin dashboard
- `/admin/docs-sync` - Gitbook sync tool
- `/staff/*` - Staff portal (see STAFF section above)
@ -272,6 +303,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Informational & Legal
**Routes:**
- `/about` - About page
- `/contact` - Contact page
- `/get-started` - Getting started
@ -288,6 +320,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
- `/terms` - Terms of service
**Legacy/Duplicate:**
- `/wix/*` pages (legacy, overlaps with Corp info)
**Status:** ✅ Complete
@ -299,6 +332,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Internal Docs (Notion-based)
**Routes:**
- `/internal-docs/*` - 18 pages for internal governance, ops, finance, etc.
**Status:** ✅ Complete
@ -310,6 +344,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## Onboarding & Auth
**Routes:**
- `/onboarding` - Signup flow
- `/login` - Login
- `/signup` - Signup redirect
@ -326,6 +361,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
## CONSOLIDATION SUMMARY
### 🗑️ **Routes to REMOVE** (15 routes):
1. `/research` → Merge into `/labs`
2. `/game-development` → Merge into `/gameforge`
3. `/consulting` → Merge into `/corp`
@ -343,6 +379,7 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
15. `/teams` → Merge into `/squads`
### 🔄 **Routes to RENAME/REORGANIZE** (8 changes):
1. `/community``/foundation`
2. `/community/teams``/foundation/teams`
3. `/community/about``/foundation/about`
@ -353,11 +390,13 @@ You have **100+ routes** spanning 6 "arms" (business divisions), multiple system
8. `/community/:tabId` → Remove (use explicit routes)
### ✅ **Routes to ADD** (3 new):
1. `/hub/client` - Corp client portal (new system)
2. `/foundation/curriculum` - Public courses (Foundation system)
3. `/opportunities/new` - Post opportunity form (Nexus system)
### 🟢 **Routes to KEEP** (100+ routes):
All properly structured routes remain as-is
---
@ -406,22 +445,26 @@ All properly structured routes remain as-is
## Implementation Priority
### **Phase 1: Quick Wins (1-2 hours)**
1. Remove legacy routes (Wix, consulting, game-development, research)
2. Add 301 redirects where needed
3. Update navigation links
### **Phase 2: Consolidation (4-6 hours)**
1. Rename `/community``/foundation`
2. Update all internal links
3. Verify all child routes work
### **Phase 3: New Systems (P1 Priority)**
1. Add `/hub/client` (Corp portal)
2. Add `/foundation/curriculum` (Foundation courses)
3. Add `/opportunities/new` (Nexus job posting)
4. Enhance Nexus UI with messaging, contracts, payments
### **Phase 4: Documentation**
1. Update docs with new route structure
2. Update internal reference docs