Skip to content

TypeConquer is a typing practice and challenge platform that helps users improve their typing speed and accuracy through structured lessons, real-time challenges, and performance tracking — built with Node.js, Express, TypeScript, and MongoDB.

Notifications You must be signed in to change notification settings

prabalesh/typeconquer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

TypeConquer 🧠⌨️

TypeConquer Logo

A full-stack typing practice and challenge platform built with modern web technologies

Live Demo GitHub Issues GitHub Stars License


🚀 About TypeConquer

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.

✨ Key Highlights

  • 🎯 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

🧩 Features

📝 Practice & Learning

  • Dynamic paragraph generation
  • Structured learning modules
  • Progressive difficulty levels
  • Custom word banks and exercises

🤝 Social Features

  • Friend system with invitations
  • Real-time typing challenges
  • Leaderboards and rankings
  • Achievement system

📊 Analytics & Tracking

  • Detailed performance metrics
  • Historical progress tracking
  • WPM and accuracy statistics
  • Personal best records

🔐 Security & Auth

  • Google OAuth 2.0 integration
  • JWT-based authentication
  • Secure user data handling
  • Session management

🛠️ Tech Stack

Backend Technologies

Node.js Express.js TypeScript MongoDB

Authentication & Security

Google OAuth JWT

Development Tools

ESLint Nodemon


📁 Project Structure

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

🚀 Quick Start

Prerequisites

Before you begin, ensure you have the following installed:

Installation

  1. Clone the repository

    git clone https://github.com/prabalesh/typeconquer.git
    cd typeconquer
  2. Install dependencies

    npm install
  3. Environment configuration

    Create a .env file 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
  4. Development server

    npm run dev
  5. Production build

    npm run build
    npm start

🔗 API Documentation

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

📈 Roadmap & Development Status

Click to view detailed roadmap

✅ Completed Features

  • 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

🚧 In Development

  • Real-time multiplayer typing races (WebSocket integration)
  • Advanced analytics dashboard
  • Mobile application (React Native)
  • API rate limiting and caching

🔮 Future Plans

  • Admin dashboard for content management
  • Custom typing tests creation
  • Tournament system
  • AI-powered typing recommendations
  • Multi-language support

🤝 Contributing

We welcome contributions from developers of all skill levels! Here's how you can get involved:

Getting Started

  1. Fork the repository
  2. Clone your fork locally
  3. Create a feature branch (git checkout -b feature/amazing-feature)
  4. Make your changes
  5. Commit your changes (git commit -m 'Add some amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Contribution Guidelines

  • 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

Areas Where We Need Help

  • 🐛 Bug fixes and issue resolution
  • ✨ New feature development
  • 📚 Documentation improvements
  • 🎨 UI/UX enhancements
  • 🧪 Test coverage expansion

📄 License

This project is licensed under the ISC License. See the LICENSE file for details.


🙏 Acknowledgments

  • 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

📞 Support & Contact

Found a bug or have a feature request?

GitHub Issues

Want to contribute or have questions?

GitHub Discussions


✨ Made with ❤️ by Prabalesh

If you found this project helpful, please consider giving it a ⭐!

GitHub Stars

About

TypeConquer is a typing practice and challenge platform that helps users improve their typing speed and accuracy through structured lessons, real-time challenges, and performance tracking — built with Node.js, Express, TypeScript, and MongoDB.

Topics

Resources

Stars

Watchers

Forks

Languages