Skip to content

projectamazonph/Interview-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

73 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ™οΈ Interview Lab

Amazon VA Interview Preparation Platform

AI-powered mock interviews, resume coaching, cover letter generation, and practice tests for aspiring Amazon Virtual Assistants.

Deploy with Vercel

Live Demo Β· Report Bug Β· Request Feature


✨ Features

Feature Description
AI Mock Interviews Role-specific interview sessions with real-time AI feedback and scoring
Question Bank 264+ questions across 6 VA roles and 3 difficulty levels
Resume Lab Upload resume, get AI review with truth flags and improvement suggestions
Cover Letter Studio Generate role-targeted cover letters with multiple tones
Practice Tests Timed assessments with AI-scored results
Learning Paths Beginner β†’ Intermediate β†’ Advanced guides per role
Download Center Templates, checklists, worksheets
Admin Panel Analytics dashboard and question management

πŸ’° Pricing

Free, always. Interview Lab is a free companion to Project Amazon PH Academy. All features are available to all users β€” no paid tiers.

πŸ›  Tech Stack

Layer Technology
Framework Next.js 16.1.1 (App Router, standalone)
Runtime Bun (CI uses npm)
Database Prisma v6 + PostgreSQL (PostgreSQL only)
Auth Custom JWT sessions (jose) + HttpOnly cookies
UI Tailwind CSS v4 + "Field Manual" light design system
Icons Phosphor Icons (light weight)
Fonts Space Grotesk (headings) + Plus Jakarta Sans (body)
AI Z AI Web Dev SDK for coaching, scoring, content generation
Export docx, PDF (manual builder / pdfkit), Excel (exceljs)

πŸš€ Getting Started

Prerequisites

  • Bun installed
  • Git

Setup

# Clone the repo
git clone https://github.com/projectamazonph/Interview-lab.git
cd Interview-lab

# Install dependencies
bun install

# Set up the database
bun run db:push

# Start the dev server
bun run dev

The app will be available at http://localhost:3000.

Quick Start (alternative)

bash .zscripts/dev.sh

πŸ“ Project Structure

src/
β”œβ”€β”€ app/                        # Next.js App Router
β”‚   β”œβ”€β”€ api/                    # API routes
β”‚   β”‚   β”œβ”€β”€ auth/               # Register, login, logout, email verify
β”‚   β”‚   β”œβ”€β”€ interview/          # Mock interview sessions
β”‚   β”‚   β”œβ”€β”€ questions/          # Question bank + count
β”‚   β”‚   β”œβ”€β”€ assessments/        # Practice test assessments
β”‚   β”‚   β”œβ”€β”€ profile/            # User profile (GET/PUT)
β”‚   β”‚   β”œβ”€β”€ dashboard/          # Dashboard aggregation
β”‚   β”‚   β”œβ”€β”€ subscription/       # Removed (product is free)
β”‚   β”‚   β”œβ”€β”€ resume/             # Resume upload + AI review
β”‚   β”‚   β”œβ”€β”€ cover-letter/       # Cover letter generation
β”‚   β”‚   β”œβ”€β”€ ai/                 # AI endpoints (coach, scoring, resume, cover)
β”‚   β”‚   β”œβ”€β”€ admin/              # Admin analytics + question management
β”‚   β”‚   β”œβ”€β”€ guides/             # Learning path guides
β”‚   β”‚   β”œβ”€β”€ downloads/          # Download center
β”‚   β”‚   └── export/             # DOCX/PDF/Excel export
β”‚   └── [pages]/                # Page routes
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ interview-lab/          # Page components (Field Manual design system)
β”‚   └── ui/                     # Shared primitives (field-card, field-button, etc.)
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ auth-helpers.ts         # Server-side JWT + header auth
β”‚   β”œβ”€β”€ pricing.ts              # Tier configs (currently unused β€” product is free)
β”‚   β”œβ”€β”€ subscription-guard.ts   # Feature access checks (returns allowed: true)
β”‚   β”œβ”€β”€ types.ts                # TypeScript interfaces
β”‚   └── utils.ts                # cn() utility
└── hooks/                      # Custom React hooks

