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 administrative tools.
- Multiple Login Methods: Email/password and Google OAuth integration
- Role-Based Access Control: Separate admin and student portals with appropriate permissions
- Secure Sessions: JWT-based authentication with "Remember Me" functionality
- Streamlined Onboarding: Quick and intuitive signup process
- Intuitive Course Catalog: Browse, search, and filter courses with ease
- Admin Dashboard: Comprehensive course creation and management tools
- Rich Content Support: Video lectures, documents, and interactive quizzes
- Analytics Dashboard: Detailed course performance metrics with visual representations
- Personalized Dashboard: Track enrolled courses and monitor progress
- Interactive Learning: Video playback, quiz attempts, and progress tracking
- Achievement System: Earn certificates upon course completion
- Course Bookmarking: Save courses for later viewing
- Responsive Design: Optimized for all devices and screen sizes
- Automatic Generation: PDF certificates generated upon course completion
- Verification Portal: Public certificate authenticity verification
- Professional Templates: Customizable certificate designs
- Social Sharing: Easy sharing to LinkedIn and other professional networks
- Customizable Profiles: Update personal information and preferences
- Avatar Management: Upload and manage profile pictures
- Learning Statistics: Visual representation of learning progress and achievements
- Settings Panel: Manage notifications and account preferences
- 24/7 Support: Intelligent chatbot for course recommendations and assistance
- Contextual Help: Location-aware assistance throughout the platform
- Voice Capability: Optional voice interaction mode
- Personalized Recommendations: Smart suggestions based on learning history
- React 18 with TypeScript for type-safe development
- Tailwind CSS for utility-first styling
- React Router for client-side routing
- shadcn/ui component library
- jsPDF and html2canvas for certificate generation
- Firebase Authentication for Google OAuth
- Node.js with Express framework
- MongoDB with Mongoose ODM
- JWT for authentication and authorization
- Express Validator for request validation
- Multer for file upload handling
- RESTful API architecture
- Node.js (v14 or higher)
- MongoDB (local installation or MongoDB Atlas account)
- Firebase account for authentication setup
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/nveed-gung/eduflow.git cd eduflow -
Install dependencies
npm run install-all
-
Configure environment variables
Create a
.envfile in the server directory: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
Create
.env.developmentin the client directory: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
-
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
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
EduFlow is optimized for deployment to Render as a single Web Service.
- Create a free account at MongoDB Atlas
- Create a new cluster
- Configure database access with username and password
- Whitelist IP addresses (use
0.0.0.0/0for Render) - Obtain your connection string
git add .
git commit -m "Prepare for deployment"
git push origin main- Sign up at Render
- Click "New" → "Web Service"
- Connect your GitHub repository
- Configure the 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
- Name:
Add the following environment variables in Render:
NODE_ENV=production
MONGODB_URI=your_mongodb_atlas_connection_string
JWT_SECRET=your_secure_jwt_secret
RENDER=true
FIREBASE_PROJECT_ID=your_firebase_project_id
FIREBASE_PRIVATE_KEY=your_firebase_private_key
FIREBASE_CLIENT_EMAIL=your_firebase_client_email
Render will automatically build and deploy your application. Access it at the provided URL once deployment completes.
Solution 1: Clear Browser State
// Run in browser console (F12)
localStorage.clear();
sessionStorage.clear();
location.reload(true);Solution 2: Verify API Configuration
- Check that
client/src/lib/api.tsuses the correct API URL - Production builds should use relative paths (
/api) - Verify environment variables are properly set
Solution 3: Run Diagnostics
node diagnose-connection.js- Check Render Logs: Review server logs in the Render dashboard
- Inspect Network Requests: Use browser DevTools to verify API endpoints
- Force Clean Deployment:
git add . git commit -m "Fix API connection issues" git push origin main
- Verify Environment Variables: Ensure all required variables are set in Render
eduflow/
├── client/ # React frontend
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── lib/ # Utility functions
│ │ ├── pages/ # Page components
│ │ └── types/ # TypeScript types
│ └── package.json
├── server/ # Express backend
│ ├── controllers/ # Route controllers
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ └── package.json
├── render-build.sh # Render build script
└── package.json # Root package.json
Contributions are welcome! 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
This project is licensed under the MIT License. See the LICENSE file for details.
For issues, questions, or suggestions:
- Open an issue on GitHub
- Contact the development team
- Check the documentation
