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.
28
Completed
4
In Progress
9
Planned
8
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)
Q2 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
Q1 2027
- Pricing system rework: API-driven tiers, tax schedules, promo codes & discount engine
- CyberArena Phase 1: Concept Labs (Cryptography, Network Security, Attacker Mindset)
- Browser-based coding playground (Monaco Editor + sandboxed execution)
- Beginner CTF rooms with flag submission and hint system
- XP system, Arena Rank, and CyberArena profile
- Quiz & Flashcard AI auto-generation for lecturers
Q2 2027
- 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
- CyberArena Phase 3: TryHackMe integration, lecturer-authored rooms, certification
- Pricing admin UI: Tier Manager, Tax Schedule Manager, Discount Manager, Audit Log
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
tests passing across auth all the way down to security integration suites using Supertest.
Touchpoints
backend/src/__tests__/integration/backend/src/__tests__/unit/backend/jest.config.tsfrontend/src/__tests__/AI: Local LLM Fallback with Web Search (Tavily)
Replace or supplement the current Ai provider with a locally-hosted LLM (via LM Studio or Ollama) to reduce API costs. Tavily search API provides internet access to the local model, replicating the web search capability that the Cyber Law curation and Research Topic suggestion services depend on. An AI_PROVIDER config flag switches between Anthropic and local providers without changing service code.
Touchpoints
backend/src/services/ai.service.tsbackend/src/services/aiCyberLaw.service.tsbackend/src/services/aiResearchTopics.service.tsbackend/.env (AI_PROVIDER, LOCAL_LLM_BASE_URL, LOCAL_LLM_MODEL, TAVILY_API_KEY)backend/src/config/index.tsNote
Local model must support function/tool calling and reliable structured JSON output. Suitable models include LLaMA 3/3.1, Mistral/Mixtral, Gemma 2, Phi-3/4, DeepSeek-R1, and Qwen 2.5/Qwen 2.5-Coder. Web search features (Cyber Law, Research Topics) should fall back to Anthropic in production unless Tavily is configured.
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
AI marking live. Lecturer manual-marking fallback when Ai credits are exhausted. Ai credit alert shown to staff. Pending: cap student answer length to 3,000 characters per question to keep token costs predictable.
Research & Thesis Management
Dedicated research workspace where students manage projects with assigned supervisors, get Ai-powered topic suggestions, upload thesis chapters for Ai validation (structure, references, flow, academic tone), and track supervisor remarks and approvals chapter by chapter.
Note
Backend fully complete — research projects, chapters, supervisor workflow, Ai topic suggestions, and document validation all live. Frontend in progress.
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, mobile money fraud, and more. Each case includes verdict, status (ongoing/concluded), jurisdiction, and detailed analysis to help students understand and apply international computer law.
Note
Fully live. Weekly cron job curates cases via Claude + web search with Africa-first priority. WebSocket auto-refresh on new curation. Admin manual trigger with credit exhaustion detection.
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. Server-side Passport.js integration exchanges OAuth tokens for the platform's own JWT, keeping the existing auth architecture intact. Includes account linking for users who hold 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/(full-width-pages)/(auth)/callback/page.tsxbackend/src/controllers/auth.controller.tsbackend/src/models/user.model.ts (googleId, twitterId, provider fields)Note
Google sign-in is fully functional end-to-end, including support for shared devices. Outstanding: X (Twitter) OAuth and production environment configuration. X may not return an email address; this edge case is accounted for in the design.
Pricing System Rework
Replace hardcoded subscription plans with a fully API-driven pricing engine. Subscription tiers, tax schedules (VAT/GST with Ghana-specific jurisdiction support, inclusive/exclusive treatment, tax schedule versioning), and discounts (percentage off, fixed amount, trial extension, volume tiers, promo codes) all managed via admin API — no code deployment needed. A calculation engine computes final price from base → tax → discount with a transparent breakdown shown to the user at checkout.
Touchpoints
backend/src/models/pricingTier.model.ts (new)backend/src/models/taxSchedule.model.ts (new)backend/src/models/discount.model.ts (new)backend/src/services/pricingCalculation.service.ts (new — calculation engine)backend/src/routes/pricing.route.ts (new)backend/src/models/subscription.model.ts (update plan ref to PricingTier)frontend/src/app/(website)/pricing/page.tsx (dynamic tiers from API)Note
Phase 1 (v1.4.0): core engine, models, migration of existing plans. Phase 2 (v2.0.0): admin UI — Tier Manager, Tax Schedule Manager with version history, Discount Manager with redemption tracking, Audit Log. Open questions: Paystack plan sync strategy, VAT registration status, invoicing scope.
CyberArena — Interactive Game Room & Concept Labs
A dedicated hands-on cybersecurity learning environment accessible to paid subscribers. Two pillars: Concept Labs — guided walkthroughs of core concepts (cryptography ciphers, network sniffing, attacker/defender mindset, web security) with interactive exercises, links to real GitHub tools/repos, and curated video references. Arena — browser-based coding playground (Monaco Editor + Docker-sandboxed execution), self-hosted CTF rooms with hints and flag submission, cybersecurity mini-games, weekly challenge drops, and monthly tournaments. XP system with Arena Rank (Recruit → Elite Hacker), badges, and completion certificates.
Touchpoints
backend/src/models/conceptLab.model.ts (new)backend/src/models/ctfRoom.model.ts (new)backend/src/models/codeChallenge.model.ts (new)backend/src/models/arenaProgress.model.ts (new — XP, rank, badges, certs)backend/src/services/codeExecution.service.ts (new — Docker/Judge0 sandbox)backend/src/routes/arena.route.ts (new)frontend/src/app/(dashboard)/dashboard/arena/ (new section)Note
Phase 1 (v1.4.0): 10 beginner/intermediate Concept Labs + coding playground + 5–10 beginner CTF rooms + XP system. Phase 2 (v1.5.0): mini-games, weekly challenges, team mode. Phase 3 (v2.0.0): TryHackMe integration (partnership dependent), lecturer-authored rooms, PDF certification. Critical dependency: Docker/Firecracker or Judge0 evaluated before Phase 1 build begins.
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.
Payment Reliability & Subscription Clarity
- Resolved an issue where a payment confirmed through two channels simultaneously could create a duplicate subscription period.
- Payment errors from the payment provider are now surfaced clearly rather than causing a silent crash.
- Quiz and flashcard category filters no longer disappear after selecting a subject.
- Subscription page now lists all platform features with clear indicators of what is included on each plan.
- Billing history is now visible regardless of current subscription status.
- Payment method labels and receipt status indicators updated for accuracy.
- Admin subscription table now distinguishes between manually initiated and automatically renewed payments.
Platform Reliability & Access Improvements
- Cyber law case search now draws from a broader range of legal disciplines.
- Quizzes and flashcards are now available to all registered users at no cost.
- Subscription status now reflects changes more accurately across the platform.
- Grace period visibility improvements on the subscription page.
- Various stability and access control fixes across the platform.
AI Quality Improvements, Pricing Cleanup & Platform Fixes
- AI-generated study content is now phrased as standalone academic material, regardless of the source used.
- The past question AI assistant now responds in the correct context for learners accessing platform content.
- AI responses are now more complete on longer and more demanding requests.
- Cyber law case curation now avoids regenerating content already in the library.
- Cyber law case details now display correctly in full.
- Cyber law manual curation now completes reliably without returning a false error.
- Admin dashboard now loads all system alert data correctly.
- Platform stability improvements for internal development environments.
- Pricing information is now consistent across all pages of the platform.
- Past questions page tidied; extraneous interface elements removed.
AI Exam Generator, Free Tier Expansion & Mobile Improvements
- Lecturers can now generate structured exam questions using AI from a typed topic or an uploaded document
- Option to include a model answer and mark scheme alongside each generated question
- Quizzes, flashcards, and the Cyber Law case browser are now freely accessible to all registered users
- Subscription and pricing pages updated to clearly reflect what is available on the free and paid tiers
- Improved mobile experience across quizzes, past questions, Cyber Law, and admin views
- Past-questions AI assistant is now fully accessible and dismissable on mobile devices
- Better error messages when file uploads exceed the allowed size
- Various stability and interface improvements across the platform
Admin Payment Approval Fix
- Resolved an issue where manually approved payments left users on the free tier despite a completed approval; affected accounts are now activated correctly.
Knowledge Hub: Preview Release
- AI-assisted mock examination system with automated answer marking and leaderboards
- Cyber Law Reference Library with weekly AI-curated case updates
- Research and thesis management workspace; server-side infrastructure complete
- Social authentication: server-side integration and callback handling
- Notice Board: rich text editing via TipTap
- Configurable pass scores for quizzes
- AI credit and daily budget monitoring
- Expanded integration test coverage across assessment and AI services
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 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: April 2026 (v1.3.5) • Roadmap is subject to change based on priorities and feedback