
A gamified language learning platform featuring multiple interactive games and real-time multiplayer challenges to help users learn new languages in a fun and engaging way.
-
Memory Match Game
- Learn French vocabulary through card matching
- Progressive difficulty levels
- Story-based learning with context
- Real-time scoring system
-
DinoLingo Runner Game
- Learn Spanish through an interactive runner game
- Jump obstacles by answering questions correctly
- Progressive difficulty system
- Real-time scoring and lives system
-
Multiplayer Word Battle
- Real-time multiplayer word guessing
- Support for both French and Spanish
- Private rooms for playing with friends
- Auto-matchmaking system
- Global leaderboard
- 🏆 Achievement System
- 📊 Progress Tracking
- 🌟 XP-based Leveling System
- 👥 User Authentication
- 📱 Responsive Design
- 🏆 Global Leaderboards
- 🤝 Multiplayer Support
- 💾 Progress Persistence
- React 18 with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- Framer Motion for animations
- Zustand for state management
- React Router for navigation
- Socket.IO Client for real-time features
- React Hot Toast for notifications
- Node.js with Express
- MongoDB with Mongoose
- Socket.IO for real-time communication
- JWT for authentication
- Redis for caching (with fallback)
- Cookie-based sessions
- Google's Generative AI for content generation
- Node.js (v18 or higher)
- MongoDB instance
- Redis (optional)
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/lingualeap.git
cd lingualeap
- Install backend dependencies:
npm install
- Install frontend dependencies:
cd frontend
npm install
- Create a .env file in the root directory:
PORT=5001
MONGODB_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
REDIS_HOST=localhost
REDIS_PORT=6379
GEMINI_API_KEY=your_gemini_api_key
- Start the backend server:
npm run dev
- In a new terminal, start the frontend development server:
cd frontend
npm run dev
The application will be available at http://localhost:5173
- Build the frontend:
cd frontend
npm run build
- Start the production server:
npm start
├── backend/
│ ├── controllers/ # Request handlers
│ ├── middleware/ # Custom middleware
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── services/ # Business logic
│ └── server.js # Server entry point
├── frontend/
│ ├── public/ # Static assets
│ └── src/
│ ├── components/ # React components
│ ├── screens/ # Page components
│ ├── stores/ # State management
│ ├── services/ # API services
│ ├── types/ # TypeScript types
│ └── css/ # Stylesheets
├── docs/ # Documentation
└── README.md
- Email and password-based authentication
- JWT token-based session management
- Secure cookie storage
- Protected routes
- Progressive difficulty levels
- Story-based learning context
- Real-time scoring
- Level progression system
- XP rewards
- Dynamic obstacle generation
- Question-based gameplay
- Lives system
- Score multipliers
- Level progression
- Real-time word guessing
- Private room creation
- Auto-matchmaking
- Player synchronization
- Global leaderboard
- Session persistence
- XP-based progression
- Global ranking system
- Achievement tracking
- Performance statistics
- Progress persistence
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Pradyun Devarakonda
- Narayana Srimanth
- Anirudh Pathaneni
- Rohit Komaragiri
This project is licensed under the MIT License - see the LICENSE file for details.