TypeConquer is a comprehensive typing practice platform designed to help users improve their typing speed, accuracy, and consistency through lessons, interactive challenges, and friendly competitions. Whether you're a beginner looking to learn touch typing or an expert aiming to break speed records, TypeConquer has something for everyone.
- 🎯 Learning: Adaptive lessons tailored to your skill level
- 🏆 Competitive Environment: Challenge friends
- 📊 Detailed Analytics: Track your progress with comprehensive statistics
- 🔒 Secure Authentication: Google OAuth integration for seamless login
- 🌐 Real-time Features: Live notifications and updates
|
|
|
|
typeconquer/
├── 📂 src/ # TypeScript source code
│ ├── 📂 config/ # Application configuration
│ ├── 📂 db/ # Database connection setup
│ ├── 📂 middlewares/ # Authentication middleware
│ ├── 📂 module/ # Feature modules
│ │ ├── 📂 auth/ # Authentication & user management
│ │ ├── 📂 challenge/ # Typing challenges system
│ │ ├── 📂 friendship/ # Friend requests & management
│ │ ├── 📂 home/ # Base application routes
│ │ ├── 📂 learning/ # Educational modules & lessons
│ │ ├── 📂 notifications/ # Real-time notification system
│ │ └── 📂 typingtests/ # Typing test logic & scoring
│ ├── 📂 utils/ # Utility functions & helpers
│ └── 📄 server.ts # Application entry point
├── 📂 dist/ # Compiled JavaScript output
├── 📄 package.json # Project dependencies & scripts
├── 📄 tsconfig.json # TypeScript configuration
├── 📄 eslint.config.mjs # ESLint rules & settings
└── 📄 README.md # Project documentation
Before you begin, ensure you have the following installed:
- Node.js (version 18 or higher) - Download
- MongoDB instance or MongoDB Atlas URI - Get Started
- Google OAuth 2.0 credentials - Setup Guide
-
Clone the repository
git clone https://github.com/prabalesh/typeconquer.git cd typeconquer -
Install dependencies
npm install
-
Environment configuration
Create a
.envfile in the root directory:PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_super_secret_jwt_key GOOGLE_CLIENT_ID=your_google_oauth_client_id GOOGLE_CLIENT_SECRET=your_google_oauth_client_secret
-
Development server
npm run dev
-
Production build
npm run build npm start
All API endpoints are prefixed with /api. Here's a comprehensive overview:
| Endpoint | Method | Description | Auth Required |
|---|---|---|---|
/api |
GET | Application health check | ❌ |
/api/auth |
POST | User authentication & registration | ❌ |
/api/typingtests |
GET/POST | Typing test results & leaderboards | ✅ |
/api/friends |
GET/POST | Friend system management | ✅ |
/api/challenges |
GET/POST | Typing challenges between users | ✅ |
/api/notifications |
GET | User notifications & alerts | ✅ |
/api/learning |
GET/POST | Learning modules & progress tracking | ✅ |
Click to view detailed roadmap
- JWT and Google OAuth authentication system
- Comprehensive typing test with result tracking
- Learning modules with structured lessons
- Challenge system between friends
- Friend request and management system
- Real-time notifications
- Performance analytics and leaderboards
- Real-time multiplayer typing races (WebSocket integration)
- Advanced analytics dashboard
- Mobile application (React Native)
- API rate limiting and caching
- Admin dashboard for content management
- Custom typing tests creation
- Tournament system
- AI-powered typing recommendations
- Multi-language support
We welcome contributions from developers of all skill levels! Here's how you can get involved:
- Fork the repository
- Clone your fork locally
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style and conventions
- Write clear, descriptive commit messages
- Add tests for new features when applicable
- Update documentation as needed
- Be respectful and constructive in discussions
- 🐛 Bug fixes and issue resolution
- ✨ New feature development
- 📚 Documentation improvements
- 🎨 UI/UX enhancements
- 🧪 Test coverage expansion
This project is licensed under the ISC License. See the LICENSE file for details.
- Contributors: Thank you to all the developers who have contributed to this project
- Community: Special thanks to the typing community for feedback and suggestions
- Technologies: Built with amazing open-source technologies