Spring 2022 Capstone Projects

As a capstone on their Computer Science degree, senior students complete semester-long, team projects working with industry, faculty, and non-profit organization sponsors; and then present their projects at this event.
 

May 11th 6PM in Harney 136

6:00 pm Introduction by Faculty Adviser Doug Halperin
6:05 pm - 8:15pm - Student project presentations 
8:15 pm - 8:30pm - Awards Presentation & Remarks by Alark Joshi, Department Chair
 

Project Descriptions

Dishcovery

Presenters: Manak Ahluwalia, Brooke Richards, Jerome Reduta, Matthew Wong
Sponsor: Jonathan Cromwell - Dishcovery
Teaching Assistant: Nikhil Bhutani

When searching for something new to eat, any consumer will find endless options - restaurants, dishes, advertisements – leading to analysis paralysis, and ironically back to the meals they always eat. Dishcovery is an app built to help users find new dishes while fighting against analysis paralysis. Just open the app, swipe right on dishes you like, swipe left on what you don’t, and order what you want. Our CS 490 team have worked on implementing the current UI/UX, tracking user analytics, filters for price, distance, whether the food is gluten-free, and others, and implementing user analytics and deploying a Machine Learning algorithm. To do this, we used Flutter and Dart as the front-end, Firebase and AWS as the back-end, and FlutterFire as the API.

 

Generic Data Fetcher

Presenters: Hieu Vuong, Joshua Guevarra, Ramneet Kaur, and Gerardo Aldana
Sponsor: Mario Lim - Openprise
Teaching Assistant: Nikhil Bhutani

Businesses need data to support their customers and increase their performance. However, data doesn't always come easily. Sometimes the data comes from inside a Wikipedia table or from a single zip archive containing more than 50 different files. Taking inspiration from these problems, we created a microservice called Generic Data Fetcher. It is a web application that provides the ability to parse data hidden in URLs into comma-separated (CSV), UTF-8 encoded format. In addition to parsing data from URLs, Data Fetcher also enables users to store their
files in the cloud storage of choice (Amazon S3 or Google Drive). Periodically, the data will be updated automatically to ensure that users always have access to the latest version. Vue in the front-end and Groovy/Micronaut in the back=end, our project aims to minimize learning time and maximize production time. A simple JSON file is used as a database because the application allows users to use the application without interacting with the user interface. Designed and developed using plug-in architecture, the application ensures that as new changes come, they will be implemented with as little refactoring as possible. Overall, Generic Data Fetcher gives users legible and prepared data through a few simple steps.


CI/CD Pipeline

Presenters: Venkatraj Mohan, Xianpeng Chen, Briant Shen, Kassy Pak
Sponsor: Chris Smith
Teaching Assistant: Nikhil Bhutani

The motivation behind this project is to introduce students to industry-standard processes for delivering software. The project focuses on how to monitor software development processes by exploring and using multiple tools for creating a simple Continuous Integration/Continuous Development (CI/CD) pipeline. CI/CD allows for seamless integration and deployment of software to both local environments and on the cloud. For this project, the team developed a simple web application using GoLang on the back-end and HTML with jQuery AJAX on the front-end. The simple web application is for testing the cycle of the CI/CD pipeline with every new update. The pipeline uses Git for version control, Travis CI and CircleCI as our build tools, Discord Integration for tool updates and Heroku for cloud deployment. Our project also includes a GitBook guidebook written by the team with the purpose of documenting their experiences and teachings for students who want to create their own CI/CD pipeline using this project as an example.


AccesSOS

Presenters: Luis Sanchez, Kevin Chen, Deryk Sangal, Sabrina Bires
Sponsor: Gabriella Wong - AccesSOS
Teaching Assistant: Nikhil Bhutani

