Production Project

IEEE KTM - Keyboard Typing Marathon

An enterprise-level global website for fast typing practice.

IEEE Students
Developed as part of the core team atIEEE Students
Middle East-driven innovation hub empowering next-generation creators. IEEE Students bridges academic theory with industry execution to launch high-impact technical and media solutions.
Note

What is IEEE KTM: IEEE KTM (Keyboard Typing Marathon) is a new platform to practice and improve your typing and vocabulary skills in many real languages and programming languages! ⌨️

Architectural Decisions

IEEE KTM is heavily customized fork of monkeytype, which is an open source platform that already excels at typing tests domain, so there is no need to re-invent the wheel, right?

Based on That, monkeytype is forked and customized to align with IEEE's policies and rules.

Requirements

Functional Requirements

  • Typing tests: Timed and word-based tests with configurable duration, difficulty (normal / expert / master), and test modes inherited from the Monkeytype fork.
  • Languages & content: Support for multiple natural languages and programming-language layouts for practice; contest runs on standardized English word lists per published rules.
  • IEEE authentication: Sign-in with IEEE credentials; membership eligibility enforced before contest attempts and leaderboard submission.
  • Scoring & leaderboards: Rank contestants by WPM across globally, regions -10 regions around the gloub-, and sections -each country-.
  • User progress: Personal stats and test history.

Non-functional Requirements

  • Maintainability: Stay close to upstream Monkeytype where possible so security and typing-engine fixes can be merged with IEEE-specific overlays.
  • Branding & compliance: UI, copy, and data handling aligned with IEEE branding, cookie consent, and organizational policies.
  • Preformance: Being able to fetch leaderboards data instantly, in less than 200 ms.

Architecture Diagram

Note

Will be provided soon.

Tech Stack

  • Backend: NodeJS
  • Frontend: VanillaJS
  • Database: MongoDB
  • Cache: Redis

DevOps

Hosting

  • Backend: Self-managed VPS
  • Frontend: Firebase Hosting
  • Database: MongoDB Atlas
  • Cache: Redis Platform

CI/CD

Self-managed Ansible playbook.

Screenshots From The Platform

Contribution Verification

Here you can find my photo as the first contributor in the software engineering team, plesae visite the following link: https://ieeektm.org/team