Publication Date

Fall 2021



Document Type

Capstone Project

Degree Name

Master of Science


Computer Science

First Advisor

Xin Jasmine Chen, Ph.D.

Second Advisor

Soon-Ok Park, Ph.D.

Third Advisor

Alex Liu


The ongoing COVID-19 pandemic had a drastic impact on the education industry. With the sudden digital transformation, the education sector invested in eLearning, which surged to a $250 billion industry with incredible growth. Our goal is to create an eLearning website which provides the common functionality seen in the marketplace.

From a feature perspective, the website will have user logins and roles which align with the industry such as students, instructors, and administrator accounts. The available features are spilt out by roles. Instructors will be able to add their course materials to the site, interact with students via a discussion board, and view their progress as the course carries on. Students will be able to create an account, enroll in a course, and work through the course materials provided by the instructors. The administrator account will be able to manage the other accounts and existing courses. Furthermore, the site will have a course landing page where a student can search for courses by keywords, explore featured courses, view their enrolled courses, and sign up for notifications and alerts related to their courses.

From a technical perspective, the overall architecture will be a microservice architecture. It will feature a frontend, an API-driven backend, and a database for storage. The frontend will be composed of HTML and CSS for views, JavaScript for driving frontend functionally, and bootstrap for tying those three pieces together into a responsive web application. The backend will be based on .NET Core and written in C#. It will be an API-based server-side application which handles authentication and authorization, routes traffic, serves the frontend pages, and sends calls to the database for data operations. The database will be a Microsoft SQL Server instance which stores the application information in a relational database. In terms of deployment and infrastructure, it will be written as a cloud-native application using Linux docker containers to promote a modern, scalable cloud pattern. Simple version control will be implemented via a private Gitlab repo.