Skip to content

AC757/Studious

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Studious - An Ed-Tech Platform

Last Commit Top Language Language Count

Empower Learning, Transform Lives, Ignite Potential

πŸš€ Overview

Studious is a fully functional ed-tech platform that enables users to create, consume, and rate educational content. Built using the MERN stack (MongoDB, Express.js, React.js, Node.js), it provides a seamless and interactive learning experience for students while offering instructors a platform to showcase their expertise globally.

Key Features

  • πŸ“š Course Management: Create, update, delete, and manage educational content
  • πŸ‘₯ Dual User Roles: Separate interfaces for students and instructors
  • πŸ’³ Payment Integration: Secure course purchases via Razorpay
  • ☁️ Cloud Storage: Media management through Cloudinary
  • πŸ” Secure Authentication: JWT-based auth with OTP verification
  • πŸ“± Responsive Design: Seamless experience across all devices
  • πŸ“Š Analytics Dashboard: Insights for instructors on course performance
  • ⭐ Rating System: Students can rate and review courses

πŸ› οΈ Built With

Frontend

React Redux Tailwind CSS Chart.js

Backend

Node.js Express.js MongoDB JWT

Services

Cloudinary Razorpay

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v14 or higher)
  • npm (v6 or higher)
  • MongoDB (v4.4 or higher)
  • Git

πŸ”§ Installation

  1. Clone the repository

    git clone https://github.com/AC757/Studious.git
    cd Studious
  2. Install dependencies

    # Install backend dependencies
    cd server
    npm install
    
    # Install frontend dependencies
    cd ../client
    npm install
  3. Set up environment variables

    Create a .env file in the server directory with the following variables:

    # Database
    MONGODB_URL=your_mongodb_connection_string
    
    # JWT Secret
    JWT_SECRET=your_jwt_secret_key
    
    # Email Configuration
    MAIL_HOST=your_smtp_host
    MAIL_USER=your_email
    MAIL_PASS=your_email_password
    
    # Cloudinary Configuration
    CLOUD_NAME=your_cloudinary_cloud_name
    API_KEY=your_cloudinary_api_key
    API_SECRET=your_cloudinary_api_secret
    
    # Razorpay Configuration
    RAZORPAY_KEY=your_razorpay_key
    RAZORPAY_SECRET=your_razorpay_secret
    
    # Frontend URL
    FRONTEND_URL=http://localhost:3000

πŸ’» Usage

Development Mode

  1. Start the backend server

    cd server
    npm run dev
  2. Start the frontend application

    cd client
    npm start
  3. Access the application

Production Mode

# Build the frontend
cd client
npm run build

# Start the production server
cd ../server
npm start

πŸ—οΈ System Architecture

StudyNotion follows a client-server architecture with three main components:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 β”‚     β”‚                 β”‚     β”‚                 β”‚
β”‚   Frontend      │────▢│   Backend       │────▢│   Database      β”‚
β”‚   (React)       β”‚     β”‚   (Node.js)     β”‚     β”‚   (MongoDB)     β”‚
β”‚                 β”‚     β”‚                 β”‚     β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                        β”‚                        β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          RESTful APIs

πŸ“‘ API Endpoints

Authentication

  • POST /api/auth/signup - Create new user account
  • POST /api/auth/login - User login
  • POST /api/auth/verify-otp - Verify OTP
  • POST /api/auth/forgot-password - Password reset

Courses

  • GET /api/courses - Get all courses
  • GET /api/courses/:id - Get specific course
  • POST /api/courses - Create new course (Instructor only)
  • PUT /api/courses/:id - Update course (Instructor only)
  • DELETE /api/courses/:id - Delete course (Instructor only)
  • POST /api/courses/:id/rate - Rate a course (Student only)

User Management

  • GET /api/profile - Get user profile
  • PUT /api/profile - Update user profile
  • GET /api/dashboard - Get dashboard data

πŸ§ͺ Testing

Run the test suite:

# Run all tests
npm test

# Run tests with coverage
npm run test:coverage

# Run tests in watch mode
npm run test:watch

πŸš€ Deployment

StudyNotion can be deployed using the following services:

Deployment Steps

  1. Deploy Database

    • Create a MongoDB Atlas cluster
    • Get connection string
  2. Deploy Backend

    • Push code to GitHub
    • Connect Render to repository
    • Set environment variables
    • Deploy
  3. Deploy Frontend

    • Build the React app
    • Deploy to Vercel
    • Configure environment variables

About

Ed-tech platform enabling instructors to create courses and students to learn, with integrated payments, cloud storage, and analytics dashboard

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors