Skip to content

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

Contributors

Languages