Project

22 Sept 2025

Capstone CS50W: Classroom

projects/J9Y1nXgUm2tw.png

Overview

This is my capstone project in CS50W called Classroom, designed to simplify the educational experience for both teachers and students. It provides a centralized space where instructors can create and manage courses, post assignments, and share materials. Students can enroll in courses, submit their work, and view announcements, creating a more organized and efficient learning environment.

About this app

I created an application similar to Google Classroom. Even though I made an application like Google Classroom, my application looks not completely the same as Google Classroom. The reason I made this application is because I think this application is quite challenging to make. In this application teachers can create classes, then post materials and assignments. Meanwhile, students can comment on material posts and can submit assignments.

Distinctiveness and Complexity

I believe my application meets the specified requirements because it differs from the other projects in this course in terms of themes, features, and database structure. As for the theme, my application has a theme about education which is of course different from other projects in this course. In terms of features, this application has several features such as creating classes, adding tasks (for teachers/authors), adding materials (for teachers/authors), submit tasks (for students/members), commenting on material posts, and returning tasks (for teachers/authors). In addition, this application database has a structure that has a different level of difficulty from the other projects in this course, so there is the use of OR and UNION in this application's database queries. This application was built using Django to create a backend consisting of 9 models, 33 routes, and many pages. For the front-end, I use Javascript to post, retrieve, and expand comments on material posts, display dialogs and clear dues in add-task.html, display dialogs for editing and displaying class information, and for joining classes. All pages in this application are mobile-responsive using Bootstrap and CSS