ProductRoadmap
Track our journey as we build the future of learning for Ghanaian students. See what we're working on, what's coming next, and our long-term vision.
26
Completed
2
In Progress
11
Planned
7
Deferred
Platform Versions
Track our stable releases and upcoming milestones as we continuously improve the platform.
January 2026
- Core authentication system
- User onboarding flow
- Basic quiz functionality
- Flashcard system with spaced repetition
- Past questions bank
February 2026
- Dashboard API integration
- Real-time WebSocket updates
- Progress analytics
- Timetable management
- Exam schedule tracking
- Functional analytics charts (ApexCharts)
- Revenue breakdown cards
- Real system health alerts
- Reworked past questions filters
- Notice Board system with audience targeting
- Program-scoped timetables & exam schedules
- Modern PDF export with summary cards
- Global subscription stats & payment pagination
March 2026
- Blog & Articles (Knowledge Hub), TipTap editor, revisions, featured images, dynamic categories
- Anti-spam security hardening suite (rate limiting, CAPTCHA, MFA, HIBP, device fingerprinting)
- Email verification mandatory before login
- Session inactivity timeout (15 min student / 30 min staff)
- Request logging & IP geolocation monitoring
- IP whitelisting for admin accounts
- Jest test infrastructure with 82 integration tests (auth, user, security)
Q3 2026
- Course learning materials portal
- Educational video library
- One-month free trial on registration & email verification
- Social login (Google + X OAuth)
- AI-Assisted Mock Exam System with leaderboards
- Lecturer Revenue Share Portal + GRA tax compliance
- Research & Thesis management with AI validation
- Cyber Law reference library
Q4 2026
- Multi-tier education: SHS, JHS, and Primary support
- WASSCE and BECE past questions bank
- Mobile applications (iOS & Android)
- Offline study mode
- AI-powered study recommendations
- Collaborative study groups
What We're Building
Explore our feature pipeline from current work to future plans.
Blog & Articles (Knowledge Hub)
Dashboard blog at /dashboard/blogs: lecturers and admins create and publish articles with TipTap editor, featured images, dynamic categories, revisions, and scheduled publish. Students and lecturers see all published articles.
Touchpoints
backend blog model + routesfrontend (dashboard)/dashboard/blogs/TipTap editor, revisions, view count, role-based author displayQuiz: Save Progress & Resume
Save answers and current question index when users are in the middle of a quiz. Detect in-progress attempts and offer Resume vs Start new options.
Touchpoints
backend: in-progress attempt model/APIfrontend/src/app/(dashboard)/dashboard/quizzes/[id]/page.tsxNote
Needs backend persistence, edge case handling for tabs, expiry, and already submitted attempts.
Quiz: Functional Pass Score
Add optional passScore (0-100, default 70) to Quiz schema. Display configurable pass score on quiz start screen.
Touchpoints
backend/src/models/quiz.model.tsfrontend/src/app/(dashboard)/dashboard/quizzes/create/page.tsxfrontend/src/app/(dashboard)/dashboard/quizzes/[id]/edit/page.tsxfrontend/src/app/(dashboard)/dashboard/quizzes/[id]/page.tsxNote
passScore field (0–100, default 70) added to schema. Shown on quiz start screen; results screen evaluates Passed/Failed against the configured threshold.
Flashcards: Excel (.xlsx) Import
Accept .xlsx files directly in the create-flashcards import, parsing first sheet with column A as front and column B as back.
Touchpoints
frontend/src/app/(dashboard)/dashboard/flashcards/create/page.tsxNote
Users can currently use Excel by saving as CSV. Native .xlsx import planned for convenience.
Notice Board: Attachments Support
Allow admins to attach PDFs and images to notices with cloud storage integration and download links.
Touchpoints
backend/src/models/notice.model.tsfrontend NoticeModal.tsxNote
Consider reusing existing file upload patterns from past questions or profile images.
Notice Board: Rich Text Editor
Replace markdown textarea with WYSIWYG editor (TipTap recommended) for easier content formatting.
Touchpoints
frontend/src/components/ui/NoticeEditor.tsxfrontend/src/app/(dashboard)/dashboard/admin/notices/page.tsxNote
TipTap editor with bold, italic, underline, headings, lists, and link support. HTML rendered with dangerouslySetInnerHTML in the detail view; empty check strips tags before validation.
Notice Board: Notice Templates
Save and reuse notice templates for frequently sent announcements with predefined content and audience.
Touchpoints
backend noticeTemplate.model.tsfrontend template managementNote
Useful for admins who send similar notices frequently.
Notice Board: Recurring Notices
Schedule recurring notices (daily, weekly, monthly) with automatic publishing via cron jobs.
Touchpoints
backend notice modelcron jobsNote
Single scheduled notices are supported. Recurring adds cron complexity.
Notice Board: Analytics Dashboard
Dashboard showing notice performance with views, read rates, dismiss rates, and engagement trends over time.
Touchpoints
backend analytics endpointsfrontend admin analytics pageNote
Basic read counts included in core implementation. Full analytics is a nice-to-have.
Anti-Spam Security Hardening Suite
Full security hardening sprint triggered by a mass spam registration attack. Covers rate limiting, Cloudflare Turnstile CAPTCHA, mandatory email verification, HIBP password breach detection, MFA (TOTP + email OTP), session timeout, request logging with IP geolocation, device fingerprinting, and IP whitelisting for admins.
Touchpoints
backend/src/middlewares/rateLimiter.middleware.tsbackend/src/middlewares/turnstile.middleware.tsbackend/src/middlewares/requestLogger.middleware.tsbackend/src/services/mfa.service.tsbackend/src/utils/hibp.utils.tsbackend/src/models/user.model.ts (new security fields)backend/src/models/requestLog.model.tsbackend/src/controllers/auth.controller.tsfrontend/src/components/auth/SignInForm.tsx (MFA + fingerprint)frontend/src/components/auth/SignUpForm.tsx (Turnstile + strength meter)frontend/src/components/auth/VerifyEmailView.tsxfrontend/src/hooks/useSessionTimeout.tsfrontend/src/components/auth/SessionTimeoutModal.tsxNote
Prompted by ~700 fake accounts created via unprotected POST /users endpoint. All security standards documented in .cursor/rules/cybersecurity-rule.mdc.
Mandatory Email Verification
Email verification is now required before login. SHA-256 hashed tokens are stored in the database. A dedicated /verify-email page handles confirmation, with a resend endpoint (rate-limited to 3/hour). Unverified accounts receive a 403 on login attempts.
Touchpoints
backend/src/controllers/auth.controller.tsfrontend/src/app/(website)/verify-email/page.tsxfrontend/src/components/auth/VerifyEmailView.tsxMulti-Factor Authentication (TOTP + Email OTP)
Two-factor authentication with TOTP (authenticator apps via RFC 6238) and email OTP fallback. Backup codes (SHA-256 hashed, single-use). Two-step login flow: first step returns a tempToken, second step verifies code and issues real JWT tokens. Admin accounts strongly encouraged to enable MFA.
Touchpoints
backend/src/services/mfa.service.tsbackend/src/routes/auth.route.tsfrontend/src/components/auth/SignInForm.tsxNote
TOTP implemented as pure Node.js crypto (RFC 6238) no third-party library. Compatible with Google Authenticator and Authy.
Device Fingerprinting & New Device Alerts
FingerprintJS (open-source) collects a visitor ID on login and compares it against known devices. Unrecognized devices trigger a 'New device login' alert email and require MFA if enabled. Users can list and remove known devices.
Touchpoints
frontend/src/components/auth/SignInForm.tsxbackend/src/controllers/auth.controller.tsbackend/src/routes/user.route.ts (GET/DELETE /me/devices)Session Inactivity Timeout
Automatic session expiry after inactivity: 15 minutes for students, 30 minutes for staff. A 60-second warning modal appears before logout. Cross-tab sync via localStorage storage events.
Touchpoints
frontend/src/hooks/useSessionTimeout.tsfrontend/src/components/auth/SessionTimeoutModal.tsxfrontend/src/context/AuthContext.tsxUnit & Integration Tests
82 tests passing across auth, user, and security integration suites using Supertest + MongoMemoryServer. Unit tests for rate-limiter and Turnstile middleware. Frontend component tests for roadmap and careers pages.
Touchpoints
backend/src/__tests__/integration/backend/src/__tests__/unit/backend/jest.config.tsfrontend/src/__tests__/Admin Users: Dedicated Stats Endpoint
Add a lightweight API endpoint for the admin users page stat cards (Total Users, Active Users, Lecturers) instead of relying on the heavy dashboard/stats endpoint. Deferred pending redeployment verification.
Touchpoints
backend/src/controllers/admin.controller.tsfrontend/src/app/(dashboard)/dashboard/admin/users/page.tsxfrontend/src/lib/api.tsNote
Cards currently use dashboard/stats which returns correct global counts. A stale deployed build was likely showing page-level counts. Redeploy first; only implement if issue persists.
Program-Scoped Timetables
Timetables filtered by student's program with clickable cards, fixed calendar view (exact date matching), accurate color rendering, and mid-semester support.
Program-Scoped Exam Schedules
Exam timetables restructured with program-scoped filtering and dynamic 'Next Exam' countdown that updates based on the selected timetable card.
Modern PDF Export with Summary Cards
Redesigned PDF exports with branded header, dynamic summary cards, professional footer. Fixed Ghana Cedis encoding. Subscription PDF shows only successful transactions.
Global Subscription Plan Stats
Subscription page stat cards now show global totals from backend aggregation instead of paginated page data. Payment pagination fixed for 10+ records.
Dashboard Fixes (Favicon, Guards, Activity, Charts)
Added favicon, fixed SubscriptionProvider race condition, created Activity page, added performance chart to profile page.
Fix: Onboarding Notification Spam
Login no longer creates duplicate 'Complete Your Onboarding' reminders. Fixed incorrect field path and added a duplicate guard to prevent notification spam.
Fix: Quiz Views Counter
Quiz views now increment when the quiz detail page is viewed, not only when a session is started. Views and attempts are tracked separately.
Real System Health Alerts
Replaced hardcoded mock alerts with real system checks: expired subscriptions, failed payments, pending verifications, and unread notifications.
Revenue Breakdown Cards
Admin dashboard and analytics pages now display Total Revenue, Yearly, Quarterly, and Monthly revenue cards powered by real payment data.
Functional Analytics Charts
Replaced chart placeholders with real ApexCharts: User Growth (area), Content Engagement (stacked bar), and Revenue Over Time (area) with time range selector support.
Past Questions Filter Rework
Dynamic year range (current year to 1900), Faculty dropdown populated from API with university info, Semester filter, and Institution filter now wired to backend.
Dashboard Stats API
Role-specific dashboard statistics for admin, lecturer, and student views with real-time data.
Real-time WebSocket Updates
Socket.IO integration for live updates without page refreshes across all data types.
Flashcard Progress Tracking
Daily study progress calculation with cards reviewed, daily goals, and study streaks.
Onboarding Backend Infrastructure
Complete onboarding service with faculties, programs, and user course management.
Dashboard API Integration
All dashboard pages connected to real backend APIs with proper hooks and error handling.
Notice Board System
Admin-managed notice board with audience targeting (global, role, course, program), markdown support, read tracking, scheduled publishing, and email notifications for important notices.
Lecturer Revenue Share Portal + GRA Tax Compliance
Lecturers enrolled in the programme receive a unique referral link to bring students onto the platform. Commission tiers: 30% for monthly, 35% quarterly, 40% yearly. Incentivising annual plan referrals. Payout is annual, net of 10% withholding tax remitted to Ghana Revenue Authority per the Income Tax Act 2015 (Act 896). Platform generates WHT schedules, WHT certificates, and financial statements. Terms & conditions updated with revenue share agreement and full tax disclosure. Lecturers must publish content regularly to stay active (60-day warning, 90-day auto-deactivation).
Touchpoints
backend/src/models/lecturerEarning.model.tsbackend/src/models/lecturerPayout.model.tsbackend/src/models/taxRecord.model.tsbackend/src/services/referral.service.tsbackend/src/services/payout.service.tsbackend/src/services/financialReport.service.tsbackend/src/jobs/activityCheck.job.tsfrontend/src/app/(dashboard)/dashboard/lecturer/earnings/page.tsxfrontend/src/app/(dashboard)/dashboard/admin/payouts/page.tsxfrontend/src/app/(dashboard)/dashboard/admin/tax/page.tsxfrontend/src/app/(website)/terms/page.tsxNote
GRA TIN required from each lecturer before payout. WHT certificates issued by March 31 annually. Requires legal and accounting review before implementation, particularly VAT registration threshold (GHS 200k/year) and NFSL applicability.
AI-Assisted Mock Exam System
Lecturers and admins create timed mock exams with multiple choice, open-ended, or hybrid question formats. AI marks open-ended answers objectively with grade and feedback. Auto-submits on timer expiry. Exams can be public or scoped to a specific course or program. A global leaderboard shows student rankings per exam. Exam creators get a full participant table with individual scores and attempt history.
Note
Requires Claude API integration for open-ended AI marking. Leaderboard ranking recomputed on each submission. Anti-cheat measures: randomised question order, single active attempt enforcement, time-boxing. AI marking prompt must be hardened against injection.
Research & Thesis Management
Dedicated research workspace where students communicate with assigned supervisors on project topics, with AI-powered topic generation. Students upload research documentation or thesis chapters for AI validation, checking references, structure, and flow. Supervisors can provide remarks, assessments, notes, and chapter-by-chapter approval.
Note
Requires AI model integration for topic generation and document validation. Supervisor approval workflow per chapter.
Cyber Law Reference Library
Dedicated page providing round-the-clock, AI-curated information on IT-related court cases worldwide. IP infringement, trademark disputes, cybersecurity cases, media harassment, and more. Each case includes verdict, status (ongoing/concluded), jurisdiction, and detailed analysis to help students understand and apply international computer law.
Note
Requires AI model with internet access for live case tracking and summarisation.
Course Learning Materials
Dedicated page where administrators create learning material cards for each course students selected during onboarding. Each card links to external storage (Google Drive, Dropbox, etc.) where the actual materials are hosted, giving students easy semester-by-semester access to required readings and resources.
Educational Video Library
A page where students can browse and watch educational videos relevant to their courses and programs. Content curated and uploaded by administrators and lecturers.
One-Month Free Trial on Registration
New students automatically receive one month of full platform access upon completing registration and verifying their email address, no payment required. The trial subscription is created server-side at the point of email verification, giving every new user immediate access to quizzes, flashcards, past questions, learning materials, and videos. A clear banner communicates how many trial days remain and prompts conversion before expiry.
Touchpoints
backend/src/controllers/auth.controller.tsbackend/src/services/subscription.service.tsfrontend/src/app/(dashboard)/dashboard/page.tsxNote
Trial period is 30 days from email verification date. Must not stack with paid subscriptions. If a student pays during trial, the trial ends and the paid period begins. Admin dashboard should distinguish trial users from paid subscribers in the subscription stats.
Social Login (Google + X OAuth)
Sign in and sign up with Google or X (Twitter) accounts using OAuth 2.0. Currently the buttons exist in the UI but are placeholder-only with no functionality. OAuth tokens are exchanged for the platform's own JWT, keeping the existing auth architecture intact. Includes account linking for users who have both a password account and an OAuth provider, and handles the X edge case where email is not always returned.
Touchpoints
frontend/src/components/auth/SignInForm.tsxfrontend/src/components/auth/SignUpForm.tsxfrontend/src/app/api/auth/[...nextauth]/route.ts (new)backend/src/controllers/auth.controller.tsbackend/src/models/user.model.ts (googleId, twitterId, provider fields)Note
Requires Google Cloud Console OAuth app + Twitter Developer OAuth 2.0 app setup (dev + prod). NextAuth.js v5 handles PKCE and state parameters. X does not always return email. Post-OAuth prompt required for missing email case.
Multi-Tier Education: SHS, JHS & Primary (GES + Cambridge)
Expand beyond tertiary to serve Senior High School, JHS, and Primary students across Ghana. Ghana has two curriculum systems: GES (national syllabus, public schools) and Cambridge (international and elite private schools). Students select their curriculum body on onboarding, all content, subjects, topics, and past papers are filtered to their syllabus. Cross-syllabus browsing is always available. GES content covers WASSCE and BECE past papers; Cambridge covers IGCSE and A-Level past papers. Dashboard personalised by tier, curriculum body, and level.
Touchpoints
backend/src/models/curriculumLevel.model.ts (new: tier + curriculumBody)backend/src/models/subject.model.ts (new: GES + Cambridge subjects)backend/src/models/user.model.ts (educationTier, curriculumBody, curriculumLevel fields)backend/src/routes/curriculum.route.ts (new)frontend onboarding: tier → curriculum body (GES/Cambridge) → level → subjectsfrontend/src/app/(dashboard)/dashboard/browse/shs/ges + cambridgefrontend/src/app/(dashboard)/dashboard/browse/jhs/ges + cambridgefrontend/src/app/(dashboard)/dashboard/past-questions (tier + body + examYear filters)Note
Requires WAEC licensing for WASSCE/BECE content and Cambridge Assessment licensing for IGCSE/A-Level past papers. Cambridge syllabus versioning (updated every few years) must be handled in content tagging. Pricing decision needed: same as tertiary or discounted pre-tertiary rates.
Mobile Applications
Native iOS and Android applications for studying on the go with offline support.
AI Study Recommendations
Intelligent study suggestions based on performance patterns and learning goals.
Collaborative Study Groups
Create and join study groups with shared flashcards, quizzes, and discussion boards.
Offline Study Mode
Download content for offline access with automatic sync when back online.
Changelog
Latest improvements and bug fixes.
Security Hardening Suite & Blog
- Anti-spam registration hardening: Redis-backed rate limiting on all public write endpoints
- Cloudflare Turnstile CAPTCHA on registration endpoint
- Mandatory email verification before login (403 if unverified)
- Disposable/throwaway email domain blocking at registration
- HaveIBeenPwned k-anonymity password breach check on registration
- Multi-Factor Authentication: TOTP (Google Authenticator / Authy) + email OTP fallback
- MFA backup codes (SHA-256 hashed, single-use); two-step login flow with tempToken
- Session inactivity timeout (15 min students / 30 min staff) with warning modal
- Device fingerprinting: new device alert emails + MFA required on unknown devices
- IP whitelisting for admin and super_admin accounts
- Request logging to MongoDB with IP geolocation (geoip-lite) and 90-day TTL
- Password strength meter on signup form (4-bar indicator + requirements checklist)
- Jest test infrastructure: mongodb-memory-server, ts-jest, unit tests for middleware
- Blog & Articles: TipTap editor, featured images, scheduled publish, revision history
Timetables, Exports & Admin Improvements
- Program-scoped timetable cards with dynamic Today's Classes, Week, List, and Calendar views
- Calendar view fix: classes display on exact stored date, not every matching weekday
- Color rendering fix: exact selected color used in all timetable views
- Mid-semester timetable support as separate program-specific cards
- Program-scoped exam schedules with dynamic 'Next Exam' countdown
- Redesigned PDF export with branded header, summary cards, and professional footer
- Fixed Ghana Cedis (GH₵) display in PDF/CSV exports
- Subscription PDF now shows only successful transactions
- Global plan stats for subscription cards (not page-level)
- Payment pagination fix and spacing improvements
- Dashboard: favicon, auth guard fix, activity page, profile performance chart
Dashboard & Analytics Fixes
- Fixed onboarding notification spam on every login
- Quiz views now track detail page visits (not just session starts)
- Replaced mock system alerts with real health checks
- Added revenue breakdown cards (Total, Yearly, Quarterly, Monthly)
- Functional analytics charts with ApexCharts (User Growth, Content Engagement, Revenue Over Time)
- Reworked past questions filters: dynamic years, Faculty from API, Semester dropdown, Institution wired to backend
Learning Enhanced Release
- Dashboard API integration complete
- Real-time WebSocket updates
- Flashcard progress tracking
- Improved timetable management
- Notice Board system with audience targeting, markdown, scheduling, and read tracking
Foundation Release
- Core authentication system
- User onboarding flow
- Quiz and flashcard functionality
- Past questions bank
Have a Feature Request?
We're always looking to improve. Share your ideas and help shape the future of GhCyberPrep.
Last updated: March 2026 • Roadmap is subject to change based on priorities and feedback