Skip to content

EduSphere is a comprehensive MERN stack-based educational platform that connects students with expert teachers, facilitating seamless learning experiences through structured courses and interactive features. The platform consists of both client and server components working together to provide a complete educational solution.

Notifications You must be signed in to change notification settings

maksudulhaque2000/Assignment_12

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

EduSphere - Comprehensive Educational Platform

πŸŽ“ About

EduSphere is a comprehensive MERN stack-based educational platform that connects students with expert teachers, facilitating seamless learning experiences through structured courses and interactive features. The platform consists of both client and server components working together to provide a complete educational solution.

🌐 Live Site

EduSphere Platform

βš™οΈ Admin Credentials

✨ Key Features

1. User Management & Authentication

  • Dynamic user roles (Student, Teacher, Admin)
  • JWT-based secure authentication system
  • Social login integration with Google
  • Protected routes and API endpoints
  • Role-based authorization middleware
  • Token refresh mechanism
  • Session management
  • Password hashing and security

2. Dashboard System

  • Student Dashboard:
    • Enrollment tracking
    • Assignment submission
    • Progress monitoring
  • Teacher Dashboard:
    • Course management
    • Progress monitoring
    • Performance tracking
  • Admin Dashboard:
    • Comprehensive control and oversight
    • User role management
    • Course approval system

3. Homepage Features

  • Dynamic banner/carousel
  • Partner/collaborator showcase
  • Popular classes section
  • Teacher feedback carousel
  • Statistics section
  • Teacher recruitment section

4. Course Management System

  • Course creation and updates
  • Approval workflow
  • Enrollment tracking
  • Progress monitoring
  • Assignment management
  • Detailed class cards
  • Secure payment integration

5. Teacher Application System

  • Comprehensive application form
  • Multiple teaching categories
  • Admin review workflow
  • Status tracking
  • Request resubmission
  • Experience verification

6. Payment & Financial Features

  • Stripe payment processing
  • Transaction logging
  • Payment verification
  • Refund handling
  • PDF invoice generation

7. Assignment System

  • Creation and management
  • Submission handling
  • Progress tracking
  • Feedback system
  • Deadline management

8. Data Analytics & Reporting

  • Enrollment statistics
  • User activity metrics
  • Course performance analysis
  • Progress reporting
  • Trend analysis

9. Interactive UI Components

  • Sweet alerts for CRUD operations
  • Dynamic loading states
  • Responsive design
  • User-friendly navigation
  • Modal interfaces
  • Animation implementations

πŸ› οΈ Technology Stack

Frontend Technologies

  • React.js 18
  • TanStack Query v4
  • Firebase Authentication
  • Axios
  • React Router DOM v6
  • Tailwind CSS
  • DaisyUI
  • React Hook Form
  • Sweet Alert 2
  • React Rating
  • Framer Motion
  • jsPDF
  • AOS Animation

Backend Technologies

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose
  • JSON Web Token
  • Cors
  • Dotenv
  • Express Rate Limit
  • Stripe
  • Winston (for logging)
  • Joi (for validation)

πŸš€ Installation and Setup

Client Setup

  1. Clone the client repository
git clone https://github.com/smmaksudulhaque2000/Assignment_12
cd edumanage-client
  1. Install dependencies
npm install
  1. Create .env file for client
VITE_apiKey=your_firebase_api_key
VITE_authDomain=your_firebase_auth_domain
VITE_projectId=your_firebase_project_id
VITE_storageBucket=your_storage_bucket
VITE_messagingSenderId=your_messaging_sender_id
VITE_appId=your_app_id
VITE_SERVER_URL=your_server_url

Server Setup

  1. Clone the server repository
git clone https://github.com/yourusername/edumanage-server.git
cd edumanage-server
  1. Install dependencies
npm install
  1. Create .env file for server
MONGODB_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
STRIPE_SECRET_KEY=your_stripe_secret_key
PORT=5000
CLIENT_URL=your_client_url
REFRESH_TOKEN_SECRET=your_refresh_token_secret
NODE_ENV=development

πŸ“‘ API Endpoints

Authentication

POST /api/auth/login - User login
POST /api/auth/register - User registration
POST /api/auth/refresh-token - Refresh JWT token

Users

GET /api/users - Get all users
GET /api/users/:id - Get user details
PATCH /api/users/:id - Update user role
DELETE /api/users/:id - Delete user

Classes

POST /api/classes - Create new class
GET /api/classes - Get all classes
GET /api/classes/:id - Get class details
PATCH /api/classes/:id - Update class status
DELETE /api/classes/:id - Delete class

Enrollments & Assignments

POST /api/enrollments - Create enrollment
GET /api/enrollments/:userId - Get user enrollments
POST /api/assignments - Create assignment
GET /api/assignments/:classId - Get class assignments
POST /api/assignments/submit - Submit assignment

πŸ“‚ Project Structure

Client Structure

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ shared/
β”‚   β”œβ”€β”€ dashboard/
β”‚   └── home/
β”œβ”€β”€ pages/
β”‚   β”œβ”€β”€ Home/
β”‚   β”œβ”€β”€ Dashboard/
β”‚   └── Authentication/
β”œβ”€β”€ hooks/
β”œβ”€β”€ contexts/
β”œβ”€β”€ utils/
β”œβ”€β”€ assets/
└── routes/

Server Structure

src/
β”œβ”€β”€ configs/
β”œβ”€β”€ controllers/
β”œβ”€β”€ middlewares/
β”œβ”€β”€ models/
β”œβ”€β”€ routes/
β”œβ”€β”€ services/
β”œβ”€β”€ utils/
└── validations/

πŸ”’ Security Implementations

  • JWT authentication
  • Protected routes
  • Request rate limiting
  • Input validation and sanitization
  • Error handling middleware
  • CORS configuration
  • Helmet security headers
  • MongoDB injection prevention
  • XSS protection
  • Form validation
  • Error boundaries
  • Secure data transmission

⚑ Performance Optimizations

  • Database indexing
  • Query optimization
  • Connection pooling
  • Response caching
  • Compression middleware
  • Lazy loading of components
  • Image optimization
  • Code splitting
  • Efficient state management

🀝 Contributing

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

πŸ“œ License

This project is licensed under the MIT License

πŸ™ Acknowledgments

About

EduSphere is a comprehensive MERN stack-based educational platform that connects students with expert teachers, facilitating seamless learning experiences through structured courses and interactive features. The platform consists of both client and server components working together to provide a complete educational solution.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages