项目文件夹

文件
2026-07-13 11:58:24 +08:00

77 行
3.1 KiB
Plaintext

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# Typing Speed Test App
**Tier:** 1-Beginner
Typing speed tests are a fun and interactive way to measure how fast and accurately you can type.
In this project, you'll build a simple **Typing Speed Test App** that displays a random passage for the user to type within a limited time.
Once the timer runs out (or the user finishes typing), the app calculates and displays their **typing speed (WPM)** and **accuracy (%).**
This project will help you understand **real-time input handling**, **timing events**, and **DOM manipulation** — essential skills for building interactive web apps.
## Features
- **Real-time Timer** – Start typing to begin the timer automatically.
- **Live Accuracy Check** – Incorrect letters are highlighted instantly.
- **Performance Stats** – Get detailed results including Words Per Minute (WPM) and Accuracy (%).
- **Restart Option** – Take the test again with a new random passage.
- **No External Libraries** – All calculations implemented manually.
## User Stories
- [ ] User can see a **random passage** to type on the screen.
- [ ] User can start the test by clicking a **Start** button (starts the timer).
- [ ] User can see a **typing input area** to type the given text.
- [ ] User can view a **countdown timer** showing how much time is left (e.g., 60 seconds).
- [ ] User can see their **WPM** and **Accuracy (%)** after finishing or when the timer ends.
- [ ] User can click **Restart** to take the test again with a new passage.
- [ ] User sees **real-time error highlighting** while typing.
## Bonus Features
- [ ] User can select different **time durations** (15s, 30s, 60s, 120s).
- [ ] User can choose **difficulty levels** or text lengths.
- [ ] User’s **best WPM** is saved locally using `localStorage`.
- [ ] **Dark/Light Mode** toggle for better UI experience.
- [ ] Live **WPM and Accuracy** tracking while typing.
- [ ] **Progress Graphs or History** showing previous scores.
## Constraints
- Do not use any third-party libraries for typing speed or accuracy calculations.
- Use only front-end technologies like **HTML**, **CSS**, and **JavaScript** (or React if preferred).
## How to Calculate WPM
**Words Per Minute (WPM)** = (Total Characters Typed / 5) ÷ (Time in Minutes)
**Accuracy (%)** = (Correct Characters / Total Characters Typed) × 100
## Example UI Inspirations
- [Monkeytype](https://monkeytype.com)
- [10FastFingers](https://10fastfingers.com)
## Useful Resources
- [Typing Test (Wikipedia)](https://en.wikipedia.org/wiki/Typing_test)
- [MDN: Keyboard Events](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent)
- [How to Calculate WPM](https://www.speedtypingonline.com/typing-equations)
## Example Projects
- [Typing Speed Test – Monkeytype Clone](https://monkeytype.com)
- [Typing Speed Test (CodePen)](https://codepen.io/rajatkantinandi/pen/PoKyLMy)
- [Speed Typing Game – Web Dev Simplified](https://github.com/WebDevSimplified/Speed-Typing-Game)
- [Typing Game in React](https://github.com/karlhadwen/typing-game)
- [10FastFingers Clone – Vanilla JS](https://codepen.io/joshuaward/full/jObXJZj)