Gabriella Wong, our sponsor, created AccesSOS after having first-hand experience with her deaf father who was unable to contact 911 in an emergency. The primary goal of AccesSOS is to help individuals with disabilities easily contact 911 in an emergency. The website also allows a user to check if Text-to-911 is available in their area. The USF AccesSOS group was divided into twoteams. The front-end team worked on modifying the website using React and Bootstrap. Some modifications included changing the map color to be more visible to those hard of seeing, making it clearer to users whether Text-to-911 is available in their area, and adding step-by- step instructions on how to text 911 for help. The back-end team worked on removing duplicates from the FCC spreadsheet as well as giving the AccesSOS administrators the ability to
manipulate the MongoDB database using Java.


Plant Cam

Team Members: Yulong Guo, Alexander Franklin, Peter Cuddihy, Adon Anglon
Project Sponsor: Phil Peterson - USF Computer Science; Saranya Radhakrishnan - Unfold
Teaching Assistant: Nikhil Bhutani

Vertical farming is a method of agricultural farming very different than traditional farming as it utilizes stacked vertical space. Some vertical farming facilities have a large quantity of plants in a confined space in which quickly identifying plant plots and checking data about them can be quite cumbersome. The team’s Plant Cam project is a solution to this problem. It utilizes a camera that takes a picture of a plant plot and its respective QR code. This QR code holds the location of the plant’s details in a virtual data table in the cloud. Using IoT Core, Cloud Functions, and other Google Cloud services, the photo taken is encrypted and transmitted using MQTT message protocols for future reference and use. This process will greatly assist plant breeding scientists to isolate the best plants with prioritized characteristics, with the intent to grow better produce for the commercial market and consumption.


Color of Light & Pollution

Presenters: Anthony Licea, Dunham McBride, Heidi Shimek, Alina Xia
Sponsor: Sean Olson
Teaching Assistant: Ziyang Liu

Air quality is something that has become widely talked about after recent wildfires and general pollution concerns. With air quality deteriorating, many people turn to sites to learn the air quality at that point in time, specifically when the air quality is visibly poor. The purpose of this project is to visualize the color of light based on pollution levels. The project measures air quality with sensors that continuously collect data as the air quality changes, while cameras record the visual color of the air quality. The project intertwines the visual perspective of air quality with pollution levels, or Air Quality Index, into one visual that shows the coordinating color with the current air pollution.


Configur8

Presenters: Cameron Deputy, Maguire Marion, Mitchell Markoff, Michel Siegert
Sponsor: Reiner Steffens - Consilient Labs

Teaching Assistant: Ziyang Liu

Configur8 is an intuitive, single-page web application which will enable Consilient Labs’ customers to easily set up, test, deploy, and manage their Docker cluster configurations. This application transforms the process of manually configuring dozens of Docker parameters by guiding users through a simple and easy-to-use dashboard that includes automatic syntax checking, compatibility cross-checking, and error validation. Utilizing a fast React front-end and a powerful Python and Flask back-end with Docker integration, Configur8 is completely capable of full-stack operations such as writing out new files, sending commands over our own APIs, and dynamic form loading based on incoming configuration files. Our project has created a seamless way for Consilient Labs to expand their services and for their customers to improve
their efficiency.


Neftimate: Zestimate for NFTs

Team Members: Charles Sy, Adrian Smith, Selvii Palani, and Nicki Hashemi
Sponsor: John Huang
Teaching Assistant: Ziyang Liu

The overall purpose of this project is to calculate daily a fair value of each NFT (Non-fungible Token) asset based on a chosen collection (Crypto Chicks) in OpenSea (the leading marketplace for NFTs). With this project, users will be able to view the different NFT collections and their assets’ current “neftimate” (estimated price). This project provides its users a platform to view values for NFT item in which they are interested. The team leveraged the OpenSea API to pull pricing data and used Typescript and Node.js to develop their solution. In addition, the team used AWS technologies such as lambda functions, AWS Simple Notification Service and Amazon Relational Databases (RDS); and AzureML Studio to train a machine learning model.


Habit Tracking App: Social Habits

Presenters: Sophia Ladwiniec, Arnau Vila, Edward Rees, Kate Walker
Sponsor: Jose Alvarado - SF Dev Shop
Teaching Assistant: Ziyang Liu

