Skip to content

ankit-coder45/eduflow-main

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

EduFlow - Modern Online Learning Platform ๐Ÿš€

EduFlow Logo

โœจ Learn Anywhere, Anytime โœจ

๐Ÿ“‹ Overview

EduFlow is a comprehensive full-stack e-learning platform built with the MERN stack (MongoDB, Express, React, Node.js). It delivers a modern learning experience with an intuitive interface, interactive courses, and powerful admin tools. ๐ŸŒŸ

EduFlow Platform Screenshot

๐ŸŽ“ Transform your learning journey with EduFlow's interactive experience! ๐ŸŽ“

โœจ Key Features

๐Ÿ” Authentication & Authorization

  • Multiple Login Methods: Email/password and Google OAuth integration ๐Ÿ”‘
  • Role-Based Access: Admin and student portals with appropriate permissions ๐Ÿ‘ฉโ€๐Ÿ’ผ๐Ÿ‘จโ€๐ŸŽ“
  • Secure Sessions: JWT authentication with "Remember Me" option ๐Ÿ›ก๏ธ
  • Smooth Onboarding: Quick signup process to get started in seconds! โšก

๐Ÿ“š Course Management

  • Intuitive Course Catalog: Browse, search, and filter courses easily ๐Ÿ”
  • Admin Tools: Comprehensive course creation and management dashboard ๐Ÿ› ๏ธ
  • Rich Content: Support for video lectures, documents, and interactive quizzes ๐Ÿ“น๐Ÿ“„โœ๏ธ
  • Analytics: Detailed course performance metrics with beautiful charts ๐Ÿ“Š

๐Ÿ‘จโ€๐ŸŽ“ Student Experience

  • Personalized Dashboard: Track enrolled courses and progress at a glance ๐Ÿ“ˆ
  • Interactive Learning: Video playback, quiz attempts, and progress tracking ๐ŸŽฏ
  • Achievement System: Earn certificates upon course completion ๐Ÿ†
  • Bookmarking: Save courses for later viewing with one click ๐Ÿ”–
  • Mobile Friendly: Learn on any device, anytime, anywhere! ๐Ÿ“ฑ๐Ÿ’ป

๐Ÿ“œ Certificate System

  • Automatic Generation: PDF certificates upon course completion ๐ŸŽ‰
  • Verification Portal: Public verification of certificate authenticity ๐Ÿ”
  • Professional Design: Customizable certificate templates for a polished look โœจ
  • Social Sharing: Easy sharing to LinkedIn and other platforms for career growth ๐ŸŒ

๐Ÿ‘ค User Profile

  • Customizable Profile: Update personal information and preferences easily ๐Ÿ˜Ž
  • Avatar Management: Upload and manage profile pictures to express yourself ๐Ÿ–ผ๏ธ
  • Learning Statistics: Visual representation of learning journey with colorful charts ๐Ÿ“Š
  • Settings Panel: Manage notification and account preferences your way โš™๏ธ

๐Ÿค– AI Assistant

  • 24/7 Support: Intelligent chat assistant for course recommendations ๐Ÿ’ฌ
  • Contextual Help: Tailored assistance based on user location in the app ๐Ÿง 
  • Voice Capability: Optional voice interaction mode for hands-free learning ๐ŸŽค
  • Personalized Responses: Smart suggestions based on your learning history ๐Ÿ”ฎ

๐Ÿ› ๏ธ Tech Stack

Frontend ๐ŸŽจ

React TypeScript Tailwind CSS Firebase
  • ๐Ÿงญ React Router for smooth navigation
  • ๐Ÿงฉ shadcn/ui for beautiful component library
  • ๐Ÿ“„ jsPDF and html2canvas for certificate generation
  • ๐Ÿ“ฑ Responsive design for all devices

Backend ๐Ÿ—๏ธ

Node.js Express MongoDB JWT
  • ๐Ÿ—„๏ธ Mongoose for MongoDB ORM
  • โœ… Express Validator for request validation
  • ๐Ÿ“ Multer for file uploads
  • ๐Ÿ”’ Secure API endpoints

๐Ÿš€ Getting Started

Prerequisites

  • ๐Ÿ“ฆ Node.js (v14 or higher)
  • ๐Ÿ—ƒ๏ธ MongoDB (local or Atlas)
  • ๐Ÿ”ฅ Firebase account (for Google authentication)

