A production-ready full-stack touch typing application built with Next.js, TypeScript, Prisma, and PostgreSQL.
The system delivers structured lessons with real-time WPM and accuracy tracking, server-validated progression logic, persistent performance history, and dynamic PDF certificate generation.
Deployed on Vercel.
- Real-time keystroke processing with performance-conscious state updates
- Server-side validation of session results and progression logic
- Relational data modeling using Prisma and PostgreSQL
- Secure authentication and protected routes via NextAuth
- Client-side certificate generation using html2pdf.js
- Structured lesson progression
- Real-time WPM and accuracy calculation
- Character-level typo detection
- Persistent session history
- Performance statistics per lesson
- Downloadable PDF certificates
Next.js (App Router), TypeScript
Prisma ORM, PostgreSQL
NextAuth
Vercel
WPM = (Total Characters Typed ÷ 5) ÷ Time (in minutes)
Accuracy = (Correct Keystrokes ÷ Total Keystrokes) × 100
All metrics are computed in real time during active typing sessions.
- Adaptive difficulty based on error patterns
- Leaderboard with aggregation queries and indexing
- Per-key error analytics and keyboard heatmap
- Server-side anti-manipulation verification
- Test coverage and API rate limiting