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.
The app is hosted at: https://online-course-manager.leevihal.me/
This bullet-point list fill list out all features for this application and is kept up-to-date throughout the course.
- Setup Github Repo
- Connect project to Labtools
- Provide a roadmap and feature list for this project
- Provide app building instructions for peer reviewers
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
- Student-user features Completed
- Docker version 20.10.21 or greater
- Clone the repository
git clone https://github.com/LeeviHalme/online-course-manager.git
cd online-course-manager
- Setup environment
mv .env.sample .env
- After renaming the example env file, fill in the values according to your configuration!
- Starting the compose-project
docker-compose up --build
- Adminer SQL explorer: localhost:8080
- Flask app (OnlineCourseManager): localhost:5000
docker-compose -f docker-compose.prod.yml up -d --build
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
MIT <3