[Human-Computer_Interaction]
Jasmine Ou, Derrek Chow, Gracie Xia
We introduce the SwissBall, a wireless spherical controller to support tangible control of digital parameters in everyday contexts. The SwissBall is functionally analogous to both a button and knob, it can map to a set of dynamic discrete and continuous parameters. We create an interaction framework for the SwissBall that enables generic and personal control, and use this framework to define current and future possible interactions. We demonstrate the SwissBall’s potential through several diverse personal computing applications including music, drawing, and object control. The SwissBall is a physical controller, which allows the user to directly switch the mode between different states. Physical controllers are useful, but often confined to a singular and specific interaction context. This is a problem as personal computing enters broader contexts in everyday life. Physical controllers are being replaced by touchscreens, which can accommodate dynamic control, but lack the tangible benefits of physical controls. As personal computing evolves beyond the desktop, physical controllers are being left behind. This research project is our attempt to bring the benefits of physical controls to everyday contexts. Our project consists of the SwissBall device, comparison with related research project, a full research paper regarding the device, and a video demonstration of utilization.
Toby James Thomas, Rosie Bahrani, Edward (Eddie) Ren, Kieryn Davison
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 enable users to use their gaze to navigate applications. This technology opens a new realm of possibilities of how humans interact with software without haptic input. Applying eye-tracking to mobile devices with built-in cameras provides a unique opportunity to scale and improve accessibility since existing eye-tracking hardware is expensive and bulky. For our project, we used eye-tracking to facilitate the use of modern social media applications. Specifically, we implemented eye-tracking for Twitter. Twitter is North America’s 3rd most popular social networking service by daily active users and improving its accessibility would enable more people to stay connected on this platform.
Eye-tracking has the potential to revitalize the lives of people with motor disabilities. In the face of rapidly changing times where new social networks and other new applications constantly emerge, accessibility is often an afterthought. This makes it difficult or impossible for people with motor disabilities to use social media apps and stay connected with friends.
A major challenge in eye-tracking is accuracy. In most social media applications, buttons, texts and other UI elements are too small to allow for users’ gaze detection. This limitation makes existing eye-tracking solutions such as HawkEye hard to use. For this reason, our application, TwEYEet, implements a custom hotspot UI design with a menu system that allows for more accurate gaze detection. This makes it easier for users to select the desired action. Holding gaze on up, down, left and right hotspots perform certain actions, such as scrolling, liking and retweeting on the home timeline. TwEYEet also makes use of a double blink gesture to open or close the menu. This design maps Twitter’s functions and features to accessible actions that can be performed by people with motor disabilities. We hope TwEYEet can make a tangible change in people’s lives and inspire the development of more custom applications with eye-tracking technology.
[Health]
Ahmed Hamodi, Amolik Singh, Dhruvin Balar, Jay Dhulia
The Distress Centre Calgary (DCC) is an organization dedicated to providing crisis support for Calgary and southern Alberta residents. DCC provides various programs to reach all population segments who need help. The organization also provides several services for teenagers given the increasing prevalence of mental health issues among this population demographic.
In pre-COVID times, DCC used in-person presentations to share their resources with students. During COVID, doing these presentations virtually showed the importance of creative engagement using technology. With decreasing attention spans, a more interactive and engaging form of resource sharing is needed. The DCC and the FYDP group have partnered since October 2020 to address this problem.
FYDP team built a solution that allows students to actively interact with mental health resources that DCC provides. The resources are 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 interact with these structured escape rooms.
The FYDP team also built an admin interface to allow DCC admins to customize the escape rooms to keep content dynamic and resources up to date. DCC staff members can sign up as admins or login into their admin accounts using their DCC emails. They can view feedback from students who optionally submit feedback through a form that is shown after the completion of the escape room.
In January 2021, the FYDP team built out a prototype of this project at HTN 2020++ called Corona Escape, which ended up being one of the winning projects. The FYDP team partnered with UW Blueprint from January to August 2021 to build out the MVP solution. The FYDP team continued development from September 2021 to now. In September 2021, the team did a soft launch with one escape room flow. This soft launch included full integration with the DCC website on their subdomain. In February 2022, the team did a full launch with two escape room flows. The launch included DCC posting on all their social media platforms and purchasing Facebook and Instagram ads.
Sarah Ma, Stephanie Warwick, Jacob Ledgerwood
Conducting studies to test and verify behavioural treatment protocols is often very labour intensive for researchers. Additionally, there is an absence of consistent tooling across studies - even when studying the same treatments.
This challenge is faced by many addictions researchers across the world, including David Ledgerwood, Ph.D, Professor and Director of the Nicotine and Tobacco research division at Wayne State University. For this reason, we have partnered with Dr. Ledgerwood to create a mobile app to automate his treatment protocols for an upcoming study (in the process of gathering grant funding). Our mobile app currently supports three treatments. First is Contingency Management (CM), designed to reward participants’ abstinence from an addictive behaviour. Second is Episodic Future Thinking (EFT), which has participants imagine specific future events as a counter to the overwhelming short term "benefits" of acting on an addiction. Finally, is Episodic Recent Thinking (ERT), which is similar to EFT with the exception that participants choose actual recent events rather than potential future events.
Alongside the automated treatment protocols, we have provided configuration options to researchers. This allows more flexible customization of the generic protocols for a specific study and its research strategy. In the interest of participant security and privacy, the data collected by the app is stored almost entirely locally on the user’s device. The exception to this is the secure export of data pertinent to the research study, which is accompanied only by an anonymized study ID. Further, in order to accommodate the broadest sample of participants, the application provides researchers local settings that adjust treatment delivery schedules for an individual user - such as shift workers or those who must miss sessions due to approved extenuating circumstances.
[Non-profit]
Emily Huang, Andi Li
The Canadian government has set a goal to move Indigenous and other Northern Remote communities from diesel to cleaner energy sources by 2030. There are a variety of energy configurations for replacing diesel such as solar, wind, biomass, or a hybrid of those. To facilitate this transition and select the most appropriate energy systems, policy makers need a tool to analyse and compare the effects of different energy configurations.
In particular, given a community’s energy consumption profile, policy makers are interested in what the costs are to install various energy configurations and the resulting diesel displacement. Furthermore, policy makers are interested 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 desktop 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 infrastructure, security, and user requirements.
R2 aims to deliver an MVP of the webapp and a user manual documenting all assumptions, constraints, architectural decisions, and expected usage by the end of 4A. R2 will collect feedback and scope out any new requirements in the work term after 4A. In 4B, R2 will address the feedback and release a v2.
Kashturi Vasanthakumaran, Sri Nellutla, Ankit Patel, Shazz Amin, Vichara Wijetunga, Parvathi Krishnan
Many organizations that are, by nature of their purpose, far from the forefront of technology are now required to adopt solutions that demand much technical prowess. LacusLabs has partnered with a temple in Rochester, NY that requires a solution to meet the needs of their in-person and remote visitors more easily. 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. Furthermore, the temple website’s Google Analytics showed that 62% of the users were on mobile and there was a 20% increase in mobile sessions (up from 40K to 50K) during Covid. Therefore, a mobile app that brings more efficient processes to the temple admin and caters to the growing mobile userbase was decided as the ideal solution.
Users experienced challenges in three core interactions: interacting with temple-related content, planning trips to the temple, and sponsoring events. For temple livestreams, our goal was to reduce friction present in the YouTube user flow, so we implemented a one-click process to tune in to a livestream on our app. To ease the trip-planning process, we have implemented a multi-filter interface for users to easily find specific events and add them to their digital calendar. Lastly, we have integrated sponsorships with our events feature to allow users to find a sponsorship opportunity for an event without having to search for it on the temple donation platform. We have also enabled new hybrid use cases; for instance, instead of simply viewing events on the temple’s website, on the mobile application, users could watch highlights of a certain event (through photos or videos feature) to find an event that interests them, plan their trip for it, and sponsor it in the same interface.
Our initial public release was during Fall 2021. Since then, we have had numerous smaller updates as we coordinated with users and leveraged analytics to gather feedback.
[FOSS]
David Spenler, Alexander Kursell, Alex Chan, Joshua Hong
Today, the majority of communication occurs through messaging applications such as Facebook, WhatsApp, Discord, etc. The problem with these services is that they are closed source, centralised, and proprietary. This means that every single message, picture, or video sent through these applications can be seen by the corporation that runs the service. These corporations can then do anything they want with your data. They can spy on your private messages, learn everything about you, and sell your data to make a profit. They can also censor and ban anyone or anything they so choose. With these messaging applications, there is no privacy, security, or freedom whatsoever.
Matrix aims to address all of these issues. Matrix is an open source, secure, decentralised, real-time communication protocol. It supports messaging, end-to-end encryption, VoIP, bridging capabilities, and much more. With Matrix, the users are now in control of their entire experience. It offers encryption and is open-source meaning that there is the guarantee of security with no spyware. It is decentralised so users can run their own servers and even communicate between servers. And it is completely free as in freedom.
Currently, the most popular implementation of Matrix is Synapse. Synapse is written in Python and is slow and difficult to deploy. Dendrite is the Go implementation of the Matrix protocol which aims to address these issues, focusing on speed and self-hosting simplicity. However, Dendrite is still unfinished, lacking support for many components of the Matrix specification. Our team, Axon, aims to address this.
Axon has contributed greatly to the improvement and specification compliance of Dendrite. We have submitted multiple patches fixing bugs, implementing new features, and satisfying unmet requirements. Such contributions include adding functionality to control the membership of rooms, revamping the room search capabilities, and implementing a new API to migrate between room versions. We are on track to resolving a total of 36 compliance tests.
At Axon, we strive to make Dendrite the next generation de-facto standard for Matrix homeservers.
Josh Schaefer, Jiahao Zhang
Pocket Code is an open source, visual programming platform that allows students to create programs and games directly on their smartphone. By using a "Lego Style" programming framework, the Catrobat language allows beginner programmers to design their own games and animations to develop real and useful applications. Then, students can share them on the Pocket Code community and even publish them as standalone apps on Google Play.
The Catrobat community platform is used by people across the world speaking 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 translators. 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. 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 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 these are specified, custom translations can be used instead of a translation API. Gamification can encourage users to add custom translations. An overhaul of the project information editing UI is needed to accomodate this feature.
We believe this feature will improve the internationalization of the Pocket Code platform, giving equal access to content regardless of the users’ background, location or native language.
[Startup]
Anshuman Banka, Danilo Joksimovic, Gabriel Robles
The last two decades have seen little innovation from a product perspective in the space of video conferencing and online gatherings – we still look at video tiles and cannot hold more than one simultaneous conversation in a single gathering. In larger online gatherings, people tend to turn off their cameras either due to social anxiety or other reasons, leading to an even more detached experience. The COVID-19 pandemic exacerbated the effects of this issue as every meeting and every gathering went online. Several studies have shown the existence of "Zoom Fatigue" – something that Scena 360 solves by making online gatherings more delightful. Technologists today view the modern internet as an extension of the real world, and aim to create the so called metaverse. Several organizations like Meta are taking a similar approach to this concept — by creating an alternate universe for people to live their lives in. Scena 360 takes a different approach to building the metaverse, by providing a delightful alternative for people who are meeting up on traditional conferencing platforms like Zoom – instead of trying hard to replace reality itself.
Scena 360 leverages 3D spaces along with spatial audio to replicate the feeling of real spaces. This allows attendees of Scena 360 gatherings to move around freely and bump into people like they would in real life. 3D avatars allows users to feel more present without keeping their cameras turned on while still allowing people to face each other and maintain eye contact. 3D spaces can be modified with interactive objects to give users a “Choose Your Own Adventure” experience, where possibilities for the kinds of event gatherings are endless. Our current focuses include mini-games for parties, whiteboards for education and office meetings, art frames (that also support NFT art) allowing artists and collectors to host auctions for their art in 3D galleries.
Nikhil Gupta, Ibrahim Irfan, Jordan Dearsley
Superpowered is a calendar app for the Mac menu bar. Be notified about events and join Zoom meetings without having to go to your calendar.
There are 300M Zoom users. At $10/mo, that puts us at a 36B market opportunity with software margins.
Zoom meetings are the most important events in your schedule. Opening them from Google Calendar 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.
[Software_Engineering_Tools]
Brooke Dolny, Sean Lynch, Danieil Skrinikov, Misha Zharov
The process of creating software is often error prone and results in bugged software. Although some techniques such as continuous integration (CI), unit tests, and code reviews 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 generating test cases through heuristics. A new generation of software testing tools exists in the form of symbolic execution engines. Symbolic execution works based on the idea of using an SMT solver to determine whether a path through a program can be executed and if the path performs undefined behaviour.
Caffeine uses symbolic execution to detect bugs. A user provides a test program and uses the Caffeine command line interface to run the program. Caffeine will uncover undefined-behaviour bugs such as out-of-bounds array access, divisions by zero, and null pointer dereferences. We also provide a number of builtin functions that the test program can use to make arbitrary assertions and assumptions about its state.
Caffeine now supports executing C and C++ code (including the standard library). We also improved usability with features such as progress indicators and coverage reports to let users gain insight into their test run. Finally, we implemented some novel features like E-Graph support which allows for better expression simplification and, along with other optimizations, also increases performance.
Harry Tong, Siddhant Jain*
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 snippet preview and storing a jump stack, have been made to extend it.
However, definition jumping preserves only a linear path through 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 definition 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.
Navraj Singh Chhina, Abhishek Dhakla, Muhammad Haris, Samuel Noguchi, Ayush Kapur
Creating Kubernetes deployment files can be challenging. As a developer, you have to think about resource allocation, number of pods, scalability of the app, etc. Often times, deployments contain security vulnerabilities which might get pushed to production. Sometimes they add unnecessary components, reference outdated base images or fail to optimize the for load resilience. Our project aims to address this issue by creating a Github App that can be included in the CI/CD pipeline and performs a host of security checks on the deployment file. We additionally provide users with an option to fix these vulnerabilities automatically.
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, development becomes efficient because potential vulnerabilities are caught and reported before being shipped into production. This app is also great for beginner DevOps users trying to learn the industry best practices for deployments. Furthermore, we provide a frontend through which user’s can upload manifest files manually and get results on-the-fly without integrating it into their pipeline.
The main idea behind our app is to let developers focus on the feature/project they are working on. For many developers, infrastructure and deployment comes secondary to feature-development, and is often done hastily. Thus, a vulnerable deployment may occur in production, allowing malicious actors to sabotage the company infrastructure. We wish to address this pain point for developers across the world.
This project fits into the Advanced Technology subcategory for the Capstone design project. It is a data cleaning tool that facilitates organizations to run security checks while merging pull requests. Without this tool, there are many security vulnerabilities that can be potentially exploited by malicious users. This tool uses a software engineering workflow to mitigate this risk.
Kyle Li, Bimesh De Silva, Max Gao, Ravindu Angammana
Over the years, Kubernetes has emerged as one of the industry standards 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 managed by Kubernetes.
Diago, a project initially created by team b-fame, is a scalable Kubernetes-based load testing framework. Using a template, developers can specify which services they want to load test, the number of requests per second and length of the load test, and schedule times to automatically run load tests. Further, Diago provides a load testing method specific to Kubernetes, known as chaos simulation, where Diago can be configured to take down instances of a service to simulate a chaotic environment prior to performing a load test. Behind the scenes, Diago will trigger scheduled load tests onto Diago workers automatically.
Developers can interact with Diago via the provided graphical interface (GUI), where they can view all load testing instances, create new instances, run load tests ad-hoc, and view aggregated metrics from previous load tests. By providing a Prometheus instance to Diago, load testing metrics can be viewed in an embedded Grafana dashboard in the GUI.
Our team worked on bringing Diago closer to feature parity with industry standard tooling. The most requested features we added include: workload log storage, support for request bodies, authentication, and splitting up the leader’s workload. Storing workload logs enables developers to more easily debug suspicious load tests. Request body support enables non-GET HTTP request types (e.g. POST, PUT). Further, as Diago deployments typically have access to a large amount of computing power, authetication prevents dangerous misuse. Finally, by moving metric aggreagtion from the leader to a scalable microservice, we enable Diago to perform much larger load tests. Overall, the shortcomings addressed by team KRAM have transformed Diago into a more complete and usable load testing tool.
Beini Fang, Ellen Huang, Irene XiangYi Chen, Lindsey Jin
When developers start a software project, they commonly access code examples for guidance. But based on our user surveys, developers of various levels of experience report having difficulty using current search tools to retrieve relevant examples for their specific use case.
Existing search tools for source code—such as Google and GitHub Search—rely almost exclusively on string-based search queries and text representations. However, natural language queries lack the precision and descriptivity needed to match repos by their functionality. Furthermore, GitHub is the world’s largest host of source code with over 48 million public repositories, yet it has limited effectiveness in retrieving repos for reference purposes.
Our solution is GitCrabb.in—a search engine that returns similar GitHub repos. Our approach has the unique advantage of using repos themselves as search queries. We leverage diverse features for comparison, such as implementation languages, repo metadata and source code, to retrieve a broader set of results that users may find helpful as implementation references. Additionally, since the concept of similarity is ill-defined, we provide search filters for users to more precisely convey their information needs. We also iterate on continuous user interviews, feature engineering, search index design, and data retrieval to improve user experience. In short, our solution solves users’ pain points—a lack of relevant search results and time-consuming manual sifting—with precision and recall-enhancing techniques.
To demonstrate GitCrabb.in’s effectiveness in finding useful and relevant projects, we have conducted user studies to measure relevance using graded metrics. Against Google and GitHub Search, we see improvements in cumulative gains metrics in design-type search tasks, but recognize scalability limitations in this validation method. Thus, we have also implemented crowdsourced relevance assessment through anonymized tracking.
By retrieving multiple relevant existing repos, GitCrabb.in enables developers to make more informed software design and implementation decisions.
[Natural_Language_Processing]
Jerry Huang, Saidi Tang, Xintao (Cynthia) Zhu, Hongru Xiang
English has become the lending language of international discourse in the 21st century and to have adequate understanding of the language is essential for survival in today’s world. However, not everyone possesses the same level of mastery of the English language, especially when it comes to reading.
Writers oftentimes have difficulty communicating with their target readers due to accumulated habits. Journalists, for example, normally possess distinctive styles which may be difficult for younger readers to understand. Asking the journalist to completely revamp their writing is infeasible, but it is also difficult to simply ask the readers to improve their reading skills on the fly. Additionally, while there exists a significant amount of research in text simplification, there is a lack of research on controllable text simplification, where the simplified text’s target readability level can be accounted for.
We have aimed to build a tool which can be used to help alleviate this issue, providing users with the ability to automatically adjust the reading level of an article they would like to read. We initially pursued preliminary research which enabled us to develop language models which can efficiently perform this task before designing an easy-to-use interface which individuals can interact with to demonstrate the abilities of these aforementioned models.
Our tool is significantly better than any existing solution to the problem as no tool currently exists such that it can accomplish the same task. At the same time, the best current solution would be to directly ask individuals to simplify a piece of text, which our tool will improve upon significantly by removing the middleman and automating this process.
Having conducted user interviews with people who can use the tool for a variety of purposes (educational, for leisure, etc.), we are confident that our tool can be useful. Furthermore, current prototypes accomplish this ability to control text simplicity in a way that test users have deemed reasonable.
Ali Nikseresht, Arjun Bhushan, Austin Jiang, Derek Xu, Shun Rao, Tobi Adewoye
AutoComic is a software tool for amateur translation of foreign graphic novels, sometimes called “scanlation”. There are three stages in the scanlation workflow that we aim to simplify. First, there’s the cleaning stage, where “cleaners” must clean the digital scan of the novel by removing foreign text, and sharpening the image so that the scan can be better viewed on a digital screen. Next, there’s the translation stage, where translators must translate text from the source language into the target language. Finally, there’s the typesetting stage, where typesetters combine the translated script with the cleaned copy of the graphic novel by placing text in the correct locations, and styling the text with appropriate font choices. Scanlation can be expensive, slow, and inconsistent due to the manual nature of the process and repetition required to translate many pages.
AutoComic automates the more tedious parts of the process – often done manually in tools such as Adobe Photoshop – by providing one-click cleaning, automatic typesetting, machine-assisted translation, and other specialized tooling. Computer vision algorithms are at the core of AutoComic, and these algorithms are underpinned by our own novel, custom-built comic dataset.
Unlike other scanlation solutions, AutoComic doesn’t try to fully replace scanlators or dictate their workflow. Instead, AutoComic’s design is the result of a close collaboration with scanlators and consists of only the features that are most important to them. Our interoperability with existing scanlation tools and formats gives users the freedom to tackle different scanlation problems with the software that is best fit for the job.
Taha Masood, Leo Wang, Thomas George, Erik Terwiel
Digital images are everywhere. In 2019, roughly eight thousand video games were released on Steam, with thousands more released for console and mobile exclusively. More recently, NFTs have taken the world by storm, with their volume reaching 10.67 billion at the end of 2021. As the demand for two-dimensional, static media continues to expand, it is becoming increasingly challenging to produce original content.
Making Original Synthetic Images (MOSS) is a framework that automates the creation of 2D art. It generates images that correspond to a natural language description provided by the user. Then, MOSS ranks these generated images by their correspondence to the prompt and presents them back to the user. Due to the stochastic nature of the underlying model and the extensive custom training dataset, MOSS will always produce a unique and diverse set of sprites, even if it is prompted with the same text multiple times.
Overall, MOSS can serve as an image search engine with a theoretically continuous database of sprites. After a user inputs several descriptive sentences of the image they would like, MOSS can continue generating new images until an ideal one is found. As a result, custom profile pictures, images for informal presentations and NFTs are a few keystrokes away. Video games, expansion packs and new maps/levels can be built more swiftly, enabling game studios to sustain the volatile demand for their products.
While other text-to-image technologies exist, MOSS is novel in its art style and ability to rank the images that it produces. We combined two machine learning models to build MOSS: DALL-E and CLIP. We then fine-tuned these models using a custom dataset of over 500K text-image pairs that were compiled using our data pipeline. We hope that our technology can make digital design more accessible to all!
[Distributed_Storage]
Caleb Choi, Finn Macdonald
Most database or file storage systems today rely on a central trusted source to ensure security and the everyday function of permission systems. The goal of our project is to provide a shared file system that is both cryptographically secure and allows for nuanced file structures and permissions.
More specifically, a central authority is not required for users of the system to encrypt/decrypt files, and the cryptographic scheme allows for modern Read-Write-Owner permissions, much like the one that’s found in Google Drive. The permissions system follows the familiar RWO template, where your permissions are gradually increased from a viewer, to editor, to owner. The database should ensure that anyone without the necessary permissions cannot have the physical capability of reading or writing the data, even if illegitimately retrieved.
An example potential use case is employees in a company where security is extremely important, like military contractors. Folders and file storage without the need to trust other third parties can be useful, where all employees are storing private files on the system that can be shared, but is also guaranteed to only be cryptographically accessible to those who are given permissions.
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.
This project’s aim is not to develop a novel permissions schema or encryption mechanism, but instead seeks to create a novel combination of these useful features to create a unique technology that fulfills a currently unfilled niche. As such, existing methods of file discovery and user authentication will be adequate for this project’s needs.
[Finance]
Han Xiao, Max Dai, Ji Lin Zhu, Yeliang Shou, Yingning Gui
Canadians pay some of the highest banking fees, where customers pay a lot for very little. Canadians on average pay close to $220 per year in fees compared to $98 in the U.S., while also sporting NSF fees that range from $45-$48. This apparent disparity leads to almost 10 million underbanked Canadians who have little access to financial services through traditional banks. Less than 20% of individuals end up paying more than 90% of banking fees due to the lack of access to credit.
This is where Nyble comes into play. Our goal is to create a suite of products that enable Canadians to gain access to the financial services they need and deserve. The first in this lineup is the Early Payroll product. Using this product, we provide customers with up to a $100 cash advance for free until the customer gets paid on their pay date.
Typical Canadians work and get paid in intervals of two weeks or a month. In the meantime, they have expenses to cover and without cashflow, they rely NSF charges and payday loans to stay afloat. With our Early Payroll product, we provide cash to users with absolutely no interest so they can cover their costs until their next payday.
If we provide these advances with no interest, then you must be wondering how this company can make a profit. Typically, we provide our cash advances within three business days of an application. However, if a user wishes, they can opt to pay a small fee to obtain the cash on the same day. Additionally, we operate on a tipping model where users can choose to donate to our company completely optionally.
We aim to add more products to our suite in the future to better serve the Canadian population.
[User_Polling]
Alexandra Girard, Heather Musson, Ben Langlois, Ariel Lam
When teaching large groups of students, instructors have no way of instantly assessing how well their students are understanding the content. Instructors often turn to tools such as iClicker or Kahoot to quickly quiz their students. However, both of these tools only provide the ability to assess understanding with multiple-choice questions. Furthermore, iClicker requires that each student purchase a physical device.
Quizem aims to provide a wide variety of question types that can more accurately assess student knowledge in a variety of subjects, and eliminate the need for students to purchase a physical device.
Quizem is an interactive web platform with two key interfaces. The first interface is designed to be used by instructors. Instructors can instantly create a live quiz session, send questions to connected students and view their responses. Instructors can also prepare their questions ahead of time to be used in future live sessions. The second interface allows students to join a live session from any internet-connected device. Once a student joins a live session on their device, they can see any questions sent by the instructor and submit their answers.
The main advantage of Quizem over iClicker and Kahoot is the wide variety of available question types, including: multiple-choice, true or false, reaction, short answer, Likert scale, fill in the blanks, multiple select, and numeric. In the future, we plan to add matching, sequence, and file upload question types.
We have spoken with several educators who are willing to try our product in their classrooms. At the time of writing, we have 130 users (30 users have created at least 1 quiz, the remainder have participated in a quiz). Google Analytics indicates that we have had over 150 unique sessions on quizem.io.
Stanley Huang, Wesley Leung, Yifan Kou
In any real-time presentation context, interacting with the audience is a classic problem. With a live audience, the presenter can do their best to "read the room", or ask for a show of hands. But when presenting online, the medium does not lend itself to similar techniques. For example, consider the quickly-growing form of online presentations that is live-streaming. A streamer and their viewers mutually interact in real-time via a live comments channel. It quickly becomes impossible for one streamer to read the simultaneous comments of up to thousands of viewers. Zoom presentations and online lectures present similar challenges, which Apollo seeks to address.
The traditional means of collecting feedback en masse is to use polls. Polls are usually characterized as being pre-planned, where the creator plans questions and provides options ahead of time, and are deployed in a medium where they are meant to be filled out asynchronously. Although there is no shortage of such polling applications, these characteristics make them non-ideal for a real-time presentation, where the feedback the presenter seeks can quickly change and evolve.
In contrast, Apollo allows the audience to submit free-form responses in real-time. This frees the presenter from having to create a poll beforehand and predict likely audience responses, which not only wastes time in a live presentation, but also runs the risk of the presenter mispredicting and stifling the audience. With Apollo, the presenter can simply create the poll and allow the audience to propose their desired responses. The presenter manages the poll from a dashboard, where they can remove invalid or inappropriate responses and track the responses in real-time.
We launched Apollo’s public alpha to several gaming communities and streamers, deploying the product as a web app. Feedback has been mostly positive, and we received a number of feature requests that we are integrating as we prepare for a broader release.
[Student_Tools]
Tina Gao, David Zhou, Amanda Morin, James Long, Jayson Yan
Waterloo students commonly have their resumes critiqued via peer groups, such as their cohort, CCA, or anonymously online. The UWaterloo Reddit creates a resume critique megathread termly to help facilitate this. Currently, online resume critiquing is a very manual and non-standard process, where users share documents with their reviewers and the reviewers either review through some sort of voice chat or create a list of plaintext comments.
Online resume critiquing is a popular avenue for receiving feedback, especially during a time where meeting in person is not always possible. Critiquing sessions can broadly be split into two categories: synchronous and asynchronous. Our product is mostly aimed towards making the async reviewing experience smoother, while still supporting synchronous sessions as effectively as common competitors.
A pain point of online resume critiques is sharing resumes with multiple reviewers. Existing collaboration tools require users to upload a copy of a resume per reviewer and typically only focus on supporting commenting. There is usually limited or no support for free-form drawing, which is how resumes are critiqued in person.
With ReviewKit, users will be able to easily upload and share their resumes with a single link and it creates a new review session for each reviewer. All of their reviews will be consolidated, making it easy to keep track of them. With the shared link, reviewers will be able to critique resumes in their browsers with a combination of annotation tools and commenting functionality.
ReviewKit’s soft launch was conducted at the start of the spring 2021 term. Since the soft launch, ReviewKit has been used for resume critique events held by SE Soc, Eng Soc, Computer Science Club, and Tech+. Currently there are over 1000 users and 600+ completed reviews. The next step is working to cement Reviewkit as the platform for resume critiques at Waterloo.
Andy Wang, Leo Lu, Riley Zhou
Job searching can be tedious and time-consuming. At any given time, more than a million people in Canada alone are actively looking for jobs. Those people can be exhausted and can waste endless hours researching positions and tracking applications. As a graduating college student who has experienced job hunting seasons, it is realized that the average amount of time and effort in finding dream jobs could be outrageously heavy. Noticeably, keeping records of the interested/submitted applications in a dead-end spreadsheet takes considerable time. What’s worse, a lot of applicants feel anxious and frustrated when the company either stops updating the status or has lengthened the hiring process.
Our goal is to provide a platform that assists job seekers in making their application tracking effortless. Jobs are scattered all over the place, making it hard to remember where one has applied and what the status is for each opportunity. Instead of manually logging job application details on spreadsheets, we offer users an automated job application tracking tool, GoosePilot. GoosePilot can keep track of every detail about the job opportunities regardless of where they found them. In our proposed roadmap, the first step is to competently assist users in tracking and managing their job applications. Furthermore, we want to provide a community for users to share meaningful job application timelines, interview guidance, and career insights.
Our main competitors are Glassdoor, Indeed, and Linkedin. They offer the ability to track job applications; however, they are limited to tracking applications within their own platforms. GoosePilot enables users to track job applications from multiple platforms by simply copying the URLs. It also offers a chrome extension to automatically save job opportunities from anywhere as users browse. It is our focus to build the platform user-friendly so job seekers can easily stay organized, track every application, and land their dream jobs successfully with the least amount of effort.
Angelo Lao, Shubhi Raj, Joseph Tafese, Sailesh Nankani
In 2020, around 2.18 million students enrolled in postsecondary institutions in Canada. During the admissions process, all such applicants have to navigate an overwhelming amount of information about universities from various sources that may not be credible. To get answers to personal questions or to discover additional options, we found that they prefer to talk to current students attending their schools of interest - but there are many aspirants who don’t have this luxury.
Existing solutions like campus visits and university fairs can be infeasible due to distance and scheduling conflicts. Moreover, in-house chat programs (e.x EngChat, UWindsor Connect) are not well known. Companies like ApplyBoard or study abroad counselors aid the application process but do not provide a direct way to talk to current students. Facebook, Slack, WhatsApp and Discord groups exist but it’s hard to find authentic links to these as they require an inherent concept of friendship or association.
To solve this, we have developed an online platform which makes it easy for aspiring university students to find and connect with current university students as well as a community of other high school students. Aspirants can search our directory of current university students and filter them by school and program, to initiate a 1:1 conversation with mentors, engage in topic-wise forum discussions and access Information Pages that standardize the information about these institutions.
Our competitive advantage lies in being a standardized, easy to find, openly accessible platform for applicants irrespective of their high school reputation, personal contacts, or geographic location. As of February, 2022, we have conducted several expert interviews and surveys (>100 aspiring and current students) and established a Discord community of over a 100 mentees and 6 mentors to conduct user testing. In March 2022, we launched our Beta and will be using the feedback along with the number of visitors and monthly active users as metrics of evaluation in preparation for a public release in April, 2022.
Haoyang Qi, Lucy Wu, Han Haosen, Shen Yuan Xie
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 platform like Facebook is about an hour per day, and yet this does not include other social media such as Youtube or Twitter. It then follows that a serious 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 Time Analysis and Management Tool, 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.
Matthew Godin, Brayden Riggs, Mayuka Bula, Daniel Arevalo
People program for many reasons including to work, to learn, to compete and to have fun. They often turn to traditional coding platforms such as LeetCode and HackerRank to practice, but it can be difficult for them to get exactly what they want from the experience. Novice programmers become discouraged, job applicants are not sure how they would perform under pressure and people just looking to have fun can only code for so long. Traditional platforms are great for practising problem solving, but using them can feel tedious, unproductive and asocial. The fun in it is mainly in the satisfaction of solving a question and checking how you did compared to others does not feel competitive. The questions are often very specific and do not seem to test the same skills as an interview. To solve these issues programmers have to tailor their experience by timing themselves, coordinating with friends, researching interview processes and more.
Licode aims to provide a gamified programming platform which keeps users engaged and trades some practicality for other benefits, such as a less formal competition experience. On the platform, users compete against another player to solve the programming questions first. Players can also use “wildcards” which can either give them an advantage or give their opponent a disadvantage. Players have a ranking similar to an ELO score in chess so they can track their progress and compete against players of similar skill. Users can stay engaged for longer, compete directly against their peers and get practice in real-time scenarios all while playing a game.
Our competitors include LeetCode, HackerRank, LeetParty and DMOJ. LeetCode and HackerRank allow users to solve programming questions, compare their performance to other users and do mock interviews and interview questions. LeetCode and DMOJ also host periodic contests and LeetPary allows users to coordinate when they begin a LeetCode question. Licode’s main differences are it’s gamification and one vs. one competitive nature which allows users to stay engaged and do more of what they want.
[Gaming]
Michal Jez, Robbie Zhuang, Gordon Guan, Callum Moseley
One of the best ways to stay connected with friends when unable to meet in person is through online games. Many games nowadays support the ability for players to join each other online and play cooperatively and competitively. Recently, it has even become possible for players on different game consoles to play with one another, through “cross-play”. However, many games still don’t support online multiplayer, and there is often a high barrier to entry for players, as they may need to own the console and the game to play online with friends. Our system hopes to solve this problem by making it easy and painless to play console games online with friends.
The Vulcan Gaming Platform combines a hardware device called a Vulcast and a web platform to allow a video game console owner to instantly share their game console with friends through the internet. After connecting the Vulcast to the internet and a game console, such as a Nintendo Switch, a console owner can create a virtual room that can be shared as a simple web link. By clicking this link, their friends are immediately placed in the virtual room, where they can see a live feed of the game, as well as play with a virtual controller through their keyboard, gamepad or touchscreen device. Virtual controllers can be passed around and handed off, and non-interactive spectators can join as well, as if you and your friends were sitting around the TV at a house-party.
Several options for remote gaming exist already, such as Parsec, or Google Stadia. However, many of the existing products require sign up and installation, and are only for PC. The Vulcan Gaming Platform’s main goals are to allow players to join with a single click, no sign up or download required, and to support console games.