Development - TRAC

Developer Writeup

Introduction

In fall of 2008, the Technology, Research, and Communication (TRAC) program was created at Lehigh University. Its purpose: to advance writing and communication instruction in courses across the curriculum at Lehigh. The TRAC program has been steadily growing since its creation and has grown from 10 to now 85 active Fellows, serving over 1,000 students a semester. A large component of the TRAC program is consistent and continuous improvement. This improvement is largely done through the analysis of the results of an anonymous feedback survey filled out by students who have received feedback from a TRAC Fellow. However, the TRAC program has lacked two major resources since its inception: first, a robust and efficient way to get the survey responses back to the Fellows, and second, an overarching, program-wide website. This is where we came in.

Purpose

When approaching this problem, the 2024 CSE/CSB capstone team set out to solve these problems. When beginning their work, the team placed a focus on three main things: efficiency, privacy, and maintainability. They worked to make a solution that effectively sends out surveys to students who have worked with a TRAC Fellow program, allowing Fellows to visualize the survey results for the public, the Fellows, administration, and potential employers. The website was set to have a landing page for the program, biographical pages for each Fellow, and an overarching course overview at a minimum. In creating their minimum viable product, the team emphasized building the site in a way that would be maintainable and robust in order to ensure its longevity.

But how was this to be done?

Creation

The first step in their journey was to lay out their framework, solidifying the desired look and flow of the revamped survey and website was key before production could begin. Once all the kinks were ironed out with the program’s leader, Dr. Justin Greenlee, work began. Work was split into four main focus points in the beginning: creating a new survey, creating databases to hold all of the program’s information, coding the front-end of the website, and coding the back-end of the website.

Survey

The TRAC program’s Immediate Feedback Survey was long overdue for a makeover. The questions needed to be focused and responses needed to be of a type that could easily be fed into the database then transformed into quantifiable data. Through meetings with Fellows past and present as well as the program’s leadership team, the new survey was created and polished to a point where it would be able to serve its intended purpose. But, creating the survey was only the first step. The focus now shifted to distributing the survey to not only the Fellows, but also pulling the responses to the website for visualization.

With Qualtrics being the main tool used for the survey, it was important to create workflows and assign Fellows to their respective IDs in order to properly extract the data. The first step in this process was to associate every Fellow’s name to their Lehigh email address. This association allows for not only the survey results to be sent to each individual Fellow, but it ensures that when the data is pushed to the website, the response data is assigned to the propper student. This link between a Fellow and their email was created through variable assignment using JavaScript. After this variable association was created, a workflow was put in place to email a Fellow some amount of time (for anonymity) after the survey was completed with their results. The final task was to create a different workflow with the main focus of extracting the data to the website databases. This workflow was primarily done using JSON and pushes the results from the surveys each Monday.

Database

Our main focus when creating our database was to create a series of tables which worked with each other to best store and represent our data. We currently have nineteen different tables with the fellows table being the largest with fourteen fields. The tables can be broken down into three main categories: the survey, the courses, and the fellows. The survey category consists of six tables representing the survey itself, the overall responses, the questions, possible choices, numerical responses, and text responses. The courses category comprises three main tables representing the courses themselves, courses by semester, and the fellows by course per semester. The eight fellow-centered tables consist of users, fellows, fellows by semesters, responsibilities, fellows by responsibilities, shares, profile pictures, and programs. There are two tables which serve purposes for more than one of the categories: colleges and semesters. These tables all work together to create a strong framework which allows for all of the TRAC program’s data to be maintained and updated when needed. Our database was created using MariaDB.

Front/Back-End Coding

We needed to create a front and back end that worked together to pull and display information from our database to the user-facing side of the website. Our biggest goal with the front-end of the site was to create a platform that was easy to digest and navigate. The job of our backend was to be the mentioned connection between the front end and the database tables. We focused the styling on matching the styling of Lehigh’s existing Writing Across the Curriculum page. Using this page as a guide allowed us to fasttrack much of the designing process and focus more on polishing/further developing what already exists. We started with the About page, then moved into The Fellows, The Courses, and lastly, Our Impact. All of these pages required a connection to the database tables and to be laid out in a view that was easy to quickly navigate while still showing their desired information in a clear manner. The Fellows and Courses page pull directly from their respective database tables, while the Our Impact page had to take a few extra steps in order to pull and sum the desired numbers. The back end ensures security on the site, requiring fellows to login in order to view their survey results or edit their account information. Site admins have the ability to modify any fellow or course information directly from the admin side of the site. Our frontend was created primarily using HTML, CSS, and Javascript. Our backend uses Python Flask, SQL, and LDAP. Using Python Flask was not our initial plan, but it is the technology that best integrates with the existing Lehigh server, so we adapted and did not face many challenges with Flask after the initial learning phase.

Our Impact

This page was made with the intention of being the new landing page for the website. It consists of “bubbles” showing the by-semester and aggregate numbers associated with the TRAC program. The “bubbles” are broken down into: current fellows (broken down by college), faculty assisted (broken down by college), classes TRACed, students assisted, and conferences logged this year (by students and by fellows). Each category pulls totals from the database tables and sums their values when necessary. This page is designed in a manner that automatically updates as information is added to the tables.

The Fellows

This page is the focus of all things Fellow related. By default, fellows are listed alphabetically by last name, but the page can be sorted in a variety of ways. There are also a handful of filters that can be applied to the page, limiting the visible fellows to those who fit within the filter. Clicking on a Fellow brings you to their individual bio page. This bio page includes the Fellow’s name, profile picture, pronouns, responsibility (leadership position within the program), experience (time in the program), graduating year/class, college(s), major(s), minor(s), hometown, and a short biography. Every Fellow is able to modify their personal bio page once they’re logged into the website. They can also modify the class they’re currently TRACing or have TRACed in the past. Admins on the site have the ability to edit any user’s bio page in the same way that a Fellow would edit their own page. Admins are also able to “lock” an account so that any user who is not an admin cannot edit it, as well as hiding the user from The Fellows page.

The Courses

The courses page was designed similarly to the Fellows page. Each course can be clicked on to see the current Fellows TRACing the course as well as the professor(s) and number of students enrolled in the course. Courses can be filtered and sorted in a desirable manner.

About TRAC

This page was the most straightforward in its creation/maintenance. The text statements and program image were provided directly by the WAC director. The style of this page was made to match that of the Writing Across the Curriculum page.


Meet the Developers

Image of Dylan Brunner
Dylan Brunner
Database Admin &
Backend Engineer
Image of Kevin Cawood
Kevin Cawood
Web Development
Image of Niija Douglas
Niija Douglas
TRAC Expert &
Full Stack Engineer
Image of Carl Freyer
Carl Freyer
Full Stack Engineer
And special thanks to Professor Elroy Sturdivant for your support throughout this project!