Computer Science / Software Engineering Capstone Design Projects 2022 - August 9, 2021
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Teams FOSS 1 SpongeFabric 2 Axon 3 LOI Startup 4 Scena 360 5 Coachella SE Tools 6 Insufficiently Caffenaited 7 QUAIL 8 Inliner 9 The Wheelerz 10 KRAM Consultant 11 R2 12 LacusLabs Health 13 Agnes 14 Houdini User Polling 15 Vox Populi Computer Science / Software Engineering
Projects SpongeFabric: A fork of Sponge that supports Fabric mods Improving Dendrite, The Next-Generation Matrix Homeserver Translating user-generated content on visual programming community Scena 360: 3D Online Gathering Spaces Superpowered: Power through the day without your calendar caffeine: A new symbolic execution engine GitHub Similar Repo Search and Retrieval Tool Inliner: Pull blocks of code into a single file KubeInspect: An App to Automatically Fix Kubenetes Vulerabilities Undecided ReCREAT: Renewable Energy Analysis Tool for Remote Communities SVTS: A Mobile Application for the Sri Vidya Temple Non-Profit Testing effectiveness of an app to quit smoking DCC Escape: 3D virtual escape rooms for mental health awareness Real-Time Polling Software Targetting Spontaneous Content Creation ... continued on next page ... Capstone Design Symposium 2022
Teams 16 Chicken Nuggets Finance 17 Team Moss 18 Localised Natural Language Processing 19 DiDiDaJi 20 fnord Physical HCI 21 Dot Dot Dash 22 VivaLaZeez Web Use Management 23 Autumn Leaf Studio Distributed Storage 24 HYDRA Gaming 25 Vulcan Student Tools 26 rhino 27 alarm 28 uConverse Learning To Code 29 BSD Computer Science / Software Engineering
Projects Quizem: A simple way to conduct knowledge check-ins MOSS: A Crypto Algorithm Sharing Platform Fig: Buy Now Pay Later for Non Prime Consumers Little Brother Hit Chicken: Language Based Textual Refinement AutoComic: Machine Translation For Graphic Novels HCI research on the applications of gestures through a spherical input device Eye tracking for modern apps QB TUA: Time Usage Analysis BitLodge: A decentralized file storage system Vulcast: Play console games remotely with your friends! ReviewKit: A centralized platform for sharing and critiquing resumes uSource: Website to help students find university resources A social platform for education-related mentorship and discussion LiCode: A website for competitive and gamified programming Capstone Design Symposium 2022
1 SpongeFabric: A fork of Sponge that supports Fabric mods Team SpongeFabric Minecraft is a popular sandbox video game. Sponge is a modifica- tion of the official Minecraft server engine. Sponge server not only has a better performance over the official one, but also expose a set of APIs that can help server admins manage their server more easily. Currently there are two variation of Sponge, SpongeVanilla is a Sponge server tar- Tingda Du, Logic Fan geting the unmodified (i.e. vanilla) Minecraft; and the SpongeForge is a Sponge Forge is a Sponge server targeting the Minecraft with Forge modding platform. There are two modding platform for Minecraft that are competing and incompatible with each other at present time. They are Forge and Fabric. Both Forge and Fabric ship their modified client side and modified server side to the player. However, neither of them are any better than the official Minecraft server engine. As I mentioned above, the Forge player has an alternative, the SpongeForge, which is much better than the official Minecraft server engine (and hence better than the Forge Minecraft server engine); yet Fabric player can only use their Fabric Minecraft server engine, which is not as good as a Sponge. Thus, our goal is to make a fork of the Sponge Minecraft server to support Fabric mods, i.e. a SpongeFabric. Then, the Fabric mod users can have the benefits of the Sponge Minecraft server over existing Minecraft servers that support Fabric mods. Currently the Fabric user are forced to use the Fabric Minecraft server because there are not alternatives. With the existence of SpongeFabric, the Fabric user has an option to user SpongeFabric. There are three advantage of adopting the Sponge server engine instead of the official one. First, there are many performance patch inside the Sponge server, which let Sponge require cheaper server to run. Secondly, the Sponge is more configurable than the official one, it expose more configuration options, and many of them are related to performance. Thirdly, Sponge server engine also comes with a ecosystem. Since Sponge server engine expose a set of APIs FOSS Computer Science / Software Engineering
for server management, there are many third-party server management plugin for Sponge server, which could be helpful for server admin. The current Fabric Minecraft server engine is useable. However, a Sponge- Fabric will give the Fabric player a better overall experience as we mentioned above. There is no result yet. https://github.com/LogicFan/Sponge,https: //github.com/LogicFan/fabric-loom Capstone Design Symposium 2022 FOSS
2 Improving Dendrite, The Next-Generation Matrix Home- server Team Axon Team Axon Project Abstract Messaging protocols are ubiqui- tous in today’s day and age. In the earlier eras of the internet, it was common for users to host such applications, such as Internet Relay Chat (IRC), on their own servers, or those of associates. This de- centralized model of communication, although present today in vestigial Alex Chan, Joshua Hong, Alexander forms, such as that of email, have Kursell, David Spenler nonetheless fallen out of prominence in favour of centralized alternatives: Facebook, Whatsapp, Slack, and others. Although these successors offer ad- vantages in convenience, many cite concerning drawbacks, such as issues and privacy and censorship. Consequently, there is a renewed interest in reviving the decentralized model of messaging with modern features such as voice/video calling, reactions, images, and other features modern users expect. The Den- drite system, an implementation of the Matrix protocol, is one such tool that has arisen in response to this demand. The problem with nearly every modern instant messaging system is the fact that they are closed systems, run by for-profit companies that offer users no control over their data or user experience. Users cannot migrate providers, send messages between different providers (Slack, for example, cannot send messages to Discord), or run their own servers to control their data. Matrix provides all of the same features as other modern instant messaging platforms. Users can register, send Messages to other users, join or create Rooms to exchange Messages with many other Users, and invite other Users to those Rooms, and Rooms can be organized into Spaces - the equivalent of Slack Communities or Discord Servers. Additionally, Matrix allows users to communicate across providers, host their own servers if they are so inclined, and access their messages using a variety of client applications, each with different UX ranging from terminal-based clients to Slack-like clients. Currently, the most popular implementation of a Matrix server is Synapse. Synapse is written in Python and is slow and difficult to deploy. Being slow means that it is more difficult to self- host, and the lack of speed translates into poor UX for users. Dendrite was created specifically to be the next-generation FOSS Computer Science / Software Engineering
Matrix server that would solve these issues, being fast and easy to self-host. If completed, it should become the new de-facto standard for Matrix homeservers. Dendrite had its first public beta deployment in October of 2020, but still has a lot of bugs and is missing key features to put it on par with its predecessor, Synapse. The maintaining team actually quantifies the features of Dendrite with regards to an API specification, with the release in October at around 60 We are aiming to massively improve the specification compliance of Den- drite, prioritizing implementing the most useful or most widely desired parts of the specification first. Since beginning work on Dendrite, we have submit- ted a half-dozen patches fixing bugs or implementing isolated components of the specification, which we received feedback for, improved, and ultimately merged. In this term, we intend to continue implementing fixes, moving to- wards larger and more complex features that require a greater familiarity with both the specification and the codebase. Capstone Design Symposium 2022 FOSS
3 Translating user-generated content on visual program- ming community Team LOI Pocket Code is a visual program- ming platform that allows students to create programs and games di- rectly on their smartphone. By using a "Lego Style" programming frame- work, the Catrobat language allows beginner programmers to design their own games and animations to de- velop real and useful applications. Then, students can share them on the Pocket Code community and Jiahao Zhang, Josh Schaefer even publish them as standalone apps on Google Play. All source code re- lated to the Catrobat system is free and open source under the GNU Af- fero General Public License. More information on Pocket Code can be found at https://catrobat.org/our-apps/ and information on their license is at https://developer.catrobat.org/licenses. The Catrobat community platform is used by people across the world speak- ing in different languages. So, there is a need to support various languages throughout the site to allow all users to interact with each other through the platform. Currently, all of the static content are translated by volunteer trans- lators. User-generated content such as program descriptions, comments, etc. remains in the original language without any process to translate the content to the user’s preferred language. To allow user-generated content to be translated to any language at the user’s request, a translation API such as iTranslate can be integrated into the Catrobat platform. Through the translation API, the source language of the content can be auto-detected and then be translated to the user-preferred language. Because of the nature of the open source project, funding is limited and any paid translation service is unrealistic. Free APIs have character quota. This opens the additional potential need to cleverly manage quota, load balance between multiple translation APIs and cache commonly translated content. Additionally, program owners should be able to add custom translations to their projects. When they are specified, custom translations can be used instead of a translation API. Throughout SE 390, we developed multiple buttons for different sections of a user’s program page which opened a google translate page where the user- FOSS Computer Science / Software Engineering
generated content could be translated from the auto-detected source language to the user’s preferred language. This new feature was merged into production at the end of SE 390. Currently, we are working on implementing the iTranslate API to show the translations within the Catrobat platform without the need to open an external webpage. Nonetheless, this feature can still be used when all goes wrong with the translation APIs. We believe this feature will improve the internationalization of the Pocket Code platform, giving equal access to content regardless of the users’ back- ground, location or native language. https://share.catrob.at/app/ Capstone Design Symposium 2022 FOSS
4 Scena 360: 3D Online Gathering Spaces Team Scena 360 We look at the history of video con- ferencing, all the way back to late 2000s giant Skype and notice that the space of online gatherings has not changed much or seen much innova- tion from product perspective since. In 2011, Google released an open web protocol for multi-party video confer- encing, WebRTC — upon which sev- eral of today’s conferencing/stream- ing services are built — Google Meet, Anshuman Banka, Danilo Joksimovic, Discord, Houseparty, FB Messenger. Gabriel Robles It wasn’t until COVID-19 took over the world we realized how "broken" regular video conferencing is - es- pecially where most people prefer keeping their cameras turned off. Several studies have shown the existence of "Zoom Fatigue" - and this can only be fixed by making online gatherings more immersive and serendipitous. The up- coming generation is one that has grown in an era of video games like Minecraft, Fortnite, etc., where it has grown to become comfortable with 3D virtual worlds and much prefer these over 2D mediums. Scena 360 leverages 3D spaces along with spatial/positional audio to repli- cate the feeling of real spaces. This allows gathering attendees to move around freely and meet/bump into people like they would in real life. 3D avatars al- lows users to feel more present without keeping their cameras turned on while still allowing two people to face each other and maintain eye contact. Hosts of these events can easily manage and protect their spaces from attacks like [Zoom Bombing](https://www.forbes.com/sites/kateoflahertyuk/2020/03/27/beware- zoom-users-heres-how-people-can-zoom-bomb-your-chat/?sh=1ea90581618e) by adding email allowlists and passcodes through Scena 360’s Spaces Dashboard. https://scena360.com Startup Computer Science / Software Engineering
5 Superpowered: Power through the day without your calendar Team Coachella Superpowered is a calendar app for the Mac menu bar. Be notified about events and join Zoom meetings with- out having to go to your calendar. There are 300M Zoom users. At $10/mo, that puts us at a 36B mar- ket opportunity with software mar- gins. Zoom meetings are the most important events in your schedule. Nikhil Gupta, Ibrahim Irfan, Jordan Opening them from Google Calen- Dearsley dar requires finding the calendar tab. Doing it directly from the menu is 10x easier when you do it 10x a day. Users don’t want to have to go to Google calendar 10 times a day to join their Zoom meetings. We put the link at their fingertip right when they need it. We launched 2 months ago, already have paying users who use everyday. Happy to share specific numbers privately if that’s a requirement. superpowered.me Capstone Design Symposium 2022 Startup
6 caffeine: A new symbolic execution engine Team Insufficiently Caffenaited The process of creating software is often error prone and results in bugged software. Although some techniques such as continuous inte- gration (CI), unit tests, and code re- views can be used to help detect and eliminate bugs, it is not uncommon for them to slip by. Other techniques to increase coverage include fuzzing, however it is driven mostly by gen- Danieil Skrinikov, Sean Lynch, Misha erating test cases through heuristics. Zharov, Brooke Dolny A new generation of software testing tools exists in the form of symbolic execution engines. Symbolic execution works based on the idea of using a SAT query to deter- mine whether a path through a program can be executed and, if so, generate a test case that will reproduce it. By default Caffeine will uncover undefined- behaviour bugs such as out-of-bounds array access, divisions by zero, and null pointer dereferences. In contrast to fuzzing, a symbolic execution engine will determine test cases by using a SAT solver to analytically solve for them. This means that it is much better at finding test cases that exercise hard-to-reach paths in test programs as it can directly create a test case for that path whereas a fuzzer would have to get lucky to reach that path by mutating existing test cases. The primary use-case for Caffeine is bug detection. A user provides a test program, uses the Caffeine command line interface to interpret said program, and then finally uses the test case tools to interact with the generated test cases. By default, this will find any undefined behaviour that was mentioned earlier. We also provide a number of builtin functions that the test program can use to make arbitrary assertions and assumptions about its state. From there, the user can use the provided test tools to extract the generated test cases into a usable structure and pin down any root causes for the issue. A secondary use case for Caffeine is to use it as a library. Either as a part of a bigger program such as a mutator for a fuzzer such as American Fuzzy Lop (AFL), to perform analysis, or as a base engine where a user can extend Caffeine’s functionality, according to their needs. Another potential use case would be to create symbolic specs for functions. SE Tools Computer Science / Software Engineering
For example, Caffeine could convert a function to a symbolic specification that could then be exported to a known format and used elsewhere (e.g. as a spec for optimization or for formal verification purposes). Additionally, we could build a symbolic debugger where any developer could step through his test program and see how the domain of the variables changes with time. This would allow anyone to target specific sections of the code and see what values could possibly be encountered during its execution. Currently, other symbolic execution engines have limitations such as the lack of floating point support, along with many different strategies in how to model memory. Throughout this project we seek to explore the trade-offs that our predecessors have made, and aim to improve them to make a useful symbolic execution engine. Specifically, by focusing on performance we hope to support all the features of other symbolic execution engines - such as KLEE - while still retaining competitive performance. However, the trade-off is that we expect significant additional complexity introduced as a result of this. Right now, we are actively working on Caffeine and implementing new features. At the moment, we support a large number of LLVM opcodes, floating point operations, and completely symbolic memory. https://github.com/insufficiently-caffeinated Capstone Design Symposium 2022 SE Tools
7 GitHub Similar Repo Search and Retrieval Tool Team QUAIL When developers with basic software fundamentals start writing code, they commonly refer to accessible online code examples for guidance. How- ever, based on our user survey, de- velopers of various experience levels report that they have difficulty using current search workflows and tools to retrieve applicable code examples for their specific use case. The GitHub platform is the Beini Fang, Ellen Huang, Irene Chen, world’s largest host of accessible Lindsey Jin source code with over 47 million pub- lic repositories (repos) as of May 2021, yet it remains unsuitable as a search engine to retrieve similar reference repos for developers. Existing search methods for GitHub repos, such as Google and GitHub Advanced Search, rely almost exclusively on text matching, but such string- based search queries lack the precision and level of descriptivity required to retrieve repos via traditional search methods. Our goal is to create a search engine for returning similar GitHub repos, given an initial GitHub repo link as a search query and optional search filters. To more holistically retrieve similar repos that users would find helpful as reference, we compare on additional repo features beyond text signals. Our solution aims to solve these user pain points with automated processing of repo features, analyzing and reindexing of publicly available repos on GitHub. As a result, developers could make more informed design and implementation decisions by referencing multiple relevant existing repos with various similar aspects. We expect our product to help users find significantly more useful and relevant examples of source code than current tools and workflows can provide, and we intend to demonstrate the value of our solution through a user field interview. SE Tools Computer Science / Software Engineering
8 Inliner: Pull blocks of code into a single file Team Inliner Definition jumping has been around for a long time. It has shipped with some of the first code editors like Vim and Emacs, and is an integral part of any modern text editor or IDE. This feature is incredibly important to almost all developers, and many improvements on it, such as snip- pet preview and storing a jump stack, have been made to extend it. However, definition jumping pre- serves only a linear path through Harry Tong, Siddhant Jain (Non-SE) which developers have navigated, whereas in real-world development, code logic follows a graph structure that can branch off in any direction. Inliner is a VSCode extension that inlines blocks of code so that developers can navigate, understand, and write code more easily than with just defini- tion jumping, and thus can explore multiple depths of code blocks, as well as multiple breadths. On large projects where external function calls are routine and numerous, developers can quickly become lost in a sea of tabs. They need to "cache" what logic they’ve seen so far when reading other files instead of viewing the entirety of the logic at once. By processing the codebase into ASTs and storing a directed graph of code mapping, Inliner can pull a relevant block of code inline just as quickly as a developer can jump to definition. Initial deployment of Inliner was done by setting up a landing page, posting to social media, and soliciting signups for the product’s early access. The initial post was made to r/programming and garnered 1.1k upvotes with 18 awards. Additional Reddit posts and a HackerNews post were made, but with little traction. The demo video was reposted to LinkedIn and VK (Russian Facebook equivalent) by unaffiliated people. A total of 1400 email signups were recorded as of May 17, 2021. https://inliner.io Capstone Design Symposium 2022 SE Tools
9 KubeInspect: An App to Automatically Fix Kubenetes Vulerabilities Team The Wheelerz Creating Kubernetes deployment files can often be quite challenging. As a developer, you have to think about resource allocation, the num- ber of pods, scalability of the app, among other things. More often than not, when we create these files, there are possibilities of some security vul- nerabilities slipping that might slip past us and get pushed to produc- Samuel Noguchi, Navraj Singh Chhina, tion. Suppose it adds an unnecessary Muhammad Haris, Abhishek Dhakla component, referencing an outdated base image or not optimizing the deployment for load resilience. In that case, these issues can make our deployment vulnerable to malicious actors trying to sabotage the cluster. Our project aims to address this issue by creating a Github App that can easily be included in the CI/CD pipeline and performs a host of security checks to ensure the deployment file is airtight. Should an issue come up, we provide the users with an option to fix it with a button click automatically. There is no such app currently in the market that caters to deployment file security, and we have an opportunity to tap into this arena and create a difference. KubeInspect aims to automate scanning for vulnerabilities in a Kubernetes deployment file and give developers an option to fix them with the click of a button. It can be easily integrated within the CI/CD pipeline of a company and doesn’t carry high overhead costs. With this tool, the developers can enjoy peace of mind, knowing well enough that no vulnerability will get shipped into production for any of their Kubernetes clusters. This app is also helpful for beginner DevOps users trying to learn the industry best practices of how to structure and configure a Yaml deployment file. The main idea behind our app is to free developers to focus on the fea- ture/project they are working on. Often, a developer might get so zoned into the feature code that they might not be careful enough with the deployment configurations for the microservice/feature they’re shipping. Thus, a vulnera- ble deployment file can get sent into production, allowing malicious actors to sabotage the company infrastructure. We wish to address this pain point for developers across the world. KubeInspect is being developed as of now, so, no user results to show. SE Tools Computer Science / Software Engineering
10 Undecided Team KRAM Over the years, Kubernetes has emerged as one of the industry stan- dards for managing services at scale. Despite its popularity, there is a lack of tools that target a very important aspect of gauging service reliability: load testing. Diago aims to fill this gap by providing a way for users to load test software applications man- aged by Kubernetes Diago, a project initially created by team b-frame, is a scalable load testing framework which runs in Ku- bernetes. Using a template, devel- opers can specify which services they want to load test, the number of re- quests per second and length of the load test, and schedule times to au- tomatically run load tests. Further- more, Diago provides a load test- ing method specific to Kubernetes, known as chaos simulation, where Bimesh, Kyle, Max, Ravindu Diago can be configured to take down instances of a service to sim- ulate a chaotic environment prior to performing a load test. Developers can interact with Diago via their computers by viewing the pro- vided graphical interface (GUI), where they can view all active and inactive load testing instances, create new instances, run load tests ad-hoc, and view aggregated metrics from previous load tests. By providing a Prometheus in- stance to Diago, it can store load testing metrics which can then be viewed in an embedded Grafana dashboard in the GUI by developers. Behind the scenes, Diago will trigger scheduled load tests onto Diago workers automatically. Currently, Diago is lacking many features compared to industry standard tooling. For instance, running complex workloads as load tests is not supported. Also, any user can access Diago, so it is missing authentication. Individual workload logs are not saved by Diago, which would be useful for developers to further debug suspicious load tests. Aside from the GET request method, other method types do not work (e.g. PUT, DELETE, POST). The current design Capstone Design Symposium 2022 SE Tools
of Diago has a single point of failure (the leader). All these shortcomings are what our team, KRAM, aims to solve. SE Tools Computer Science / Software Engineering
11 ReCREAT: Renewable Energy Analysis Tool for Re- mote Communities Team R2 The Canadian government has set a goal to move Indigenous and other Northern Remote communi- ties that currently rely on diesel to cleaner energy sources by 2030. There are a variety of energy con- figuarations for replacing diesel such as solar, wind, biomass, or a hybrid of those. To facilitate this transition Emily Huang, Andi Li and select the most appropriate en- ergy systems, policy makers need a tool to analyse and compare the ef- fects of different energy configurations. In particular, given a community’s energy consumption profile, policy mak- ers are interested in what the costs are to install various energy configurations and the resulting diesel displacement. Furthermore, policy makers are inter- ested in finding out the feasibility of achieving different diesel displacement targets, e.g. 100% vs 20% displacement. To achieve this, Natural Resources Canada has developed a preliminary desktop tool do perform such analysis for wind and solar energy configurations. The desktop tool, though capable of performing the necessary analyses and visualizations, does not fit all the desired criteria. In particular, the desk- top tool has proved difficult to disseminate, requiring engineers to share the codebase/data and requiring users to build the code from scratch. Further, the current workflow introduces challenges of tracking who has access to the codebase and underlying data as well as ensuring version consistency across all users. To address these concerns, team R2 will port the existing desktop app into a webapp, keeping in mind infrastrucure, security, and user requirements. R2 aims to deliver an MVP of the webapp and a user manual documenting all assumptions, constraints, architectual decisions, and expected usage by the end of 4A. R2 will collect feedback and scope out any new requirements in the term between 4A and 4B. In 4B, R2 will address the feedback and release a v2. Capstone Design Symposium 2022 Consultant
12 SVTS: A Mobile Application for the Sri Vidya Tem- ple Non-Profit Team LacusLabs Many organizations that are, by na- ture of their purpose, far from the forefront of technology are now re- quired to adopt solutions that de- mand much technical prowess. In a post-pandemic world, the current habits formed by people will con- tinue to shape the way we inter- act with such organizations. As we searched for an appropriate consult- ing project, we came across a tem- Sri Nellutla, Vichara Wijetunga, ple in Rochester, New York that re- Kashturi Vasanthakumaran, Parvathi quired a solution to meet the needs Krishnan, Ankit Patel, Shazz Amin of their in-person and remote visitors more easily. The temple has also grown significantly in terms of visitors in the last five years and is currently undergoing construction for expansion. Many previous tasks that were done by calling in or by visiting the temple in person are now much harder to manage or simply not possible due to Covid-related restrictions. In terms of the end user’s perspective (temple visitor and volunteer), their primary motivation is to save time, which comes in two forms: mitigating any roadblocks or friction in a visitor’s experience of the online and in-person ser- vices and providing an easy way to become aware of and sign up for volunteering activities within the temple. From the temple’s perspective, their motivation is to design for a non-technical user to make necessary changes to the appli- cation. Another requirement of the project is creating a mobile application to solve these problems. Currently, users experience challenges in three core interactions: interacting with temple-related content (livestreams and videos), making donations, and becoming aware of and signing up for volunteering opportunities. Specifically, one such pain point related to temple content is easy access to videos. The temple’s infrastructure setup for videos is fragmented across YouTube for pre- recorded videos and Livestream.com for livestreams. We aim to implement a system that consolidates all video content in an organized and searchable man- ner for the mobile user. We are in constant communication with the temple liaison and will begin working with a focus group to more clearly and exhaus- tively document potential use cases and pain points across all categories. We Consultant Computer Science / Software Engineering
aim to be in constant communication with the focus group throughout our ideation, design, development, and release stages. Some solutions we have planned for our domain model diagram include, a volunteer management sys- tem, a calendar system, donation/livestream integrations as well as an admin- istration portal that will allow the temple staff to make certain modfications to our mobile app without the need to change source code (i.e add calendar events, categorize videos and add new donation efforts/causes). Although we believe there’s scope for some advanced technical knowledge to be used in this solution, our primary goal is to solve real user needs. We aim to release this solution in phases and collect qualitative and quan- titative feedback. The results can be shared with the TA on a regular basis. Upon discussions with Derek we may also consider extending our application to a no code platform that other non-profits with similar needs (collection of donations, volunteer management, event management) could interact with. The initial stage for this could simply be open sourcing our codebase, however there is potential to build a service like Slack/Discord where we host mobile "outlets" for multiple non-profits and charge a service fee. Capstone Design Symposium 2022 Consultant
13 Testing effectiveness of an app to quit smoking Team Agnes Self Directed Smoking Cessation App Smoking is clearly an issue - many studies exist that prove its harm to the smoker’s body as well as harm to the mental/physical well-being of those around them. There are also studies that show that there are substantial losses in productivity of smokers. Unfortunately, because of the addictiveness of smoking, it can be hard to quit. Sarah Ma, Stephanie Warwick, Jacob For a user to quit smoking, first Ledgerwood and foremost the user must be moti- vated to quit smoking. From there, users have to work to change their habits and withdraw from the use of cigarettes. Different techniques exist to abstain from smoking exist, often involving the participant to seek out a physician to guide them through the process. One method of smoking cessation proven to be very beneficial is contin- gency management (CM), a behavioural intervention where a user receives re- wards as positive reinforcement for accomplishing a behaviour change. There are currently smoking cessation apps that focus on the health or financial ben- efits calculated based on how much less smoking a user has reported. The theory appears that reinforcement of these benefits will motivate user to main- tain said behaviours. These applications are arguably also implementing CM by using calculated benefits as rewards. In all cases, the CM treatment method relies on the idea that these continued rewards help a user to stop smoking. However, it has been shown that the long-term benefits are not as motivational as immediate, substance-based rewards. This effect is known as the discount- ing of delayed reward. Episodic Future Thinking (EFT), where a participant imagines how their life might be at a future point in time, is one method that has been proven to reduce delay discounting. We plan to create an app that prompts users to engage in EFT in conjunction with CM treatment via “in-game” rewards to encourage smoking cessation after CM intervention. Studies have shown that CM is beneficial during the treatment but users often relapse to smoking shortly after the rewards are no longer offered. This can be an issue as some rewards, such as monetary ones, do not last forever. Our app will use in-game rewards, and thus will be available beyond physician- Health Computer Science / Software Engineering
led treatment. Our app will consist of 2 main components. One will be the EFT system, which will prompt the user to engage in EFT and ask them to reflect on what certain cues they had mentioned make them feel or what it makes them think. The second will be the CM system, which will consist of 2 further subsystems - a logging system so that users can record their cigarette usage and other metrics, and a game through which the user will receive their CM rewards. Our overall goal is to run a user study to determine if this app benefits users in the same way that physician-led CM does. To achieve this, we plan to spend our 4A term creating the app and preparing for the user study. Then we will run the user study during our last co-op term. Capstone Design Symposium 2022 Health
14 DCC Escape: 3D virtual escape rooms for mental health awareness Team Houdini The Distress Centre Calgary (DCC) is an organization dedicated towards providing crisis support for Calgary and southern Alberta residents. DCC provides various programs to reach all population segments who need help, including a 24-hour crisis line and counselling. The organization has also provided several services for teenagers given the increasing preva- lence of mental health issues among this population demographic. In pre-COVID times, DCC used in-person presentations to share their resources with students. However, given the impact of the pandemic, Ahmed Hamodi, Amolik Singh, such in-person presentations cannot Dhruvin Balar, Jay Dhulia take place. The Distress Centre is currently using video conferencing to communicate with high school students. Using video conferencing to communicate with students in the southern Alberta area is not an optimal solution due to lowered engagement and a significantly decreased number of contacts with students. Also, with decreasing attention spans in the upcoming generations of students, the need for a more interactive and engaging form of communication is needed. The DCC and our FYDP group have engaged in conversations since October 2020 to brainstorm a solution to this pain point. FYDP team will be building out a solution (through a web application) that allows students to actively interact with and learn more about mental health resources that DCC provides. The resources provided by DCC will be structured into escape rooms, scenes, and interactable puzzles. An escape room contains one or more scenes and a scene contains one or more interactable puzzles. The students will interact with these structured escape rooms. There is a need to keep the escape rooms dynamic and the resources up to date so the FYDP team will be including a full admin interface as part of the solution which allows admins to customize and test the escape rooms including the rooms, scenes, and interactable puzzles. The admins are DCC staff members. This admin interface will also allow admins to sign up or Health Computer Science / Software Engineering
login to their accounts using their Distress Center emails. Lastly, admins can view feedback from students who submit feedback through a form. This is an optional step for the students and is shown after the successful completion of the escape room. The FYDP team has partnered with UW Blueprint starting in January 2021 to build out this project for the DCC. The FYDP team built out a prototype of this project at HTN 2020++ called Corona Escape, which ended up being one of the finalists. The FYDP team has an internal goal of doing a soft launch with one full escape room flow in August, in preparation for the upcoming school year. Capstone Design Symposium 2022 Health
15 Real-Time Polling Software Targetting Spontaneous Content Creation Team Vox Populi Myriad projects and apps exist for polling users. Content creators such as streamers, presenters, and singers all have their livelihoods depend on their interaction with their audience. Naturally, learning what the audience wants is a key tool for maximizing au- dience engagement. The user we target is a person (poll creator) producing a sponta- neous stream of content for an audi- ence (poll watchers), who wishes to create a poll to interact with said au- Stanley Huang, Wesley Leung, Yifan dience (poll watchers). This category Kou encompasses streamers, ad-hoc pre- sentations and brainstorming sessions for which there is no fixed itinerary. Our tool supports this poll creator by allowing them to create and refine polls as they present, add and remove options, combine options, and simultaneously create visualizations so the audience (poll watchers) may follow along. Existing software serving similar purposes are either not real-time or insuf- ficiently flexible. Traditional polls require the poll creator to design the poll in full prior to launching it to users. There is no room to add new options, remove options, or otherwise modify the poll after it is sent out. Examples of these are Kahoot, Straw Poll, Reddit, Twitch, Survey Monkey, and Google Forms. These products all lie at various points on two axes: Axis 1 is the ability to create a poll and modify it in real-time in response to the audience’s actions (spontaneous) vs having to specify the options available to the poll before opening it to the public (preplanned). Axis 2 is the synchronicity of the poll - do the respondents react in a matter of seconds or minutes (real-time) or a matter of hours to days (long term) Most of the above options are preplanned and long term, with the notable exception of Kahoot, which is preplanned and real-time. The lacuna that our product targets is therefore spontaneous, real-time polling, since there currently does not exist a product in this category. User Polling Computer Science / Software Engineering
16 Quizem: A simple way to conduct knowledge check- ins Team Chicken Nuggets When teaching large groups of students, instructors are looking for ways to assess how well their stu- dents are understanding the content. Currently instructors turn to tools such as iClicker or Kahoot to do this. However, both of these tools are deficient in one way. iClicker only provides the ability to test student’s Alexandra Girard, Ariel Lam, Ben knowledge with multiple choice ques- Langlois, Heather Musson tions and Kahoot only offers time based quiz solutions. There is a mar- ket opportunity to create an iClicker style application that provides more question types. Quizem aims to provide a wide variety of question types that instructors can send to their students periodically throughout the session. Students can join a virtual room through their phone or other device and then answer the questions sent to them by their instructor. For example, to test new terminology an instructor could send their students a matching question. After the students have answered the question the instructor can view aggregate information about the answers provided by the students. Capstone Design Symposium 2022 User Polling
17 MOSS: A Crypto Algorithm Sharing Platform Team Team Moss We have seen the population of retail investors become a more promi- nent force in the market in the past few years. In 2019, approxi- mately 10% of US trading volume was done by retail investors, accord- ing to Citadel Securities. Just one year later, this number jumped to 20%, after over 1.5 million broker- age accounts were opened amongst Taha Masood, Leo Wang, Thomas Charles Schwab, TD Ameritrade and George, Erik Terwiel ETrade alone [2]! This intuitively aligns with the Covid-19 lockdown, which granted the general population more time to learn about the markets and independently manage their finances. These numerical trends, along with the growing online communities of retail investors, are a strong indicator of a substantial client base seeking a more streamlined portfolio management app. Retail investors usually struggle with making good trades - according to Investopedia, the average retail investor has underperformed the S&P500 by 11% this year [1]. We believe that there exists an invisible barrier: unfriendly brokerage user interfaces and their lack of cross-brokerage/exchange integra- tions. Moreover, most web brokerages provide very poor charts and statistics to describe the user’s portfolio. For instance, Questrade only displays one’s earn- ings over a fixed 24 hour time horizon - an uninteresting metric. Different brokerages also provide different features, leading the users to manage multi- ple accounts across multiple brokerages. Consolidating all of these financials into Excel spreadsheets is time-consuming and error-prone. The overarching problem is: since these individuals are not constantly glued to their portfolios, they do not have the time to deal with these inconveniences and properly man- age their holdings. MOSS aims to address these pain points and make personal wealth management more accessible to the retail investor. MOSS (Managing Own Stocks and Securities) is a web and mobile applica- tion built to empower the retail investor by providing them with a user-friendly portfolio dashboard. Broadly speaking, MOSS will integrate with the retail in- vestor’s stock brokerages, cryptocurrency exchanges, and cryptocurrency wal- lets to display visualizations and statistics tailored to their portfolio. MOSS Finance Computer Science / Software Engineering
will maintain a financial database of stocks and cryptocurrencies, which will be used to display this portfolio dashboard. The application will also integrate with various financial news outlets and social media platforms in order to dis- play real-time alerts to the user via a news and insights window. The users will still need to perform trades through their stock brokerages (which connect to stock exchanges) or directly through their cryptocurrency exchanges (i.e. not through MOSS). [1] https://www.investopedia.com/retail-investors-are-underperforming-the- market-5118497 [2] https://www.globalxetfs.com/cio-corner/the-renewed-rise-of-the-retail- investor/ https://github.com/moss-fydp Capstone Design Symposium 2022 Finance
18 Fig: Buy Now Pay Later for Non Prime Consumers Team Localised E-commerce is a space that has seen rapid growth over the last few years, and has only been accelerated by the covid pandemic. This, cou- pled with the fact that it is cen- tralized around a couple of major e-commerce platforms like Amazon and Shopify, presents a unique op- portunity for point of sale applica- tions. By integrating into just a few Han Xiao, Yeliang Shou, Max Dai, Ji large platforms, a point of sale ser- Lin Zhu vice could quickly reach an enormous amount of consumers. One such type of point of sale service is Buy Now Pay Later. Buy Now Pay Later as a business strategy has always existed, even before e- commerce was popularized. The concept is as the naming suggests: companies act as financial lenders to allow customers to purchase items they may not be able to pay for completely. The loan is then paid off in installments which results in revenue for the lender. From the merchant’s perspective, adopting Buy Now Pay Later is proven to improve their business. These metrics range from increasing average order value to decreasing cart abandonment. As it turns out, this business model fits very naturally at the point of sale on ecommerce platforms. This has led to it becoming a popular fintech startup idea as many companies compete for market share in the new and rapidly growing sector. In Canada and America, companies like Paypal, Affirm, Sezzle, and many more compete for customers. We would be building a Buy Now Pay Later solution for non prime con- sumers (our customers). These are people that are not serviced by traditional lending services, which only target prime consumers. In fact, there currently does not exist a solution that targets this segment of the market in Canada. Our application would involve integrations into major ecommerce platforms through a redirect button. This action takes the customer to our application form where they apply for a lease. Once a lease has been signed, a payment provider is used to make regular payments. Finance Computer Science / Software Engineering
19 Little Brother Hit Chicken: Language Based Tex- tual Refinement Team DiDiDaJi English has become the lending lan- guage of international discourse in the 21st century and to have ade- quate understanding of the language is essential for survival in today’s world. However, communication be- tween humans using English lan- guage sometimes remains quite dif- ficult, expecically in the case of hu- mans of different reading levels. Oftentimes, individuals have diffi- culty communicting with their target readers due to accumulated writing habits. Journalists, for example, will usually have distinctive writing styles Jerry Huang, Saidi Tang, Hongru which are difficult to understand for Xiang, Xintao (Cynthia) Zhu the layman or younger readers. Ask- ing the journalist to completely re- vamp their writing is infeasible, but it is also difficult to simply ask individuals to improve their reading skills. While this may appear to be an insurmountable chasm, we hope to answer this problem. While there exists a significant amount of work on text simplification, there is a lack of research on controllable text simplification, where the simplified text’s target readability level can be accounted for. To alleviate this, we aim to perform the preliminary research which will potentially encourage others to pursue this line of research. We also aim to provide a general interface mimicking that of Google Translate which can be used for testing with actual users. Our goal for this term is to first design a language model which can first perform accurate readabililty assessment, which is the task of being able to classify text into different reading levels. Afterwards, we hope to start design on a language simplification model and formulate a task which can control the output text level. On Symposium Day, we hope to have a model which can simply text from a variety of different domains which are acknowledged by linguistic experts as being accurate as well as results which can be published to a conference. Capstone Design Symposium 2022 Natural Language Processing
20 AutoComic: Machine Translation For Graphic Nov- els Team fnord AutoComic is a service for au- tomatic timely translation of foreign graphic novels. Solutions today re- quire a highly specialized group to perform each stage of the translation process (called “scanlation"). Scan- lation is a three step process. First, “cleaners” must clean the digital scan of the novel by removing foreign text and sharpening the image so the scan can be better viewed on a digital screen. Next, translators work on translating all dialogue and text from the source language into the target language. Finally, the typesetters Austin Jiang, Arjun Bhushan, Ali combine the translated script with Nikseresht, Tobi Adewoye, Shun Rao the cleaned copy of the graphic novel using the appropriate fonts. This task can be expensive, slow, and inconsistent due to the large team required to complete the process. The goal of AutoComic is to automate this process by providing visually- consistent, high-quality translations between any two languages. Our tool will perform scanlation with high accuracy to automate the tedious work of cleaning and translating speech bubbles. The following is a description of how users will interact with our tool. This will demostrate how our tool will alleviate problems in each step of the scanlation process. First, users upload an image to our tool. Then, speech bubbles are automatically detected and highlighted. If any oulines were missed or incorrectly placed, the user can fix them up manually. Once the user is ready, they can confirm their outline selections. The tool will then translate the text in each bubble. If the user is unsatisfied with any generated translation of any bubble, they can easily edit it. Finally, after the user confirms their translations, the bubbles will automatically be cleaned and the translated text will automatically be inserted. Natural Language Processing Computer Science / Software Engineering
21 HCI research on the applications of gestures through a spherical input device Team Dot Dot Dash Human interaction goes beyond verbal communication. Even when we are static, we move, fidget and play with items around us in order to process our thoughts. These ges- tures occur both in play and dur- ing conscious thought. Our group aims to explore these actions, their effects, and purpose through a spher- Jasmine Ou, Gracie Xia, Derrek Chow ical interaction device that measures and identifies different gestures and movements. Our core technology uses gesture recognition algorithms that will be exposed as APIs ultimately allowing usage to a variety of applications. These applications will be used along with our device to conduct various experiments such as visualization of human movement during various activities with differ- ent emotional associations, classifying gesture frequency, and mapping gestures to musical sounds. We hope to conduct user studies and analyze the outcomes of the experiments in our research. Capstone Design Symposium 2022 Physical HCI
22 Eye tracking for modern apps Team VivaLaZeez Eye tracking is a multi-million dollar industry with many uses in medical, VR/AR, and market research fields. The idea of eye tracking is to en- able users to use their gaze to navi- gate a screen or a real life scenario. This technology opens a new realm of possibilities of how humans can in- teract with software without haptic input. For our project, we intend to use eye tracking to facilitate the use of modern social media applications. One application in particular is Twit- ter because we can leverage its per- Kieryn Davison, Edward (Eddie) Ren, missive and developer friendly API to Toby James Thomas, Rosie Bahrani meet the requirements of our project. Twitter is the world’s 3rd most pop- ular social media site by daily active users and improving it’s accessibility would enable people to stay connected. Eye tracking has the potential to revitalize the life of many patients with motor disabilities. As new social networks and other new applications con- stantly emerge, patients with motor disabilities are often being left out and isolated in the face of rapidly changing times. A major challenge in eye tracking is accuracy. With typical consumer smart- phones, the front facing camera is often enough but needs to be calibrated to the individual. Apple’s ARKit offers a pretrained model to detect the position and orientation of the user’s gaze relative to the screen. The application would be a mobile iOS app calling the Twitter API and responding to it using Apple’s ARKit’s input from the user. For version 1, our app will display the user’s normal Twitter feed, one tweet at a time. To like a tweet, the user will look right. To retweet, the user will look left. To see the next or previous tweet, the user will look down or up, respectively. To avoid errors, we will show users a confirmation before retweeting and liking. This is a question asking the user “are you sure you want to ?” There are two main users for the application. The main user and the primary user is the individual with motor disability. The second user is their primary caregiver. Those could be nurses or family members taking care of the patient. Physical HCI Computer Science / Software Engineering
Those caregivers must be able to fully interact with the application since, in most cases, they are the ones setting up the application for the patient, or the ones addressing any issues the user might have when using the application. Capstone Design Symposium 2022 Physical HCI
23 QB TUA: Time Usage Analysis Team Autumn Leaf Studio According to a study over the last ten years, it was observed that the trend of average web time spent for an average human being is drastically increasing. As shown, the average time for 2019 is 153 minutes per day. Moreover, the average time of a user spending time on a social media plat- form like Facebook is about an hour per day, and yet this does not include Han Haosen, Haoyang Qi, Shen Yuan other social media such as Youtube Xie, Lucy Wu, or Twitter. It then follows that a seri- ous problem arises as modern human beings waste too much time each day on unnecessary media. Thus, our group believes that a Chrome extension for managing and limiting daily domain time usage would be very effective in consciously restricting a user’s time usage of different domains. The Chrome extension, called QB TUA, allows users to see time analysis of the internet based on graph generation and CSV exports, by clicking on the options page. Also, the user is able to create restriction rules for domains, by prompting them to enter a time limit. In order to efficiently store and fetch data, we use Chrome Local Storage to safely manage user data. The degree of success of our project would be assessed based on sampling users and sending out surveys about how much time they manage to save off of productive websites, and how they are most aware of their time management issues when using the Internet. In addition, we will also be able to collect data on how many people use our Chrome extension and how our retention rate is to measure how attractive our Chrome extension is to users. Web Use Management Computer Science / Software Engineering
24 BitLodge: A decentralized file storage system Team HYDRA We have a world today with more than 2 billion computers and 3.5 bil- lion smartphones. As storage has be- come cheaper, a huge opportunity in utilizing unused space across these devices now exists. Dependency on cloud storage services such as Google Drive, Apple iCloud, and Microsoft OneDrive, which are expensive or at the cost of privacy. Data abuse Caleb Choi, Finn Macdonald cases such as the Cambridge Analyt- ica scandal teach us to be wary of the latter. Organized users, such as employees in a company, should be able to store their folders and files without the need to trust other third parties - instead preferring to store them on a distributed storage system based on the smart- phones and computers of the users themselves. All users should be able to store private files on the system, but also be able to share files amongst other users of the organization so long as permission is granted. For convenience, user groups (such as specific teams, or all users in a company) should be able to be created and given permissions as a whole. While users are able to set permissions of files and folders themselves, the organization’s system administrators are responsible for controlling the creation and deletion of users, if needed. It is their role to verify identities within the organization, create and manage user groups, and create/delete users. An important property would be that folders and files are cryptographically protected - no user that doesn’t have permission should have the physical capability of reading or writing the data, even if retrieved. As long as user identities can be verified by the system administrators, all permissions of the organization can be respected. Capstone Design Symposium 2022 Distributed Storage
You can also read