Week-by-Week Build Guide — CA Compliance Tracker (Worked Example)
Detailed homework milestones for the CA compliance tracker — goal, done criteria, and Claude Code starting prompt for each week. Use this if you chose the CA tracker as your parallel project.
This guide is the complete week-by-week path for the CA compliance tracker parallel project. If you chose a different project, the weekly structure is the same — scaffold → UI → Supabase → secondary feature → dashboard → status updates → polish — but the specific prompts will differ. Use this as a worked example to understand the pattern, then adapt each week's starting prompt for your own domain.
Each week below is a self-contained homework session of 2–3 hours. Each week has:
- A clear goal (one sentence)
- What "done" looks like (so you know when to stop)
- The starting prompt to paste into Claude Code
You are not expected to understand every line Claude writes. You are expected to read it, test it in the browser, and move on.
Week 3 Homework — Scaffold the App
Goal: Get an empty app running locally and deployed to Vercel.
Done when:
npm run devstarts without errors- The app opens in your browser at
localhost:3000and shows something (even a blank page) - The app is deployed to Vercel at
[your-name].vercel.app - The repo is on GitHub
Starting prompt:
After the session: Open your Vercel URL on your phone and show a family member. You have shipped something. It may be empty — it is real.
Week 4 Homework — Client List (UI Only)
Goal: Build the client list page with add/edit functionality — no database yet.
Done when:
- A "Clients" page exists at
/clients - You can add a new client using a form (name, GSTIN, entity type, state, email)
- The list shows all clients you added
- Clients persist while the page is open (local state is fine — no Supabase yet)
- The form validates that GSTIN, if provided, is exactly 15 characters
Starting prompt:
What to do after Claude builds it: Test every validation rule manually. Enter a 14-character GSTIN. Enter a 9-digit phone number. Try submitting with an empty legal name. Each of these should show an error. If any don't — debug it before Week 5.
Week 5 Homework — Connect to Supabase
Goal: Replace local state with real Supabase data. Clients now persist between sessions.
Done when:
- You can log in with your email and password (Supabase Auth)
- Clients are saved to the
clientstable in Supabase - Closing the browser and reopening still shows the same clients
- Adding a client works and shows in the list without page refresh
Prerequisite: Create your Supabase project (see Schema & Setup page). Have the project ref, URL, and anon key ready.
Starting prompt:
After the session: Add three real clients from your practice. This is the moment the app becomes real.
Week 6 Homework — Compliance Tasks
Goal: For each client, add compliance tasks with type, period, and due date.
Done when:
- Clicking on a client opens a detail page at
/clients/[id] - The client detail page shows the client's information at the top
- Below it is a list of compliance tasks
- A button opens a form to add a new task: type (select), period (text), due date (date picker)
- New tasks appear in the list immediately without page refresh
Starting prompt:
Test this: Add 5 real compliance tasks for one of your real clients. Make sure the dates are correct.
Week 7 Homework — Dashboard View
Goal: A single page that shows everything due in the next 7 days and everything overdue.
Done when:
- A "Dashboard" page exists at
/(the home page) - It shows two sections: "Due this week" and "Overdue"
- Each item shows: client name, task type, period, due date
- Items in "Overdue" are shown with a red accent
- Clicking an item navigates to the client detail page
- If nothing is due this week, show a friendly "All clear for this week" message
Starting prompt:
Test this: Set a task's due date to yesterday. Confirm it appears in Overdue, not Due This Week.
Week 8 Homework — Status Updates
Goal: Mark tasks as filed. Record the actual filing date. Add notes.
Done when:
- Each task row has an "Update Status" button or a status dropdown
- Clicking it opens a small form: new status (select), filed date (if filing), filing reference number (ARN, optional), notes (optional)
- After updating, the task immediately reflects the new status
- Filed tasks disappear from the dashboard (the "due this week" and "overdue" sections)
- Filed tasks are still visible on the client detail page (in a "Completed" section at the bottom)
Starting prompt:
Test this: Mark a task as filed. Confirm it disappears from the dashboard. Confirm it still appears on the client detail page in the "Completed" section.
Week 9 Homework — Polish + Real Data
Goal: The app works on mobile. Real clients are in. Pre-launch audit passes.
Done when:
- The app looks and works correctly on your phone (375px screen)
- Your actual clients are added (not just test data)
- Compliance tasks for the current month are added for each real client
- The pre-launch audit skill runs with no Critical findings
Starting prompt:
After the session: Add all your real CA clients and their current month's compliance tasks. This makes the demo real.
Week 10 Homework — Go Live
Goal: Deploy the production version. Everything works. Nothing crashes.
Done when:
- The app is deployed to Vercel production (not just preview)
- You can log in on your phone and see your real data
- You have run through the full flow: add a client, add a task, update it to filed — works cleanly
- You are ready to demo it on Friday
Starting prompt:
The demo script: You have 3 minutes. Start with the problem ("Every month I need to track deadlines for X clients across GST, ITR, and audits — manually"). Show the dashboard. Show one client's task list. Add a new task. File it. Show it disappear from the dashboard. End with "I built this in 8 weeks of homework, alongside the School ERP. It's running on my real client data right now."
Demo the real version, not a staging version. Real client names (with permission) make the demo real. Fake names make it look like a tutorial. Your audience can tell the difference.