TypeCup is an open-source typing speed game and web application designed to help users improve their typing skills in a competitive, fun, and interactive environment.
🌐 Live Demo: http://typecup.ir
📦 Repository: https://github.com/Ari23yan/typecup-app
- ⚡ Real-time Typing Race – Measure WPM (Words Per Minute) and accuracy instantly.
- 🎨 Modern UI/UX – Clean, responsive interface built with React.
- 🛠️ Full-Stack Architecture – Backend with Express.js and frontend with React + Vite.
- 🔓 Open Source – Anyone can contribute, fork, and improve the project.
- 📊 Performance Metrics – Track typing speed and progress.
| Role | Technology |
|---|---|
| Frontend | React, Vite, JavaScript |
| Backend API | Node.js, Express.js |
| Development | ESLint, npm, Git |
| Environment | .env configuration |
typecup-app/
├── backend/ # Express.js server and API routes
├── src/ # React frontend source code
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page-level components
│ ├── styles/ # CSS modules or global styles
│ └── utils/ # Helper functions
├── public/ # Static assets (images, favicon, etc.)
├── .env # Environment variables (not committed)
├── .gitignore # Git ignored files
├── eslint.config.js # ESLint configuration
├── index.html # Main HTML entry
├── package.json # Dependencies and scripts
├── vite.config.js # Vite configuration
└── README.md # Project documentation
Follow these steps to run the project locally.
git clone https://github.com/YOUR_USERNAME/typecup-app.git
cd typecup-appnpm installCreate a .env file in the root directory:
VITE_API_URL=http://localhost:5000
PORT=5000npm run devBy default the app will be available at: http://localhost:5173
🤝 Contributing Contributions, issues, and feature requests are welcome.
How to contribute Fork the repository.
Create a new branch:
git checkout -b feature/amazing-featureCommit your changes:
git commit -m "Add some amazing feature"Push to the branch:
git push origin feature/amazing-featureYou are free to use, modify, and distribute it with proper credit.
🙏 Acknowledgements Inspired by classic typing games and the open-source community.
📬 Contact If you have questions or suggestions, open an issue on GitHub.
Built with ❤️ using React, Node.js, Express, and Vite.
Happy Typing! 🎯