We typically go through our days on autopilot and struggle to keep ourselves accountable when forming new habits. Creating new routines or changing existing ones is already a challenge, but it’s even harder without any help. One way to improve our own accountability is by tracking our own progress, but most importantly through staying connected with others; which we also tend to struggle with nowadays. That’s where our app “Social Habits”, comes in. Our mobile application will help our users stay connected while tracking the habits they want to incorporate into their lives. The overall purpose of this project is to motivate and encourage the user, by providing a social support system while forming new practices. This addresses the issue of self-accountability with creating and maintaining habits. This fits into the productivity market because people like to use apps to keep themselves and close ones accountable. This benefits the users by creating a social space for users to share their routines and improvements. Our product is a mobile application built for both iOS and Android, with our front-end built using React Native and Expo, while our back-end is built using ExpressJS and a PostgreSQL database.


Work Schedule App

Presenters: Gordon Mai, Kai Burkholder, Serena Villanueva, Yi Qing Khoo
Sponsor: Jose Alvarado - SF Dev Shop
Teaching Assistant: Ziyang Liu

The Work Schedule App was created with the intention to provide an improved form of our sponsor’s current work scheduling system. Our solution provides an easy to use cross-platform mobile application to help organize a company’s work schedule. The application includes features such as the ability for employees to clock in hours, give and pick up extra shifts, and for managers to keep track of the hours worked. The application was created using React Native to create a cross platform application UI and it communicates with a back-end service built with
Node.js and PostgreSQL.

 

Information In Formation

Presenters: Stephanie Hernandez, Mason Limtiaco, Josh Pokorney, Shehrebanu Rashik
Sponsor: Tim Castillo - Brooklyn Data
Teaching Assistant: Bryce Mighell

Everyone in the Bay Area knows traffic, you have either seen it on the other side of the freeway or you were stuck in it during commute hours. Our team wanted to bring to light the conditions that affect our traffic around the country. We chose to focus on California and Georgia to understand the traffic conditions and what might be causing these issues, either traffic collisions or traffic stops by police. Being able to portray these results visually gives us and others a better understanding of why we have such packed traffic, what people get pulled over the most for, who gets pulled over the most, and when the best and worst time is to travel. The project took in raw data from three different datasets and transformed the data to create different reports in the data process known as ELT, standing for Extract, Load, Transform. The output consists of models that showcase the relation and correlation between the three different datasets. This was accomplished mainly through the use of the dbt tool and a Snowflake data warehouse. Our data was visualized using the Mode analytics platform.


Cryptocurrency Pricing

Presenters: Dennis Dang, David Samia, Eran Young, Marcus Bradlee
Sponsor: Dustin Lyons - Zeroed Labs
Teaching Assistant: Bryce Mighell

Bitcoin Noobs is a cryptocurrency blog that aims to help grow the crypto community through its content and accessibility. Even if you know nothing about crypto, or you don’t consider yourself a “tech” person, Bitcoin Noobs has a clean and inviting user interface with easily digestible content. The team created individual pricing pages for the top 100 crypto coins utilizing data received from the CoinGecko API. These pricing pages include an interactive chart built with Chart.js which can visualize price of any particular crypto currency or compare two given currencies over different time periods.


Should I Drive?

Presenters: Tyler D’Alessandro, Victoria Salinas, Suchitoto Tabares-Tarquinio
Sponsor: David Guy Brizan - USF Computer Science
Teaching Assistant: Bryce Mighell

Distracted driving kills nearly 3,000 per year and causes roughly 900,000 non-fatal accidents annually. Software that detects distracted driving can assist in preventing accidents before they occur. The aim of Should I Drive? is to detect moments of distracted driving and notify users of these driving habits in order to increase driver safety. The team utilized a Long Short-Term Memory (LSTM) neural network which focuses on sequentially based predictions. This project also implements body and face tracking algorithms capable of analyzing each frame of a given video. Through the usage of neural networks, the system will identify safe driver practices via eye and object tracking algorithms built from OpenCV libraries.