Skip to content

E-Course management platform. Organize online courses efficiently with automatic assignment checking, student/teacher user control and self-enrolment.

Notifications You must be signed in to change notification settings

LeeviHalme/online-course-manager

Repository files navigation

Description

E-Course management platform. Organise online courses efficiently with automatic assignment checking, student/teacher user control and self-enrolment.

This project was made for TKT20011 Intermediate Studies Project: Database Application-course organised by University of Helsinki in the fourth period of 2023.

Peer Reviewers

The app is hosted at: https://online-course-manager.leevihal.me/

Development Plan

This bullet-point list fill list out all features for this application and is kept up-to-date throughout the course.

Tasks

  • Setup Github Repo
  • Connect project to Labtools
  • Provide a roadmap and feature list for this project
  • Provide app building instructions for peer reviewers

Features

Ticked = Completed & Live in Production

  • Automatic CI/CD to a production DigitalOcean droplet running Ubuntu using docker-compose Completed
  • Authentication Completed
    • Ability to login using username (possibly email) and password
    • Ability to register as a teacher or as a student
      • Add validation to user input
  • Courses
    • Student-user features Completed
      • View all courses
      • View courses you've enrolled in
      • View a specific course
        • View course material (text-based) (could implement markup support)
        • Course assignments
          • View course assignments
          • Answer to exercise questions
        • Enroll using invite code
        • View course summary
          • View statistics
          • View total awarded points
          • Unenroll from the course
    • Teacher-user features
      • View all courses
      • Delete a specific course
      • Add new course
      • View a specific course
        • View statistics
        • View enrolled students
        • View specific student's awarded points
      • Edit course
        • Add course material
        • Add assignments
        • View and reset invite code
        • Edit course details

Local Setup

Requirements

  • Docker version 20.10.21 or greater

Setup

  1. Clone the repository
git clone https://github.com/LeeviHalme/online-course-manager.git
cd online-course-manager
  1. Setup environment
mv .env.sample .env
  • After renaming the example env file, fill in the values according to your configuration!
  1. Starting the compose-project
docker-compose up --build

Endpoints

Production setup

docker-compose -f docker-compose.prod.yml up -d --build

Docker setup

If you want, you can build and run the Flask app as a seperate image. To do this, first build the image bu running:

docker build -f Dockerfiles/Flask.Dockerfile . -t online-course-manager

NOTE: In order to use the production version, change the file name from Flask.Dockerfile to Flask.Prod.Dockerfile

After building the image, you can start it up in a container by runnning:

docker run -d -p 5000:5000 online-course-manager

NOTE: This will expose the Flask app in port 5000

License

MIT <3

About

E-Course management platform. Organize online courses efficiently with automatic assignment checking, student/teacher user control and self-enrolment.

Resources

Stars

Watchers

Forks