Design and Development Projects

AI Writing Tools

AI-assisted Writing Systems

Two AI-based writing tools which assist UX designers in crafting user scenarios. See the demo video. We designed and implemented these tools to boost writing creativity and productivity by leveraging the power of GPT-3, a powerful generative language model. Both tools were implemented using Vue.js and Node.js. We conducted user testing which showed that these systems are effective in helping to create novel scenario ideas and to turn those ideas into stories with rich interaction details.

Related research: KEIT: AI Writing Companions
Collaborator: Alethea Kramer (BCS, Computer Science, UBC)
Advisor: Dr. Dongwook Yoon (Assistant professor, Computer Science, UBC)

Discord Bot

Discord Broadcast Announcement and Streaming Bot

An automated system for scheduled conference presentation streaming and session announcements via Discord with minimal user input. The project repository can be found here.
I completed this project while volunteering as a developer for CSCW 2022 (25th Conference On Computer-Supported Cooperative Work And Social Computing). I worked with key members of the organizing committee to establish stakeholder requirements. To meet these needs, I then implemented a Discord bot in Python that was deployed to a Paperspace machine for easy management.

Instagram Misinformation Reporting UI

A prototype which uses nudging to encourage misinformation reporting and acknowledgement on Instagram. Checkout the prototype in Figma. Four prototypes were refined and merged across several rounds of user evaluations to ensure that the resulting prototype is lightweight and enables reporting without taking users out of their common Instagram workflows. We presented our work in the DFP Design Showcase at UBC. See more details about the project here as well as our presentation video.

Related research: Instagram: Motivating Misinformation Acknowledgement
Collaborators: Abiramy Kuganesan (MSc, Computer Science, UBC), Hannah Elbaggari (MSc, Computer Science, UBC), Eleanor Ren (MLIS, iSchool, UBC) and Jin Wen (PhD, Psychology, UBC)
Faculty consultant: Dr. Luanne Sinnamon (iSchool, UBC)

Golf Swing Predictor

Deep learning system which performs golf swing prediction using data from a wrist-mounted motion sensor to estimate both swing type and distance. This project was completed as part of UBC 554X: Signal Processing and Machine Learning. Unlike existing technologies which are complex and expensive, our approach provides swing classification based on data from a relatively simple tri-axial accelerometer and gyroscope mounted to the user’s wrist. Our hardware was constructed using readily available components (i.e., a Raspberry Pi, sensor module, and a portable power bank) which allowed for rapid deployment and training data collection. Ten-fold cross-validation showed promising results for two prediction approaches: 1) a multi-class SVM for predicting shot type and 2) a convolutional neural network (CNN) which estimates both shot type and distance. Check out our project repository and a brief demo of our system by Austin.

Collaborators: Austin Beauchamp (MSc, Computer Science, UBC) and Mark Ma (MSc, Computer Science, UBC).

Pentagon: Online Video-based Learning Environment

Video-based learning environment aimed at reducing students’ anxiety in online learning. See our prototype demo. Our design was guided by the results of a cognitive walkthrough of a wireframe mockup. The prototype contains 3 main features: 1) “chime-in” and “speaker queue” turn taking feature, 2) in-app collaboration in notebook-like environment, 3) and personalized avatars.

Related research: Zoom: Addressing Anxiety in Online Learning Environments
Collaborators: Jessica Wilkins (MLIS, iSchool, UBC), Atieh Razavi Yekta (PhD, OSOT, UBC), Anika Sayara (PhD, CS, UBC) and Syed Ishtiaque Ahmad (MSc, CS, UBC)


An automated transcription and speaker recognition solution with WebEx meeting integration. The DiScribe bot processes Webex meeting invitations and dials in autonomously. At meeting completion, the bot produces a meeting minutes text output where each speaker is identified. The meeting minutes are emailed to each participant. Additionally, DiScribe provides access to meeting minutes for previous meetings via a web UI. See the project wiki for more details

Website for Oloff Biermann, Family Lawyer. Utilizes a responsive design. Supports client appointment scheduling and business info lookup, including Google Maps integration and descriptions of services. Also provides access to the latest client feedback and examples of successful previous cases.


A distributed file sharing system with a supporting REST API. Users can share an unlimited number of files via a simple GUI. Uses a centralized index system that accepts client requests to share files and then records this data. Clients can also request particular files to download, and will be matched with other clients which are sharing those files. Thus, a connection between clients can be established, if any clients are sharing the requested file.

Tutorial Platform with Educational Markup Language (EML) Parser

An online learning system with tutorials and quizzes. Uses an educational markup language (EML), an XML-based language which holds tutorial and quiz info. The EML parser produces HTML which is accepted by the browser. See the project repo for more info.

Canvas Slideshow

An HTML Canvas web application which supports various transition effects. These effects include manual advance, automatic advance, and randomization. Preloads images that are specified in a JSON file on the server side to avoid delays in image loading when transitioning to a new image. See the project repo for more info.