A modern, full-stack e-learning platform designed specifically for B.Tech Computer Science Engineering students. Built with React, Node.js, and MongoDB, this platform offers an intuitive learning experience with comprehensive course management and progress tracking.
- π₯οΈ Frontend (Vercel): https://innovative-learning-platform.vercel.app
- β‘ Backend API (Render): https://innovative-learning-backend.onrender.com
Status: β Fully Deployed & Operational
- Course Browsing: Explore comprehensive B.Tech CSE curriculum
- Interactive Learning: Structured units, topics, and subtopics with multimedia resources
- Progress Tracking: Real-time learning progress with visual indicators
- Responsive Design: Seamless experience across all devices
- Dark/Light Mode: Toggle between themes for comfortable learning
- Course Details: Detailed curriculum overview with expandable content sections
- Course Management: Create, edit, and manage complete course structures
- User Management: Full CRUD operations for user accounts and roles
- Analytics Dashboard: Real-time platform statistics and insights
- Content Organization: Hierarchical content management (Units β Topics β Subtopics β Resources)
- Bulk Operations: Efficient management of multiple courses and users
- Modern UI: Clean, professional interface with gradient accents
- Smooth Animations: Framer Motion powered transitions and interactions
- Theme System: Comprehensive light/dark mode with consistent styling
- Mobile-First: Responsive design optimized for all screen sizes
- Accessibility: WCAG compliant design with proper contrast ratios
- React 18.3.1 - Modern UI library with hooks and context
- Vite - Fast build tool and development server
- TailwindCSS - Utility-first CSS framework
- Framer Motion - Smooth animations and transitions
- React Router Dom - Client-side routing
- React Icons - Comprehensive icon library
- Axios - HTTP client for API requests
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- MongoDB Atlas - Cloud-hosted NoSQL database
- Mongoose - MongoDB object modeling
- JSON Web Tokens - Secure authentication
- bcryptjs - Password hashing and security
- CORS - Cross-origin resource sharing
- Google Generative AI - AI-powered content generation
- Vercel - Frontend hosting with global CDN
- Render - Backend API hosting with auto-scaling
- MongoDB Atlas - Cloud database with global distribution
- GitHub Actions - Automated CI/CD pipeline
- ESLint - Code quality and style enforcement
- Vitest - Unit testing framework
- Concurrently - Run multiple scripts simultaneously
- Nodemon - Development server auto-restart
Before you begin, ensure you have the following installed:
- Node.js (version 16.0.0 or higher)
- npm (version 8.0.0 or higher)
- MongoDB Atlas Account (for database)
- Git (for version control)
Visit the deployed platform: https://innovative-learning-platform.vercel.app
Test Credentials:
- Email:
testuser@gmail.com - Password:
123456
π Note: These are demo credentials for testing purposes. You can also create your own account through the registration page.
git clone https://github.com/Devashis7/Innovative-Learning-Platform.git
cd Innovative-Learning-Platform# Install all dependencies (client + server)
npm run install-all
# Or install separately
npm run install-client
npm run install-serverCreate a .env file in the server directory:
# Database Configuration
MONGO_URI=mongodb+srv://your-username:your-password@cluster.mongodb.net/InnovativeLearningPlatform?retryWrites=true&w=majority
# Server Configuration
PORT=3000
NODE_ENV=development
# Security
JWT_SECRET=your-super-secret-jwt-key-minimum-32-characters-long
# Optional: API Keys for additional features
GOOGLE_GEMINI_API_KEY=your-google-gemini-api-key# Option 1: Use existing MongoDB Atlas connection
# (Recommended - uses cloud database)
# Option 2: Local MongoDB (if you have MongoDB installed)
# Update MONGO_URI to: mongodb://localhost:27017/InnovativeLearningPlatform# Start both client and server concurrently
npm run dev
# Access the application
# Frontend: http://localhost:5173
# Backend API: http://localhost:3000# Populate database with sample B.Tech CSE courses
npm run seedinnovative-learning-platform/
βββ client/ # React frontend application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ context/ # React context providers
β β βββ utils/ # Utility functions and API calls
β β βββ styles/ # Global styles and Tailwind config
β βββ public/ # Static assets
β βββ package.json # Frontend dependencies
βββ server/ # Node.js backend application
β βββ controllers/ # Request handlers
β βββ models/ # MongoDB schemas
β βββ routes/ # API route definitions
β βββ middleware/ # Custom middleware
β βββ config/ # Database configuration
β βββ package.json # Backend dependencies
βββ README.md # Project documentation
βββ package.json # Root package configuration
npm run dev # Start both client and server
npm run setup # Install all dependencies and seed database
npm run build # Build client for production
npm start # Start production servernpm run dev # Start development server (Vite)
npm run build # Build for production
npm run preview # Preview production build
npm run test # Run unit tests
npm run lint # Run ESLintnpm start # Start production server
npm run dev # Start development server (Nodemon)
npm run test # Run server testsThe platform implements JWT-based authentication with role-based access control:
- Students: Can browse courses, track progress, and access learning materials
- Admins: Full platform access including user management and course creation
- Protected Routes: Middleware ensures secure access to authorized content
- Token Management: Automatic token refresh and secure storage
{
name: String,
email: String (unique),
password: String (hashed),
role: ["student", "admin"]
}{
name: String,
description: String,
units: [{
name: String,
topics: [{
name: String,
subtopics: [{
name: String,
resources: [{
type: ["youtube", "notes", "pdf", "link"],
url: String,
title: String
}]
}]
}]
}]
}{
userId: ObjectId,
courseId: ObjectId,
unitsProgress: [{
unitIndex: Number,
topicsProgress: [{
topicIndex: Number,
subtopicsProgress: [{
subtopicIndex: Number,
completed: Boolean,
completedAt: Date
}]
}]
}]
}The platform features a comprehensive theme system:
- Dynamic Switching: Toggle between light and dark modes
- Consistent Colors: Unified color palette across components
- CSS Variables: Efficient theme management
- Accessibility: WCAG compliant contrast ratios
- User Preference: Remembers user's theme choice
# Frontend tests
cd client && npm run test
# Backend tests (when implemented)
cd server && npm run test
# Run all tests
npm run test- URL: https://innovative-learning-platform.vercel.app
- Status: β Deployed and operational
- Features:
- Automatic deployments from GitHub
- Edge network for global performance
- Environment-aware API configuration
- Responsive design optimized for all devices
- API URL: https://innovative-learning-backend.onrender.com
- Status: β Deployed and operational
- Features:
- RESTful API with full CRUD operations
- JWT authentication and authorization
- CORS configured for cross-origin requests
- Environment variables securely managed
- Type: Cloud-hosted NoSQL database
- Features:
- 512MB free tier with automatic scaling
- Global distribution for optimal performance
- Automated backups and security
- Connection pooling and optimization
βββββββββββββββββββ HTTPS ββββββββββββββββββββ MongoDB βββββββββββββββββββ
β Vercel β βββββββββββββΊ β Render β βββββββββββββΊ β MongoDB Atlas β
β (Frontend) β β (Backend API) β β (Database) β
β React + Vite β β Node.js + Express β NoSQL Data β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
The platform automatically detects the environment and configures API endpoints:
Production (Vercel):
API_BASE_URL = 'https://innovative-learning-backend.onrender.com'Development (Local):
API_BASE_URL = 'http://localhost:3000'We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow existing code style and conventions
- Write clear, descriptive commit messages
- Add tests for new features
- Update documentation as needed
- Ensure responsive design compatibility
This project is licensed under the MIT License - see the LICENSE file for details.
Devashis7
- GitHub: @Devashis7
- Project: Innovative Learning Platform
- React Team - For the amazing frontend library
- MongoDB - For the flexible database solution
- TailwindCSS - For the utility-first CSS framework
- Framer Motion - For smooth animations
- Open Source Community - For inspiration and guidance
# Check if the Vercel deployment is active
curl https://innovative-learning-platform.vercel.app
# If local development issues:
cd client && npm install && npm run dev# Verify backend is running
curl https://innovative-learning-backend.onrender.com/
# Check environment variables in client/.env
VITE_API_URL=https://innovative-learning-backend.onrender.com- Clear browser localStorage and cookies
- Check if JWT token is properly set
- Verify MongoDB connection in server logs
- Ensure frontend domain is allowed in server CORS configuration
- Check that API requests include proper headers
- Verify environment-specific API URLs
- Frontend Status: Vercel Dashboard
- Backend Status: Render Dashboard
- Database Status: MongoDB Atlas
If you encounter any issues or have questions:
- π Try the Live Demo: https://innovative-learning-platform.vercel.app
- π Check the documentation above
- π Search existing issues on GitHub
- π Create a new issue with detailed information
- π¬ Join our discussions for community support
- π Live Platform: innovative-learning-platform.vercel.app
- π API Documentation: innovative-learning-backend.onrender.com
- πΎ GitHub Repository: github.com/Devashis7/Innovative-Learning-Platform
β Star this repository if you find it helpful!
π Found a bug? Please open an issue with details.
π‘ Have ideas? We'd love to hear your suggestions!
Built with β€οΈ for the engineering community