Git Product home page Git Product logo

e_learning_platform's Introduction

collegeX (E-Learning Platform)

Individual Project for Programing Clinic (LZPMPC005)
Student Name: Hongtao LI
Student ID: 39225062

Table of contents


Introduction

E Learning Platform
This project is a distributed web application for online learning, where users can create courses as teacher or search, purchase and study courses as student. Following is the structure of this project.

  • Frontend

    • Next.js
  • Gateway

    • Spring Cloud
  • Backend

    • Auth Server
      • Django
      • Authentication Method: jwt
    • Content Server
      • Express.js
    • Analysis Server
      • Django
    • Bank Server
      • Express.js
  • Database

    • Postgresql

Installtion

1. Install Docker

Please refer to
https://www.docker.com/products/docker-desktop/

Note

Remember to start the Docker desktop and keep it running.

2. Clone the repository

git clone https://github.com/lzpmpc005/E_learning_Platform.git

3. Customize env files

(1) go to "xlearn" directory, create a file named ".env.local" and paste the following inside and save. Remember to change the SECRET and ID to your own.

NEXT_PUBLIC_HOST=http://localhost:8080
NEXT_PUBLIC_CONTENT_HOST=http://localhost:8080/api
NEXT_PUBLIC_LOGO="/logo.png"

UPLOADTHING_SECRET=Your SECRET
UPLOADTHING_APP_ID=Your ID

NEXT_PUBLIC_MUX_TOKEN_ID=Your ID
NEXT_PUBLIC_MUX_TOKEN_SECRET=Your SECRET

(2) go to "auth_system" directory, create a file named ".env.local" and paste the following inside and save. Remember to change the Keys and SECRETs to your own. You don't need Google and Github keys if you don't need Login with Google and Github.

DEBUG = True

DOMAIN = 'localhost:3000'

EMAIL_HOST_USER = 'change to your email account'
EMAIL_HOST_PASSWORD = 'change to your email password'

GOOGLE_OAUTH2_KEY = "Your Key"
GOOGLE_OAUTH2_SECRET = "Your Secret"

GITHUB_KEY = "Your Key"
GITHUB_SECRET = "Your Secret"

Note

If you don't want to customize you Google and Github key and secret, the login with Google and Github won't work, but the normal login will work fine.

(3) go to "content_server" directory, create ".env" file, paste the following and save. Change Your ID and Your SECRET with your actual Mux ID and SECRET respectively.

MUX_TOKEN_ID=Your ID
MUX_TOKEN_SECRET=Your SECRET

4. Build Gateway Server

cd gateway
mvn clean install

5. Dockerize the project

cd E_learning_Platform
docker-compose build

Note

First build could take serveral minutes.

6. Run the image in Docker

dokcer-compose up -d

Note

You may need to manually go to your docker container and restart the containers if something went wrong.

7. Initialize the project

docker-compose exec authsystem python manage.py makemigrations
docker-compose exec authsystem python manage.py migrate
docker exec -it e_learning_platform-xlearnfrontend-1 node ./scripts/initialize.ts

Features

  1. Auth system

    • Register
      • Activate
    • Login
      • Login with Google/Github
    • Logout
    • Reset Password
  2. Course Creation (CRUD)

    • Go to teacher mode after login
    • Name you course and continue
    • Customize your course and complete required fields
    • Publish the course
  3. Browser Courses

    • Go to Explore after login
    • Search courses by title in search bar
    • Filter courses by categories
  4. Purchase Courses

    • Click course card
    • Check course details and chapter contents
    • Enroll course and Pay
  5. Study Courses

    • Find purchased course in Dashboard or Explore page
    • Go to Course details page
    • watch courses video and attachments
  6. Check Sells

    • Switch to teacher mode
    • Go to Analytics

Contribution

If you want to contribute or comment on this project, email [email protected].

e_learning_platform's People

Contributors

thomaslix7 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.