Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

History

149 Commits

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

AltStyle によって変換されたページ (->オリジナル) /