Capstone Blog

Week 13 (11/18/2019) – Conditionals, Videos, and Polishing

After fixing some minor issues lingering from last week, I setup video uploading and viewing. The videos load surprisingly fast, even though the site is a subdomain hosted with shared hosting. There are buttons on the MyProfile page now: if account is not approved for upload- an application button will show instead of a course upload button, if the user has uploaded videos- there is an edit videos button. Other than these changes, I made some minor CSS edits / touchups.

Week 12 (11/11/2019) – Looking Better

This week many things changed with my project, some changes big and some small. To start, the site finally has a logo. Its very basic, but its better than the default text that was previously used. The courses now display their cover images as well, which can be uploaded by the user. To finish off the UI, I added code-behind to display (or not display) functionality based on current user authentication (or lack of). I also added some non-cosmetic changes this week: Course upload restriction until approved + approval application. These changes are live:, source code:

Week 11 (11/4/2019) – Fixing things, playing videos Pt. 1

This week I added some code that will allow for playing course videos, and will allow for tracking watch time. I also fixed many issues that surfaced during the past week, having to do with (Sql) Login, Course upload, and video index position. All Sql interactions are now commands with parameters instead of stored procedures / string concatenations. These updates have been published to the dev site.

Week 10 (10/28/2019) – Course Index Edit Method

This week, I added a method and Sql stored procedure that allows users to edit indexes of videos on courses they have created.

Week 9 (10/21/2019) – Course Editing Method, Bug Fixes, + a Big Refactor

This week, I added the ability to edit courses to the site. Courses can be edited from the MyProfile.aspx page, which displays all of the courses created by the currently logged in user. In addition to the new feature, I fixed a number of bugs, one being mismatched data entry when creating a course. To improve performance and code quality, I refactored all of the code and closed / disposed all close-able and disposable objects.

Week 8 (10/14/2019) – Displaying Course Videos on Course View Page

This week, I worked on the code that will fill the course view pages with videos. The courses are loaded in as bootstrap cards, and appended to the HTML with data from the SQL server. To improve this, next week I will finish this section off by making the cards clickable (creating a video player), and record user watch time.

Week 7 (10/7/2019) – Course uploading and viewing

This week, I got my first pull request on Github! Someone contributed some code to simplify a string sanitation method. Other than that, I added a page to view all courses as Bootstrap cards, which are redirected to a Course view page OnClick.

Week 6 (9/30/2019) – Course Creation and Management

Course creation has now been added to the project, as well as the ability to edit an existing course. In order to add a course, a user must be logged in (just as it would be like in production). Videos can now be added to courses, including titles and descriptions. One of the more challenging tasks this week was creating a method that calculates an uploaded video’s length (as in time / image of code is pictured). To finish this week off, I will be completing the course creation and management portion of the project by adding user-editable video indexing (for adjusting the order of the videos in a course)

Week 5 (9/23/2019) – File Upload

This week, I learned that I take uploading files for granted on my favorite websites; It just never seems like something that is complicated, finicky, or completely broken :). While debugging I had to wrangle with Windows 10 file permissions, after publishing the site I had to spar with my hosting service in Plesk. There is now a working file upload demo on Github.

Week 4 (9/16/19) – SQL

This week, I focused on the database functions on a local test MSSQL instance. I have written stored procedures to minimize IIS load and better organize code. There are stored procedures for creating an account, deleting an account, creating a course, deleting a course, and updating a course.

Week 3 (9/9/19) – First Demo Publish

The demo site is now live at This is a new address, because my last hosting provider had no support for .NET 4.8. The site is now hosted by GoDaddy, and I have a new $0.95 domain name. Nothing has changed in the hosting tech, except for the code support. I finally decided on a Bootstrap theme; The project now uses Cosmo, by Bootswatch. I’ve created and (mostly) populated the demo pages with controls. I have also setup some basic C# and SQL for account creation, complete with password hashing.

Week 2 (9/2/19) – Initial Project Setup

This week, I set up the hosting, DB, and the VS project. Before I create the full project, I am going to create a few prototypes; These prototypes will be demonstrating Prof / Student login, course creation, and file upload. These prototypes, if satisfactory, will be used in the full project.

Week 1 (8/26/19) – Introduction

For my capstone project I will basically be creating an online learning platform, similar to LinkedIn Learning or Udemy. The site will be ASP.NET with C# code-behind, using Bootstrap CSS for the bulk of the site design; I will be using my existing hosting provider for a remote IIS server and SQL database. I will be using a subdomain of a $0.95 domain that I own. I would use a normal domain, but I am using the domain to host 3 projects currently, and while domains cost money, subdomains of my domains are free!

Source code repo: