An AP Classroom-style Algebra 1 End of Course (EOC) practice platform with AI-powered features, designed for both students and teachers. The platform provides unlimited practice questions, real-time progress tracking, AI-powered micro-mistake detection, and comprehensive analytics.
- Provide comprehensive Algebra 1 EOC preparation
- Support both student and teacher workflows
- Offer unlimited, dynamically generated practice questions
- Enable AI-powered mistake analysis using Together AI
- Track student progress with detailed analytics
- Provide quick assessment through micro pop-up quizzes
- Students: Practice algebra topics, track progress, get AI feedback
- Teachers: Monitor student performance, view class analytics
- Secure authentication using Replit Auth (supports Google, GitHub, email/password)
- Role selection on first login (student or teacher)
- Persistent sessions with database storage
- Topic Practice: All Algebra 1 topics with unlimited dynamically generated questions
- AI Micro-Mistake Detection: Submit work for detailed AI analysis and feedback
- Micro Pop-up Quizzes: Quick 5-question quizzes for rapid assessment
- Progress Tracking: View mastery levels, question history, and performance trends
- Hints System: Progressive hints available during practice
- Real-time Feedback: Immediate answer validation with explanations
- Student Analytics: View individual student progress and performance
- Class Overview: Monitor class-wide statistics and engagement
- Performance Tracking: Identify struggling students and difficult topics
- Framework: React with TypeScript
- Routing: Wouter
- UI Components: Shadcn UI + Radix UI
- Styling: Tailwind CSS
- State Management: TanStack Query (React Query)
- Forms: React Hook Form with Zod validation
- Runtime: Node.js with Express
- Database: PostgreSQL (Neon)
- ORM: Drizzle ORM
- Authentication: Replit Auth (OpenID Connect)
- Session Storage: PostgreSQL (connect-pg-simple)
- AI Integration: Together AI API
- Primary Color: Educational blue (220 85% 45%)
- Typography: Inter (UI), JetBrains Mono (code/math)
- Spacing: Consistent 2-4-6-8-12-16-20 scale
- Components: Material Design inspired with educational adaptations
users: User accounts with role (student/teacher)topics: All Algebra 1 topicsattempts: Student question attemptsprogress: Student progress per topicquizSessions: Micro quiz sessionsmistakeAnalyses: AI mistake detection resultssessions: Session storage (required for Replit Auth)
- Landing Page (
/): Logged-out users - Role Selection (
/role-selectionor/): First-time authenticated users (role is NULL) - Student Dashboard (
/or/student/dashboard): Students after role selection - Teacher Dashboard (
/or/teacher/dashboard): Teachers after role selection - Practice Page (
/practice/:topicId): Topic practice - AI Mistake Detection (
/ai-mistake-detection): Submit work for AI analysis - Progress Page (
/progress): Detailed progress tracking - Practice Test (
/practice-test): Timed EOC exam simulations - Assignments (
/assignments): Teacher create / student view & submit assignments - Analytics (
/analytics): Performance charts with recharts (daily, topic mastery, weaknesses) - Messages (
/messages): Teacher-student messaging interface - Progress Report (
/progress-report): Exportable/printable progress report with certificate
/api/auth/user: Get authenticated user/api/user/role: Update user role/api/topics: Get all topics/api/questions/generate: Generate practice question/api/attempts: Submit answer attempt/api/progress: Get user progress/api/stats: Get user statistics/api/quiz/start: Start micro quiz/api/quiz/submit: Submit quiz answers/api/ai/analyze-mistakes: AI mistake detection/api/teacher/stats: Teacher class statistics/api/teacher/students: Student performance data/api/practice-test/start: Start timed practice test/api/practice-test/submit: Submit practice test (server-side grading)/api/practice-test/history: Get practice test history/api/assignments: CRUD for teacher assignments/api/assignments/:id: Assignment details with ownership checks/api/assignments/:id/submit: Submit assignment (server-side grading)/api/analytics: Student performance analytics data/api/messages: Send/receive messages with ownership validation/api/export/progress-report: Export progress report data
- Linear Equations and Inequalities
- Systems of Linear Equations
- Quadratic Functions and Equations
- Polynomials and Factoring
- Exponential Functions
- Radical Expressions
- Rational Expressions
- Functions and Relations
- Statistics and Data Analysis
- Probability
DATABASE_URL: PostgreSQL connection stringSESSION_SECRET: Session encryption secretTOGETHER_API_KEY: Together AI API key for mistake detectionREPL_ID: Replit deployment IDREPLIT_DOMAINS: Allowed domains for OAuth callbacksISSUER_URL: OAuth issuer URL
- Schema changes: Update
shared/schema.ts, then runnpm run db:push - Frontend: Add components to
client/src/componentsorclient/src/pages - Backend: Add routes to
server/routes.ts, storage methods toserver/storage.ts - Testing: Use
npm run devfor development server
- March 8, 2026: Implemented question uniqueness: no repeated questions across practice, tests, quizzes, assignments using fingerprint tracking (getUserSeenQuestionTexts + generateUniqueQuestionForTopic)
- March 8, 2026: Made analytics fully cumulative: stats, analytics, teacher views aggregate data from attempts + practiceTests + quizSessions + assignmentSubmissions
- March 8, 2026: Added 5 new features: Practice Test mode, Teacher Assignments, Analytics with recharts, Messaging, Progress Report/Certificate export
- March 8, 2026: Fixed server-side grading for practice tests and assignments (no longer trusts client-provided scores)
- March 8, 2026: Added ownership/authorization checks on assignment deletion, message read, and assignment detail routes
- March 8, 2026: Fixed assignment detail flow for completed submissions (proper completed state display)
- March 8, 2026: Added 4 new DB tables: practiceTests, assignments, assignmentSubmissions, messages
- October 15, 2025: Fixed critical role selection flow - removed default role assignment to enable proper role selection for all users
- October 15, 2025: Implemented topic-specific question generation for all 9 Algebra 1 subjects using keyword matching on topic titles
- October 15, 2025: Fixed TopicCard icon imports (replaced SquareRoot with Radical for lucide-react compatibility)
- October 15, 2025: Added unique constraint to progress table on (userId, topicId) and implemented manual upsert logic to avoid Drizzle ON CONFLICT issues
- October 15, 2025: Added explicit routes for /student/dashboard and /teacher/dashboard in addition to "/" for better URL clarity
- October 15, 2025: Successfully tested end-to-end flow: login → role selection → practice → progress tracking → teacher analytics
- Initial project setup with complete schema and frontend components
- Implemented all Algebra 1 topic coverage
- Built role-based dashboards for students and teachers
- Created AI-powered mistake detection interface
- Developed micro pop-up quiz system
- Implemented comprehensive progress tracking
- Educational, clean design inspired by AP Classroom
- Minimal animations for professional feel
- Accessibility-first approach (WCAG AA compliance)
- Mobile-responsive design
- Dark mode support
- Database-first approach with Drizzle ORM for type safety
- Replit Auth for simplified authentication
- Together AI for cost-effective, powerful AI analysis
- React Query for efficient data fetching and caching
- Component-based architecture for reusability