prisma/                         # Prisma schema (PostgreSQL)
__tests__/                      # Test suites
β”œβ”€β”€ api/                        # API route unit tests (218 tests)
β”‚   β”œβ”€β”€ interview-session.test.ts
β”‚   β”œβ”€β”€ questions.test.ts
β”‚   β”œβ”€β”€ auth-register.test.ts
β”‚   β”œβ”€β”€ auth-login.test.ts
β”‚   β”œβ”€β”€ assessments.test.ts
β”‚   β”œβ”€β”€ profile-dashboard.test.ts
β”‚   β”œβ”€β”€ subscription.test.ts
β”‚   └── resume-coverletter.test.ts
└── components/                 # Component tests
docs/                           # PRD, architecture, feature specs
.zscripts/                      # Dev/build/startup scripts

πŸ§ͺ Testing

# Run all tests
bun test

# Run specific test file
bun test __tests__/api/resume-coverletter.test.ts

# Run API tests only
bun test __tests__/api/

Test Coverage

Test File Tests What It Covers
interview-session.test.ts 21 Session creation, answer submission, auth/authz
questions.test.ts 38 Question bank filtering, role/difficulty, structure
auth-register.test.ts 34 Registration validation, email/password, bot protection
auth-login.test.ts 26 Login flow, rate limiting, session, email sanitization
assessments.test.ts 20 Assessment list/get/submit, answer key stripping
profile-dashboard.test.ts 23 Profile whitelisting, sanitization, dashboard stats
resume-coverletter.test.ts 25 Resume CRUD, cover-letter tones, truth flags
Total 187 All API routes, all green

Tests use in-memory stubs β€” no database or server required.

πŸ“‹ Available Scripts

Command Description
bun run dev Dev server with logging
bun run build Production build (standalone)
bun run db:push Push Prisma schema to PostgreSQL
bun run db:generate Generate Prisma client
bun run test Run test suite
bun run lint ESLint check

🎨 Design System β€” "Field Manual" (light theme)

The earlier "Ethereal Glass" dark design was reverted. The live app uses a clean light "Field Manual" system.

  • Palette: Warm off-white (#FAFAF7) with subtle grain/border texture, primary orange (#FF6B35) accents
  • Colors: Ink scale for text, emerald success, amber warnings, rose danger
  • Motion: Framer Motion scroll reveals, stagger, hover physics (no custom cubic-beziers)
  • Components: FieldCard (solid surface, thin border, soft shadow), FieldButton (default/outline/ghost), FieldBadge, Alert
  • Icons: Phosphor Icons in weight="light" β€” no thick-stroked icons
  • Typography: Space Grotesk for headings, Plus Jakarta Sans for body

πŸ” Environment Variables

Variable Description
DATABASE_URL PostgreSQL connection URL
JWT_SECRET Secret for signing JWT session tokens
NEXT_PUBLIC_APP_URL App base URL

πŸ“š Documentation

  • docs/PRD.md β€” Product requirements
  • docs/BUILD_SPEC.md β€” Technical build specification
  • docs/TESTING.md β€” Testing strategy
  • docs/SECURITY.md β€” Security considerations
  • docs/DEPLOYMENT.md β€” Deployment guide
  • docs/ENGINEERING_DIARY.md β€” Development journal
  • AGENTS.md β€” AI agent context and coding standards
  • REDESIGN-PLAN.md β€” Full UI/UX redesign plan

πŸ“„ License

Private β€” Β© 2026 Ryan Roland Dabao. All rights reserved.

About

AI-powered Amazon PPC interview practice tool for Filipino VAs and eCommerce job seekers.

Topics

Resources

License

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors