A comprehensive frontend interview preparation platform with gamified learning, real-time chat, and achievement system
- Overview
- Features
- Tech Stack
- Getting Started
- Project Structure
- API Documentation
- Contributing
- License
Mojnu6 InterviewPrep is a modern, gamified web application designed to help frontend developers prepare for technical interviews. Built with the MERN stack, it offers an interactive learning experience with real-time features, achievement systems, and community engagement.
- ๐ฎ Gamified Learning: Level-based progression with points, streaks, and achievements
- ๐ฌ Real-time Chat: Community chat rooms for collaborative learning
- ๐ Leaderboards: Global, weekly, and monthly rankings
- ๐ฏ Daily Challenges: Streak-based daily login rewards
- ๐ Analytics: Detailed progress tracking and performance metrics
- ๐ Secure Authentication: JWT-based authentication with password reset
- ๐ฑ Responsive Design: Mobile-first approach with modern UI/UX
- Progressive Levels: 100+ carefully curated frontend interview questions
- Multiple Choice & Text Input: Flexible answer formats
- Instant Feedback: Real-time answer validation with explanations
- Hint System: Cost-based hint points for challenging questions
- Skip Protection: Encourages learning through completion
- Point System: Earn points for correct answers and daily streaks
- Achievement Badges: Unlock achievements for milestones
- Consistency Rewards: Special rewards for maintaining streaks
- Daily Login Bonus: 10 points for daily participation
- Real-time Chat: Socket.io-powered chat rooms
- Leaderboards: Global, weekly, and monthly rankings
- User Profiles: Detailed progress and achievement tracking
- Wrong Answer Tracking: Review and learn from mistakes
- Modern UI: Clean, responsive design with Tailwind CSS
- Sound Effects: Immersive audio feedback
- Animations: Smooth transitions and micro-interactions
- Dark/Light Mode: Theme customization (planned)
- Question Management: Add, edit, and delete questions
- Transaction Approval: Manage hint point purchases
- User Analytics: Monitor user engagement and progress
- Survey Management: Collect and analyze user feedback
- React 19 - Modern React with hooks and context
- Vite - Fast build tool and development server
- Tailwind CSS 4 - Utility-first CSS framework
- React Router - Client-side routing
- Socket.io Client - Real-time communication
- Axios - HTTP client for API calls
- Node.js - JavaScript runtime
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Socket.io - Real-time bidirectional communication
- JWT - JSON Web Token authentication
- bcryptjs - Password hashing
- SendGrid - Email service integration
- ESLint - Code linting and formatting
- Git - Version control
- Vercel - Frontend deployment
- Render - Backend deployment
- Node.js (v18 or higher)
- MongoDB (local or cloud instance)
- Git
-
Clone the repository
git clone https://github.com/codedbymojnu/mojnu6.git cd mojnu6
-
Install frontend dependencies
npm install
-
Install backend dependencies
cd server npm install
-
Environment Setup
Create
.env
files in both root and server directories:Root `.env:**
VITE_API_URL=http://localhost:5000
Server `.env:**
MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key SENDGRID_API_KEY=your_sendgrid_api_key PORT=5000
-
Start the development servers
Backend (Terminal 1):
cd server npm run dev
Frontend (Terminal 2):
npm run dev
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
-
Frontend (Vercel)
npm run build # Deploy to Vercel
-
Backend (Render/Railway)
cd server npm start # Deploy to your preferred platform
mojnu6-interviewprep/
โโโ src/ # Frontend source code
โ โโโ components/ # React components
โ โ โโโ admin/ # Admin dashboard components
โ โ โโโ auth/ # Authentication components
โ โ โโโ ... # Other UI components
โ โโโ context/ # React Context providers
โ โโโ hooks/ # Custom React hooks
โ โโโ utils/ # Utility functions
โ โโโ api/ # API configuration
โ โโโ assets/ # Static assets
โโโ server/ # Backend source code
โ โโโ controllers/ # Route controllers
โ โโโ models/ # MongoDB schemas
โ โโโ routes/ # API routes
โ โโโ middleware/ # Express middleware
โ โโโ config/ # Configuration files
โ โโโ server.js # Main server file
โโโ public/ # Public assets
โโโ html_template/ # HTML templates
โโโ docs/ # Documentation
- AnswerForm: Handles question submission and validation
- Home: Main game interface with level progression
- ChatRoom: Real-time community chat
- Leaderboard: User rankings and statistics
- Admin Dashboard: Question and user management
POST /api/auth/register
- User registrationPOST /api/auth/login
- User loginPOST /api/auth/forgot-password
- Password reset
GET /api/levels
- Fetch all levelsGET /api/levels/:id
- Get specific level
GET /api/profile/:username
- Get user profilePATCH /api/profile/:username
- Update profilePOST /api/profile/:username/daily-streak
- Update daily streak
GET /api/leaderboard
- Get global leaderboardGET /api/leaderboard/weekly
- Weekly rankingsGET /api/leaderboard/monthly
- Monthly rankings
GET /api/chat/:roomId
- Get chat messagesPOST /api/chat/:roomId
- Send message
POST /api/levels
- Add new questionPUT /api/levels/:id
- Update questionDELETE /api/levels/:id
- Delete question
- Correct Answer: +1 point
- Daily Login: +10 points
- Achievements: Variable points based on milestone
- Streak Bonus: Additional points for consecutive days
- Consistency Achievements: Rewards for maintaining streaks
- Level Completion: Milestones for completing levels
- Community Engagement: Rewards for active participation
- Level-based: Progressive difficulty
- Max Level Tracking: Resume from last completed level
- Wrong Answer Review: Learn from mistakes
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes
- Add tests (if applicable)
- Commit your changes
git commit -m "Add: your feature description"
- Push to the branch
git push origin feature/your-feature-name
- Create a Pull Request
- Follow ESLint configuration
- Write meaningful commit messages
- Test your changes thoroughly
- Update documentation as needed
- Code Splitting: Lazy loading for better performance
- Image Optimization: Compressed assets
- Bundle Analysis: Regular bundle size monitoring
- Caching: Efficient caching strategies
- Database Indexing: Optimized MongoDB queries
- Connection Pooling: Efficient database connections
- Rate Limiting: API protection
- Error Handling: Comprehensive error management
- JWT Authentication: Secure token-based auth
- Password Hashing: bcrypt for password security
- Input Validation: Comprehensive data validation
- CORS Configuration: Cross-origin request handling
- Rate Limiting: API abuse prevention
- User Engagement: Track user activity and retention
- Performance Metrics: Monitor application performance
- Error Tracking: Comprehensive error logging
- User Feedback: Survey and feedback collection
- Core Game Mechanics: Level-based progression with points and achievements
- Real-time Chat: Socket.io-powered community chat rooms
- Achievement System: Unlockable achievements and rewards
- Admin Dashboard: Complete content and user management
- Authentication: JWT-based secure authentication
- Leaderboards: Global, weekly, and monthly rankings
- SSL Commerce Integration: Secure payment processing for hint points
- Category-based Quizzes: Specialized questions by frontend topics
- Community Marketplace: User-generated content sharing
- Advanced Analytics: Detailed user performance insights
- Email Notifications: Automated achievement and progress alerts
- Mobile Optimization: Enhanced mobile experience
- Mobile App Development: Native iOS and Android applications
- AI-powered Question Generation: Dynamic question creation
- Video Explanations: Multimedia learning content
- Interview Simulation: Mock interview scenarios
- Advanced Gamification: More complex achievement systems
- Social Features: User profiles and networking
The Mojnu6 InterviewPrep platform follows a modern MERN stack architecture with clear separation of concerns:
Frontend (React + Vite) โโ Backend (Node.js + Express) โโ Database (MongoDB)
- ๐ฏ Focused Purpose: Specialized for frontend interview preparation
- ๐ฎ Gamification: Engaging learning through points, streaks, and achievements
- ๐ฌ Real-time Features: Live chat and instant feedback
- ๐ฑ Responsive Design: Mobile-first approach with modern UI
- ๐ Security: JWT authentication with proper validation
- ๐ Analytics: Comprehensive user progress tracking
- Modern React: Uses React 19 with hooks and context
- Real-time Communication: Socket.io for live features
- Progressive Enhancement: Works without JavaScript for basic functionality
- Performance Optimized: Code splitting and lazy loading
- SEO Friendly: Server-side rendering capabilities
- Accessibility: WCAG compliant design patterns
- Database Design: Optimized MongoDB schemas for performance
- Caching Strategy: Efficient data caching mechanisms
- API Design: RESTful endpoints with proper versioning
- Deployment: Containerized deployment with Docker support
- Monitoring: Comprehensive logging and error tracking
- Authentication: JWT tokens with secure storage
- Authorization: Role-based access control (RBAC)
- Input Validation: Comprehensive data sanitization
- Rate Limiting: API abuse prevention
- CORS Configuration: Proper cross-origin handling
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License - A permissive license that allows for:
- โ Commercial use
- โ Modification
- โ Distribution
- โ Private use
- โ Patent use
Limitations:
- โ Liability
- โ Warranty
MIT License
Copyright (c) 2024 Mojnu6 InterviewPrep
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- React Team - For the amazing framework
- Tailwind CSS - For the utility-first CSS framework
- Vercel - For seamless deployment
- MongoDB - For the flexible database solution
- Socket.io - For real-time communication
- Live Demo: https://mojnu6.vercel.app/
- Issues: GitHub Issues
- Email: [email protected]
- Documentation: Server README
This project consists of two main components that work together seamlessly:
Component | Technology | Purpose | Documentation |
---|---|---|---|
Frontend | React + Vite | User interface and interactions | This README |
Backend | Node.js + Express | API and business logic | Server README |
- Server API Documentation - Complete backend API reference
- Database Schema - MongoDB models and relationships
- Real-time Features - Socket.io implementation
- Deployment Guide - Production deployment instructions
Feature | Frontend Responsibility | Backend Responsibility |
---|---|---|
Authentication | Token storage, UI forms | JWT generation, validation |
Real-time Chat | Socket connection, UI | Message handling, broadcasting |
Game Logic | UI state, user interactions | Data persistence, business rules |
File Upload | File selection, preview | Storage, processing |
Analytics | Event tracking | Data aggregation, reporting |
Frontend Stack:
- React 19 + Vite for fast development
- Tailwind CSS 4 for styling
- Socket.io client for real-time features
- Axios for HTTP requests
Backend Stack:
- Node.js + Express for API
- MongoDB + Mongoose for data
- Socket.io for real-time communication
- JWT + bcrypt for security
- Clone repository and install dependencies
- Start backend (
cd server && npm run dev
) - Start frontend (
npm run dev
) - Access application at http://localhost:5173
- Backend: Deploy to Render/Railway/Heroku
- Frontend: Deploy to Vercel/Netlify
- Database: Use MongoDB Atlas
- Environment: Configure production variables
- Frontend: Component testing with React Testing Library
- Backend: API testing with Postman collection
- Integration: End-to-end testing with Cypress
- Performance: Load testing with Artillery
Made with โค๏ธ by the Mojnu6 Team
โญ Star this repository if you found it helpful!
๐ Check out the Server Documentation for backend details