Type Rush is a modern, responsive typing application that helps users improve their typing speed and accuracy. It features a clean and intuitive user interface.
Live Demo: TypeRush

This project was built using:
-
Frontend:
- React - Component-based library for building user interfaces.
- TypeScript - Static typing for better code maintainability.
- Vite - Fast and modern frontend build tool.
- Shadcn UI - Styled and customizable components.
- React Query - Data fetching and state synchronization.
- Tailwind CSS - Utility-first CSS for responsive and fast UI design.
-
Backend:
- Placeholder API or Mock Data - Used to simulate fetching sample text and leaderboard entries.
-
State Management:
- Zustand - Lightweight state management library.
-
Typing Test:
- Displays randomized typing text.
- Tracks real-time accuracy and words-per-minute (WPM).
-
Stats Display:
- Shows WPM and Accuracy dynamically during typing.
-
Leaderboard:
- Displays a leaderboard of top performers fetched dynamically.
-
Theming:
- Dark, modern theme with responsive design.
Follow these steps to set up the project on your local machine:
- Node.js (v18+): Download and install Node.js.
- npm: Ensure you have a package manager installed.
- Git: Version control system.
-
Clone the Repository:
git clone https://github.com/amolmt/typerush.git cd typing-practice-app -
Install Dependencies: Run the following command to install all project dependencies:
npm install
-
Run the Development Server: Start the Vite development server using:
npm run dev
-
Open the App: The app will be running on:
http://localhost:5173 -
Build for Production (Optional): To generate a production build, run:
npm run build
-
Run the Production Server (Optional): Serve the production files locally using:
npm run preview
Here’s an overview of the folder structure:
src/
├── components/ # Reusable UI components
│ ├── Header.tsx # Application header
│ ├── Leaderboard.tsx # Leaderboard component
│ ├── StatsDisplay.tsx # WPM and Accuracy display
│ └── TypingArea.tsx # Typing input and display
├── assets/ # Static assets (e.g., fonts, images)
├── store/ # Zustand or state management setup
├── api/ # API integrations or mock services
├── App.tsx # Root component
└── main.tsx # React entry point
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature. - Commit your changes:
git commit -m "Add your feature". - Push to your branch:
git push origin feature/your-feature. - Open a Pull Request.
- Live Demo: TypeRush
- Issues: Report an issue
This project is licensed under the MIT License.