Installation ๐Ÿ”ง

  1. Clone the repository ๐Ÿ“‹

    git clone https://github.com/nveed-gung/eduflow.git
    cd eduflow
  2. Install dependencies ๐Ÿ“ฅ

    npm run install-all
  3. Configure environment variables โš™๏ธ

    • Create a .env file in the server directory based on .env.example
    • Set up MongoDB connection
    • Configure Firebase credentials
  4. Run the application ๐Ÿƒโ€โ™‚๏ธ

    # Development mode (runs both client and server)
    npm run dev
    
    # Run client only
    npm run client
    
    # Run server only
    npm run server
  5. Access the application ๐ŸŒ

๐ŸŒ Deployment to Render

EduFlow is optimized for seamless deployment to Render as a single Web Service. ๐Ÿšข

Deployment Steps ๐Ÿ“

  1. Create a MongoDB Atlas Database ๐Ÿ—ƒ๏ธ

    • Sign up for MongoDB Atlas
    • Create a new cluster
    • Set up database access (username & password)
    • Add network access for Render IPs (0.0.0.0/0 for simplicity)
    • Get your connection string
  2. Set up GitHub Repository ๐Ÿ“

    git add .
    git commit -m "Prepare for deployment"
    git push
  3. Deploy to Render ๐Ÿš€

    • Sign up for Render
    • From your dashboard, select "New" and "Web Service"
    • Connect your GitHub repo
    • Configure your Web Service:
      • Name: eduflow (or your preferred name)
      • Environment: Node
      • Build Command: bash ./render-build.sh
      • Start Command: NODE_ENV=production npm start
      • Auto-Deploy: Enable
  4. Set Environment Variables ๐Ÿ”

    • NODE_ENV: production
    • MONGODB_URI: Your MongoDB Atlas connection string
    • JWT_SECRET: Your secret key for JWT tokens
    • RENDER: true
    • All Firebase configuration variables
  5. Wait for Deployment โณ

    • Render will build and deploy your application
    • Once deployed, you can access your application at the provided Render URL
    • Share with the world! ๐ŸŒ

โš™๏ธ Environment Variables

Server Environment Variables ๐Ÿ–ฅ๏ธ

PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
CLIENT_URL=http://localhost:5173
FIREBASE_PROJECT_ID=your_firebase_project_id
FIREBASE_PRIVATE_KEY=your_firebase_private_key
FIREBASE_CLIENT_EMAIL=your_firebase_client_email

Client Environment Variables ๐Ÿ“ฑ

For development (.env.development):

VITE_API_URL=http://localhost:5000/api
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
VITE_FIREBASE_PROJECT_ID=your_firebase_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket
VITE_FIREBASE_APP_ID=your_firebase_app_id

๐Ÿ” Troubleshooting

Connection Issues ๐Ÿ”Œ

If you're seeing Error fetching courses: Pt or ERR_CONNECTION_REFUSED errors:

  1. Clear Browser State: ๐Ÿงน

    • Open browser console (F12)
    • Copy and paste the code from reset-app-state.js to clear local storage and reload
    • This often resolves client-side connection caching issues
  2. Check Network Configuration: ๐Ÿ”ง

    • Ensure the API URL is configured properly in client/src/lib/api.ts
    • The production build should be using a relative path (/api) not an absolute URL
    • Check browser console to see which API URL is being used
  3. Verify Environment Variables: ๐Ÿ“‹

    • Client: Ensure the .env.production file contains VITE_API_URL=/api
    • All API calls should use the centralized API client from client/src/lib/api.ts
  4. Run Diagnostic Script: ๐Ÿฉบ

    node diagnose-connection.js

API Connection Issues in Production ๐ŸŒ

If your deployed app on Render continues to show API connection errors:

  1. Check Render Logs: ๐Ÿ“Š

    • Look for any server-side errors in the Render dashboard logs
    • Verify the server is starting correctly and connecting to MongoDB
  2. Inspect Network Requests: ๐Ÿ”

    • Use browser developer tools to check network requests
    • Ensure requests are going to /api/* paths, not http://localhost:5000/api/*
  3. Force a Clean Deployment: ๐Ÿงผ

    • Commit your changes with these API fixes:
    git add .
    git commit -m "Fix API connection issues in production"
    git push
    • If automatic deployments are enabled, this will trigger a fresh build
    • Otherwise, manually deploy from the Render dashboard
  4. Manual Client Fix: ๐Ÿ’ช

    • If you still have issues, try the reset script in the browser console:
    localStorage.clear();
    sessionStorage.clear();
    location.reload(true);

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors