Stratpoint Engineering

Next.js Fullstack Training

Sign in with your Stratpoint Google account to continue.

Next.js Fullstack
Next.js Fullstack Training
Section

The Capstone Repository (Weeks 5–12)

Starting Week 5, each intern forks the official capstone repo and builds their own complete, independent version of ProjectFlow — a Kanban-style project management tool like Trello or Asana.

Step 1 — Fork and Clone (Day 1 of Week 5)

Do NOT clone the original repo directly. You must fork it first so you have your own copy to push to.

# 1. Go to: https://github.com/stratpoint-engineering/nextjs-internship-capstone
# 2. Click "Fork" → create under YOUR GitHub account

# 3. Clone YOUR fork:
git clone https://github.com/YOUR-USERNAME/nextjs-internship-capstone.git
cd nextjs-internship-capstone/project

# 4. Install deps
pnpm install

# 5. Copy env template and fill in values (provided at onboarding)
cp .env.example .env.local

# 6. Run database setup
pnpm db:generate && pnpm db:migrate

# 7. Start dev server
pnpm dev   # → http://localhost:3000

Pro Tip

Add the original as upstream so you can pull future mentor updates:

git remote add upstream https://github.com/stratpoint-engineering/nextjs-internship-capstone.git

To sync later: git fetch upstream && git checkout main && git merge upstream/main

Repository Structure

PathWhat's insideYou edit this?
project/Main Next.js 16 application. All your code lives here.Yes — primary workspace
project/app/App Router pages and layouts.Yes
project/components/Shared React components. ui/ for Shadcn, modals/ for dialogs.Yes
project/lib/db/Drizzle schema, migrations, and database client.Yes
project/hooks/Custom React hooks.Yes
project/stores/Zustand stores for global client-side state.Yes
project/types/TypeScript definitions shared across the app. Full coverage pre-built.Yes — extend as needed
docs/Program documentation: setup guide, timeline, code review standards.No — reference only
tasks/Task breakdown and individual development approach guide.No — reference only

Key Documents Inside the Repo — When to Read Each

When to ReadDocumentWhat It Covers
Day 1 Week 5docs/DEVELOPMENT_SETUP.mdFork & clone steps, branch naming, available scripts, file structure, getting help policy.
Day 1 Week 5tasks/INDIVIDUAL_DEVELOPMENT_APPROACH.mdHow the fork strategy works, when to sync upstream, and Vercel deployment steps.
Day 1 Week 5docs/TIMELINE_MILESTONES.mdOfficial 12-week timeline with phase-by-phase milestones and deliverable dates.
Week 5 — ongoingtasks/tasks-capstone-project-management-tool.mdFull feature backlog for ProjectFlow. Pick tasks from here each sprint.
Week 7 onwardsdocs/CODE_REVIEW_GUIDE.mdReview standards: PR descriptions, what reviewers check, turnaround expectations.
Week 11project/README.mdMain app docs and Vercel deployment guide.

Direct Links to All Repo Documents

Repo Tech Stack vs This Handbook — What to Upgrade

The repo was initialised in Feb 2026. The table below shows each tool, what version is in the repo, what this handbook targets, and what action you need to take.

ToolIn RepoHandbook TargetAction Required
Next.js16.1.616.x latest No action — compatible
React1919 No action — matches
TypeScript5.95.5+ No action — 5.9 exceeds minimum
Tailwind3.3 (config.js)v4 (CSS-first) pnpm add tailwindcss@latest → replace config with @import in globals.css (Chapter 5.4)
AuthClerk (planned)Clerk v6 Use Clerk v6 — the repo is Clerk-configured. Better Auth is the standalone option in Chapter 5.
ORMDrizzle ORMDrizzle ORM v2 pnpm add drizzle-orm@latest drizzle-kit@latest → check migrate syntax (Chapter 5.6)
StateZustand (planned)Zustand + useOptimistic() Both used in capstone — Zustand for global UI, useOptimistic() for mutations
TestingJest + Playwright (planned)Vitest v2 + Playwright pnpm remove jest && pnpm add -D vitest @vitejs/plugin-react
LintingESLint + PrettierBiome v1 pnpm remove eslint prettier && pnpm add -D @biomejs/biome && pnpm biome init
Node.js18+ LTS22 LTS fnm install 22 && fnm use 22 (Next.js 16 requires ≥18, program standard is 22)
pnpm10.10.0+9.x+ Either version works — use whichever is installed
DeployVercel (manual recommended)VercelFollow project/README.md for Vercel setup. GitHub Actions workflow is included in the repo but is disabled by default and not required.

Environment Variables Required

# project/.env.local  (NEVER commit this file)

# Neon Postgres
DATABASE_URL="postgresql://user:pass@host/db?sslmode=require"

# Clerk v6
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_test_..."
CLERK_SECRET_KEY="sk_test_..."
NEXT_PUBLIC_CLERK_SIGN_IN_URL="/sign-in"
NEXT_PUBLIC_CLERK_SIGN_UP_URL="/sign-up"
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL="/dashboard"
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL="/dashboard"
CLERK_WEBHOOK_SECRET="whsec_..."

Common Mistake

NEVER commit .env.local to Git.

Before your first commit, confirm: cat .gitignore | grep .env — must show ".env*.local".

Accidentally committed a secret? Tell your mentor NOW. The key must be rotated immediately.

Capstone Available Scripts (run from project/ directory)

CommandWhat it does
pnpm devStart dev server with Turbopack → http://localhost:3000
pnpm buildProduction build. Run before every PR to catch errors.
pnpm type-checkTypeScript check without emitting (tsc --noEmit)
pnpm testRun tests (replace with Vitest after migration)
pnpm test:e2eRun Playwright E2E tests
pnpm db:generateGenerate Drizzle SQL migration files from schema changes
pnpm db:migrateApply pending migrations to the database
pnpm db:studioOpen Drizzle Studio — browser UI to inspect and edit data

Capstone Git Workflow

Keep it simple. You work alone on your fork — no shared branch to protect.

SituationWhat to do
Day-to-day workCommit directly to main. Push at end of every session.
Risky experiment you might discardUse a feature branch: git checkout -b feat/try-something
Dependency upgrades or config changesCommit directly to main with a clear commit message: chore(deps): upgrade tailwind to v4
Something broke and you want to revertgit reset --soft HEAD~1 to undo the last commit and try again

Pro Tip

Commit directly to main on your fork — no PRs required during the capstone.

Use feature branches if you're experimenting with something you might want to throw away.

Use Conventional Commits format for all commits: feat(auth): add Clerk middleware protection

The only formal code review in this program is on your Foundations 1 and 2 project submissions.