SDC Team & Learning Management System
A web application used by teaching staff and students at the Senior Design Center (NCSU Dept. Computer Science) to manage day-to-day academic and administrative processes.
Started in 2016, I served as principal developer of the frontend UI and assisted in development of the backend.
Technologies: PHP/LAMP stack (backend), AngularJS (frontend)
Student registration & project bids
The system automatically creates user accounts from the official university registrar records and places students into the correct course section.
In the first week of class, students use the system to bid for the projects they want to work on. Each student chooses their top 3 choices of project and writes a brief statement for each describing why they chose it. They may optionally specify teammate preferences. The teaching staff use this information to assign students to teams.
Team and advisor assignments
The teaching staff use the system to create teams and assign users as students or advisors to those teams. Teams are the core entities in the system; all other functionality, roles, and permissions are derived from a user's relationship to any given team.
GitHub repository provisioning
After teams are assigned, the system automates the creation of private GitHub repositories for each team. It automatically assigns the correct permissions for each relevant user – students have write/push access, and advisors and sponsors have read-only access.
At the end of every week, the system generates an overview of team activity on GitHub – commits, issues, PRs, etc. – and sends an aggregate report to each advisor for their relavent teams.
Team deliverables submissions
Throughout the semester, teams are required to submit a variety of deliverables, including written documents, presentations (slides), and poster designs. All assignment submissions are handled through the system; any member of a team can submit an assignment on behalf of their team, and each member can see all of the team's assignments.
The system automatically notifies students when assignment lockers open, and also when the assignment is near due if their team has not made any submissions. Students and teaching staff are notified when submissions are made for any of their teams.
Incremental & staged advisor feedback process for reports
Written feedback on assignments is a collaborative effort from the teaching staff, as each team has multiple advisors. Advisors use the system to download files submitted by students and upload their own feedback as comments or annotations on the files, which are initially hidden from students.
The system allows advisors to monitor the status of feedback on their teams' assignments, seeing at a glance which assignments have been, or are currently being, reviewed. After all advisors have uploaded feedback on an assignment, a single version of combined feedback can be released to students.
Individual student work logs & reflections
Each student is expected to keep a written log of their work for the entire semester. The system allows them to write log entries in plaintext or markdown, providing flexibility in how they can express reflections on their work.
Students can see a reverse-chronological list of all their log entries grouped by week. The system provides a summary overview of their total work for the semester, breaking down hours by category and providing guidance on whether they are on track to meet the total expected hours by the end of the semester.
Teaching staff use the system to read log entries of students on the teams they advise. Advisors can view logs of an individual or combined logs of a team. The system provides an overview graph of work hours over time. It also allows teaching staff to compare the hours of team members to monitor for possible problematic distributions of workloads.
Students submit monthly peer evaluations of their team members and summaries of personal contributions. The system allows them to provide numeric scores on a rubric as well as provide open-ended qualitative feedback.
Teaching staff use the system to analyze the peer evaluations submitted by the teams they advise. The system provides an overview of aggregate peer scores as well as functionality to view individual scores.