OpenCourse is a simple, easy-to-use LMS built using Flask. The goal of OpenCourse is to be a minimalistic, simple course management tool. Open source will only use simple course tabs such as assignments, grades, and course materials. It avoids extras that clutter the space and are never used. It will provide a simplistic, easy-to-use interface for teachers to manage courses with students.
-
Create a virtual environment and activate it.
Windows (PowerShell):
python -m venv venv .\venv\Scripts\Activate -
Install all the requirements from requirements.txt
Windows (PowerShell):
pip install -r requirements.txt -
Run the app
Windows (PowerShell):
python run.py
venv\Scripts\activatepytest
Person 1 (Rachel) – Backend Models, Database, Create/Delete Routes Build SQLAlchemy models, Configure and initialize the database, and implement main entity CRUD routes.
Person 2 (Brian) – Authentication, WTForms, Edit/Update Routes Create authentication and main entity forms, Implement Flask-Login authentication, and implement edit/update routes for assignments and materials
Person 3 (Sohum) – Unit Testing, Documentation (PDF), README, Tagging Create tests/ folder structure, Write unit, regression, and implementation tests, create documentation, complete the full README, tag github, final verification for the app to be functional
Test Report
Model Tests
- These were for User, Assignment, CourseMaterial creation
- Relationship tests (between instructor and materials)
Form Tests
- LoginForm validation for:
- Valid credentials
- Missing Fields
- Incorrect Data
Route Tests
- Public list routes return HTTP 200
- Protected routes redirect when the user is unauthenticated
- Instructor-only access is verified
Integration Tests
- Login is successful
- Login fails
- Assignment creation and deletion
- Material Creation
- An unauthorized user is attempting to access routes that are protected.









