Skip to content

Innovative Learning Platform is a web-based application designed for schools, providing an interactive and structured learning experience. It enables students to track progress, access learning materials, and stay organized. Admins manage users and customization.

Notifications You must be signed in to change notification settings

Devashis7/Innovative-Learning-Platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Innovative Learning Platform

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.

🌐 Live Demo

Status: βœ… Fully Deployed & Operational

License: MIT Node.js Version React Version MongoDB Deployed on Vercel Deployed on Render

✨ Features

πŸŽ“ Student Features

  • 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

πŸ‘¨β€πŸ’Ό Admin Features

  • 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

🎨 Design & UX

  • 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

πŸ› οΈ Technology Stack

Frontend (Deployed on Vercel)

  • 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

Backend (Deployed on Render)

  • 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

Hosting & Infrastructure

  • 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

Development Tools

  • ESLint - Code quality and style enforcement
  • Vitest - Unit testing framework
  • Concurrently - Run multiple scripts simultaneously
  • Nodemon - Development server auto-restart

πŸ“‹ Prerequisites

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)

πŸš€ Quick Start

🌐 Try the Live Platform

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.

πŸ’» Local Development Setup

1. Clone the Repository

git clone https://github.com/Devashis7/Innovative-Learning-Platform.git
cd Innovative-Learning-Platform

2. Install Dependencies

# Install all dependencies (client + server)
npm run install-all

# Or install separately
npm run install-client
npm run install-server

3. Environment Setup

Create 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

4. Database Setup

# 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

5. Start Development

# Start both client and server concurrently
npm run dev

# Access the application
# Frontend: http://localhost:5173
# Backend API: http://localhost:3000

6. Seed Database (Optional)

# Populate database with sample B.Tech CSE courses
npm run seed

πŸ“ Project Structure

innovative-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

πŸ”§ Available Scripts

Root Level Scripts

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 server

Client Scripts

npm 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 ESLint

Server Scripts

npm start            # Start production server
npm run dev          # Start development server (Nodemon)
npm run test         # Run server tests

πŸ” Authentication & Authorization

The 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

πŸ“Š Database Schema

User Model

{
  name: String,
  email: String (unique),
  password: String (hashed),
  role: ["student", "admin"]
}

Course Model

{
  name: String,
  description: String,
  units: [{
    name: String,
    topics: [{
      name: String,
      subtopics: [{
        name: String,
        resources: [{
          type: ["youtube", "notes", "pdf", "link"],
          url: String,
          title: String
        }]
      }]
    }]
  }]
}

Progress Model

{
  userId: ObjectId,
  courseId: ObjectId,
  unitsProgress: [{
    unitIndex: Number,
    topicsProgress: [{
      topicIndex: Number,
      subtopicsProgress: [{
        subtopicIndex: Number,
        completed: Boolean,
        completedAt: Date
      }]
    }]
  }]
}

🎨 Theme System

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

πŸ§ͺ Testing

# Frontend tests
cd client && npm run test

# Backend tests (when implemented)
cd server && npm run test

# Run all tests
npm run test

πŸš€ Deployment

Production Deployment (FREE Hosting)

Frontend - Vercel βœ… LIVE

  • 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

Backend - Render βœ… LIVE

  • 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

Database - MongoDB Atlas βœ… ACTIVE

  • 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

Deployment Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    HTTPS     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    MongoDB    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Vercel        β”‚ ────────────► β”‚   Render         β”‚ ────────────► β”‚ MongoDB Atlas   β”‚
β”‚   (Frontend)    β”‚              β”‚   (Backend API)  β”‚              β”‚   (Database)    β”‚
β”‚   React + Vite  β”‚              β”‚   Node.js + Express              β”‚   NoSQL Data    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Environment Configuration

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'

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style and conventions
  • Write clear, descriptive commit messages
  • Add tests for new features
  • Update documentation as needed
  • Ensure responsive design compatibility

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Devashis7

πŸ™ Acknowledgments

  • 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

οΏ½ Troubleshooting

Common Issues & Solutions

Frontend Not Loading

# 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

API Connection Issues

# 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

Authentication Problems

  • Clear browser localStorage and cookies
  • Check if JWT token is properly set
  • Verify MongoDB connection in server logs

CORS Errors

  • Ensure frontend domain is allowed in server CORS configuration
  • Check that API requests include proper headers
  • Verify environment-specific API URLs

Deployment Status Check

οΏ½πŸ“ž Support

If you encounter any issues or have questions:

  1. 🌐 Try the Live Demo: https://innovative-learning-platform.vercel.app
  2. πŸ“– Check the documentation above
  3. πŸ” Search existing issues on GitHub
  4. πŸ› Create a new issue with detailed information
  5. πŸ’¬ Join our discussions for community support

Quick Links


⭐ 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

About

Innovative Learning Platform is a web-based application designed for schools, providing an interactive and structured learning experience. It enables students to track progress, access learning materials, and stay organized. Admins manage users and customization.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages