Loading...
Loading...
Loading...
A comprehensive job hunt tracking dashboard built with Next.js 15, Catalyst UI, and Prisma.
# GoodCraft Application Dashboard - Setup Complete! 🎉
## Project Overview
A comprehensive job hunt tracking dashboard built with Next.js 15, Catalyst UI, and Prisma.
**Location:** `/Users/nathan/code/work/goodcraft-application-dashboard`
---
## Tech Stack (Locked In ✅)
### Core Framework
- **Next.js 15** (App Router)
- **React 19**
- **TypeScript 5.8+**
- **Tailwind CSS v4**
### UI Components
- **Catalyst UI Kit** - Professional components from Tailwind team
- All 27 components available in `src/components/`
- Table, Badge, Button, Input, Select, Sidebar, etc.
### Database
- **SQLite** (development) - Easy local development
- **Prisma ORM** - Type-safe database client
- 5 models ready:
- `Application` - Job applications tracker
- `RevenueWeek` - Weekly revenue tracking
- `NetworkContact` - Network/outreach tracker
- `ContentPost` - Content calendar
- `WeeklyReview` - Weekly review system
### Key Dependencies
```json
{
"@headlessui/react": "^2.2.6",
"@heroicons/react": "^2.2.0",
"clsx": "^2.1.1",
"motion": "^12.23.11",
"next": "^15",
"react": "^19",
"prisma": "^6.18.0",
"@prisma/client": "^6.18.0"
}
```
---
## What's Been Built
### ✅ Database Schema (5 Tabs)
All models defined in `prisma/schema.prisma`:
1. **Job Applications** - Track 50+ apps/week
- Fields: company, jobTitle, status, resumeVersion, source, etc.
2. **Revenue Tracking** - $8k/month goal
- Fields: tylerWorkHours, clientRevenue, templateSales, etc.
3. **Network/Outreach** - 5 contacts/week
- Fields: contactName, method, purpose, outcome, etc.
4. **Content Calendar** - 3 posts/week
- Fields: scheduledDate, topic, engagement metrics, etc.
5. **Weekly Review** - Friday check-ins
- Fields: jobApplications count, deepWorkHours, blockers, wins, etc.
### ✅ API Infrastructure
- `src/lib/api-client.ts` - Generic fetch wrapper from job-search app
- `src/lib/prisma.ts` - Prisma client singleton (prevents multiple instances)
- `src/app/api/applications/route.ts` - GET and POST endpoints with filters
### ✅ First Page Built
- `src/app/applications/page.tsx`
- Uses Catalyst Table component
- Server-side rendering (RSC)
- Displays all applications with:
- Date Applied
- Company
- Job Title
- Resume Version
- Status (with color-coded badges)
- Source
### ✅ Type Definitions
- `src/types/application.ts`
- Includes: Application, CreateApplicationInput, ApplicationFilters
---
## Project Structure
```
goodcraft-application-dashboard/
├── prisma/
│ ├── schema.prisma # 5 models for all tracking tabs
│ ├── migrations/ # Database migrations
│ └── dev.db # SQLite database
├── src/
│ ├── app/
│ │ ├── api/
│ │ │ └── applications/
│ │ │ └── route.ts # Applications API
│ │ ├── applications/
│ │ │ └── page.tsx # First tab UI
│ │ ├── (app)/ # Demo pages from Catalyst
│ │ ├── (auth)/ # Auth layouts from Catalyst
│ │ └── layout.tsx # Root layout
│ ├── components/ # All 27 Catalyst components
│ │ ├── table.tsx
│ │ ├── badge.tsx
│ │ ├── button.tsx
│ │ ├── input.tsx
│ │ ├── select.tsx
│ │ ├── sidebar.tsx
│ │ └── ...
│ ├── lib/
│ │ ├── api-client.ts # API utilities
│ │ └── prisma.ts # Database client
│ ├── types/
│ │ └── application.ts # Type definitions
│ └── styles/ # Tailwind config
├── .env # DATABASE_URL
└── package.json
```
---
## How to Run
### Start Development Server
```bash
cd /Users/nathan/code/work/goodcraft-application-dashboard
npm run dev
```
Visit: `http://localhost:3000/applications`
### Build for Production
```bash
npm run build
npm start
```
### Database Commands
```bash
# View database in Prisma Studio
npx prisma studio
# Create new migration after schema changes
npx prisma migrate dev --name your_migration_name
# Reset database (careful!)
npx prisma migrate reset
```
---
## Next Steps - Ready for Feature Agents
### Immediate Next Features (Priority Order)
1. **Add Application Form** (1-2 hours)
- Create `src/app/applications/new/page.tsx`
- Use Catalyst Input, Select, Fieldset components
- POST to `/api/applications`
- Redirect back to applications list
2. **Build Revenue Tracking Tab** (1-2 hours)
- Create `src/app/revenue/page.tsx`
- API route: `src/app/api/revenue/route.ts`
- Table showing weekly breakdown
- Calculate monthly totals and "On track?" indicator
3. **Build Network/Outreach Tab** (1 hour)
- Similar to applications
- Add "follow-up needed" filter
4. **Build Content Calendar Tab** (1 hour)
- Weekly view
- Checkboxes for completed posts
5. **Build Weekly Review Tab** (1 hour)
- Form for Friday reviews
- Display previous weeks
6. **Add Dashboard Home** (2 hours)
- Overview stats from all 5 tabs
- This week's progress
- Use Catalyst Stat component (in `src/app/stat.tsx`)
7. **Add Sidebar Navigation** (1 hour)
- Use `src/components/sidebar-layout.tsx`
- Link all 5 tabs + dashboard
8. **Filters & Search** (2 hours)
- Add Catalyst Select dropdowns for filters
- Copy filter hook pattern from job-search app
---
## Reference Code Available
From `/Users/nathan/code/plan/job-search`:
### Already Copied:
- ✅ `lib/api-client.ts` - API wrapper
### Ready to Copy:
- `features/job-search/hooks/use-job-fetcher.ts` - State management pattern
- `features/job-search/types.ts` - Filter interfaces
- `features/job-search/services/serp-service.ts:8-33` - Job board filtering logic (adaptable)
---
## Database Schema Reference
### Quick Add Data (for testing)
```typescript
// In Prisma Studio or via API
{
company: "Acme Corp",
jobTitle: "Frontend Developer",
resumeVersion: "Frontend",
status: "Applied",
source: "LinkedIn",
dateApplied: new Date()
}
```
### Status Options
- "Applied" (default)
- "Responded"
- "Interview"
- "Rejected"
- "Offer"
### Resume Version Options
- "Webflow"
- "Frontend"
- "Full-Stack"
---
## Catalyst Components You'll Use Most
| Component | File | Use Case |
|-----------|------|----------|
| Table | `table.tsx` | All data lists |
| Badge | `badge.tsx` | Status indicators |
| Button | `button.tsx` | All actions |
| Input | `input.tsx` | Forms |
| Select | `select.tsx` | Dropdowns |
| Fieldset | `fieldset.tsx` | Form groups |
| Sidebar | `sidebar.tsx` | Navigation |
| Heading | `heading.tsx` | Page titles |
| Pagination | `pagination.tsx` | Large lists |
Docs: https://catalyst.tailwindui.com/docs
---
## Build Status
✅ **Build Successful**
- No TypeScript errors
- No build errors
- 13 routes compiled
- First Load JS: ~173 KB (excellent)
---
## Environment Variables
Current `.env`:
```bash
DATABASE_URL="file:./dev.db"
```
For production (PostgreSQL):
```bash
DATABASE_URL="postgresql://user:password@host:5432/dbname"
```
Then run: `npx prisma migrate deploy`
---
## Migration from Job-Search App
**Already migrated:**
- ✅ API client pattern
- ✅ Project structure (Next.js 15 + TypeScript)
- ✅ Tailwind CSS setup
**Different approach:**
- ❌ Job-search had no database (state only)
- ✅ This has Prisma + SQLite (persistent)
- ❌ Job-search used SerpAPI
- ✅ This tracks manual entries
---
## Key Differences from Requirements Doc
**Upgrades:**
- ✅ Using SQLite instead of Excel (easier to query, filter, chart)
- ✅ Web dashboard instead of spreadsheet (better UX)
- ✅ Professional UI from Catalyst (not custom CSS)
**Still needed:**
- ⏳ Resume version templates (will be reference docs)
- ⏳ Cover letter templates (will be reference docs)
- ⏳ Bookmark folder (browser-based, not in app)
- ⏳ Daily/weekly checklists (can be built in-app or kept as markdown)
---
## Ready to Hand Off To:
1. **Feature Development Agent** - Build remaining 4 tabs
2. **UI/UX Agent** - Add sidebar navigation, dashboard home
3. **Data Import Agent** - If you have existing Excel data to import
4. **Deployment Agent** - When ready to deploy (Vercel recommended)
---
## Success Metrics
The system is ready when you can:
- ✅ Track 50 applications/week (database supports unlimited)
- ✅ See response rate calculations (need to build analytics)
- ✅ Track revenue against $8k goal (need revenue tab)
- ✅ Monitor weekly reviews (need review tab)
- ✅ Access from any device (when deployed)
---
## Commands Cheat Sheet
```bash
# Development
npm run dev # Start dev server
npm run build # Test production build
npm run lint # Check for errors
# Database
npx prisma studio # Visual database editor
npx prisma migrate dev # Create migration
npx prisma generate # Regenerate Prisma client
# Add dependencies
npm install <package>
```
---
## Next Agent Handoff
**Framework setup:** ✅ COMPLETE
**Ready for:**
- Feature development (4 remaining tabs)
- Form building (add/edit applications)
- Navigation (sidebar with all tabs)
- Dashboard (overview stats)
- Filters & search
- Data visualization (charts for weekly goals)
**Estimated time to MVP:**
- 8-12 hours of development
- 5 tabs fully functional
- Sidebar navigation
- Basic dashboard
Let's build! 🚀
> 屬於 [research/](./README.md)。涵蓋 LLM-as-Judge、Reasoning Model、評估維度、Judge 設計原則。
> ⚠️ Note (Option A): `hwp-web (planned)` is intentionally excluded/disabled in this repo snapshot.
Here are three new, highly specialized AI agents for the T20 framework:
The **LLM Judge** is LLMTrace's third security detector alongside the