Production Project
IEEE KTM - Keyboard Typing Marathon
An enterprise-level global website for fast typing practice.

NoteWhat 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
NoteWill 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
