For more information about me or any projects I have worked on, click the links in the header above.currently:
- 🪡 practicing cross-stitching.
- 🇯🇵 learning Japanese.
- 📖 reading Words of Radiance by Brandon Sanderson.

Screenshot of the Moon Observatory Iris main menu.

Moon Observatory Iris

Python | Ren'Py

Written in the Ren'Py engine, Moon Observatory Iris is the latest entry in Moon Observatory, a fantasy otome game series created by Batensan.- Implemented custom selection menu interface for branching routes, including a "LOCKED" option for the secret route (unlocked by specific game achievements)
- Researched and implemented gallery functionality and appearance
- Implemented custom textbox and speaker box
- Created particle drift animations using SnowBlossom
- Set directory organization standard and updated references
- Implemented custom in-game cursor
- Advised UI color scheme changes
- Fixed scene change animation and functionality
- Tested and fixed bugs on two separate operating systems with different displays
I started working with Batensan on this project in February 2019. Its final update was released in February 2023.

Screenshot of the BHaE calculator.

Between Heaven and Earth Calculator (v2.0)

CSS | HTML | Java | React

(version 1.0)
A React-based SPA calculator for a Discord-based tabletop game with a custom battle system and a large (~80), often-changing userbase. Note that many units are missing from the database or only have stand-in data due to a change in the battle system's workings; however, the application itself is fully functional.
Aside from some data entry and the graphics noted in the readme, I designed and built the entire app from the ground up.Features:
- Automatic hit %, crit %, and damage calculations for both attacker and defender
- Searchable participant selection
- Participant dropdown menus that sort by allegiance
- Searchable combat art selection
- Combat art dropdown menus that sort by weapon type
- Hover over crest, weapon, equipment, and abilities for more info
- Toggle to view stats
Primary development took place from June 2022 to September 2022. More updates will roll out as members of the community make suggestions.

Screenshot of the farming calculator.

Genshin Impact Farming Calculator

Express | MongoDB | OAuth | TypeScript | React

This site was a completion requirement for CS 4241 - Webware. The goal of our group was to create a web-based application that easily creates a collection (or "farming") schedule for players to reference by utilizing a database, an external API, React, MongoDB, Express, GitHub OAuth logins, and TypeScript. All users need to do is select the characters, weapons, and/or artifacts they wish to farm. Approximately two weeks were spent in development in 2021.As the primary front-end developer, I ensured the app was easy to read and easy to use. I drew mockups for the overall site layout so the team had a visual reference of potential outputs and ran tests to receive feedback on the experience. I retrieved and adjusted relevant images to ensure they would be easily accessible to the backend and suit the rest of the layout.As a general developer, I implemented the menu fly-out functionality. I also stylized the overall app appearance, putting most of my attention toward the farming calendar display and selectables in the menu display.More information, screenshots of the process, and a video demo can be found in the GitHub Repo.

Screenshot of the course organizer.

WPI CS Course Organizer

CSS | d3 | HTML | JavaScript

This site was a completion requirement for CS 480X - Data Visualization. The goal was to create any type of interactive data visualization with a group. This project allows the user to track their progress toward a B.S. in Computer Science at WPI. It has an interface for selecting courses and automatically organizes them into the respective categories for completion. Fully-filled categories gain a box around the outside, while a tracker on the side gives more numerical insight on credits left. The option to import courses from Bannerweb also exists (function now deprecated due to the university moving sites for course tracking). Approximately two weeks were spent in development in 2021.I focused on implementing the front-end interaction of the course drag-and-drop feature (i.e. calling to adjust the tree and removing the course from the menu).More information, screenshots, a screencast, and a process book can be found in the GitHub Repo.

Screenshot of the hospital kiosk app.

GestureFX | Java | JavaFX

Brigham and Women's Hospital Kiosk App

This application was a completion requirement for CS 3733 - Software Engineering. The goal was to create a Java-based application for a hospital kiosk with several other members over the course of the term. I was in charge of the UI/UX team as well as the project manager. Approximately eight weeks were spent in development in 2021.Throughout the several sprints of this project, I utilized agile development tactics in a team of nine. As project manager, I ensured that all deliverables and documentation were correctly collected and compressed to meet deadlines. As the UI/UX lead, I guided the team in creating practical, consistent, and polished fxml-based pages through creation and maintenance of a design standardization document. I also created custom assets to enhance navigation. Furthermore, as a general developer in the project, I assisted in the machine language translation function of several pages.Due to the nature of this project and course, the GitHub Repo and the program itself cannot be made public. As such, only the User Manual and its screenshots are available. Please contact me if you are interested in seeing the code or the application in person, or if you have any other questions about this project.

Screenshot of the Average Female Height Chloropleth.

Average Female Height Chloropleth

CSS | d3 | HTML | JavaScript

This site was a completion requirement for CS 480X - Data Visualization. The goal was to remix and improve a piece of data visualization to include interactivity using JavaScript libraries, especially d3. This project has a chloropleth map for average heights of women in each country, with specific datapoints shown as tooltips when hovering over the country. Up to three countries can be selected at a time to compare and visualize the differences in a bar graph to the right. Approximately one week was spent in development in 2021.I built this application from the ground up.PLEASE NOTE: Some of the libraries and APIs used are now defunct. As such, the site is no longer fully functional. If you would like to see screenshots, please check the GitHub repo. More information, such as the original graph, can also be found there.

Screenshot of the D&D 5e Character Generator.

D&D 5e Character Generator

CSS | HTML | Java

This JavaScript-enabled site was a completion requirement for CS 4100 - Artificial Intelligence in Interactive Media & Game Development, and was also submitted as an entry to PROCJAM 2021. We drew inspiration from Wizards of the Coast's 5th edition of Dungeons & Dragons to procedurally generate grammars surrounding a potential player character. Approximately one week was spent in development in 2021.I took a full-stack role in this project. I wrote and formatted the grammars to ensure the generated sentences flowed naturally. I also debugged an issue the other developers ran into regarding the replacement algorithm. I was also responsible for stylizing the front end.More information can be found in the GitHub Repo.

Screenshot of the proposed OpenShaw Initiative platform.

The Open Source Trishaw Initiative

CSS | HTML | JavaScript

This project fulfilled the Interactive Qualifying Project (IQP) requirement for WPI. In a team of five, we remotely assisted Cycling Without Age of Copenhagen by developing and proposing a globalization strategy for their trishaw marketplace. Furthermore, we utilized proto.io to help them visualize a potential collaborative platform.All of this work was compiled and published by WPI, and it can be seen through the Publication button above.Approximately sixteen weeks were spent in development in 2020.

36 by 48 inch capstone poster.

Training Visualization Literacy

CSS | d3 | HTML | JavaScript | Python | React | R

This project fulfilled the Major Qualifying Project (MQP) requirement for WPI.Graphical perception experiments have played a major role in data visualization since Cleveland & McGill's paper in 1984. We sought to find whether or not graphical perception is a skill that can be trained the same way language is in apps such as Duolingo. With only a barebones React.js and d3.js application originally created purely for testing data visualization skills, I worked with a small team to create various forms of feedback (visual, textual, immediate, summary) and incentivize a training experience. The results showed evidence that the feedback from the app had a positive effect on comprehension of data visualizations.All of this work was compiled and published by WPI, and it can be seen through the Publication button above. A paper regarding this research inquiry was also submitted to and accepted by the IEEE VIS publication; more info will be added later.With a team of six that had staggered schedules, I took on various roles. I finalized the quiz and feedback format through data-driven evaluation to optimize function and appeal. I also conducted three experiments to improve the existing application and a control experiment to support the findings, with the latter acting as a baseline of improvement.Approximately 12 months were spent in development and feedback cycles across 2021 and 2022.

36 by 48 inch capstone poster.

Choose Your Fighter!

CSS | HTML | jQuery

A tiny character selector that uses HTML/CSS and JQuery to highlight and display different characters' stats. Images used are created using artist G0966's Picrew-hosted dollmakers "RPG: Status Generator" and "RPG: Classic Mode" (currently Patreon-only).Created in one day in 2021.

36 by 48 inch capstone poster.

Between Heaven and Earth Calculator (v1.0)

Java

(version 2.0)
A calculator written in Java for a Discord-based tabletop game with a custom battle system and a large (~100), often-changing userbase. This version is deprecated. The linked repository remains available for archival purposes.
I designed and built the entire app from the ground up.Features:
- Automatic hit %, crit %, and damage calculations for both attacker and defender
- Simple combat art selection
- Easy weapon change
- One-button target swap
- Shows personal and crest abilities
- Gambit calculations
Initially created in one week in 2019 and updated many times over the course of two years. The last major update was on April 23, 2021.

Visual Resource Creation

This first gallery contains visual resources commissioned by clients outside of a typical school, work, or project setting. I am strongly familiar with the following tools: Adobe Photoshop, Adobe Illustrator, GIMP, Paint Tool SAI, Procreate, Inkscape.


VisQuiz Icons

In this project, we wanted to evoke a memory of traditional pop quizzes on paper. When it came to the the favicon and logo, the team requested something simple that utilized the main two colors used in visual feedback, but still had a hand-drawn feeling.
For more information on the project, see the VisQuiz page.


Hospital Kiosk App Icons

In this project, we wanted to keep our icons simple and easy to understand at a glance, even if the machine translation function did not work perfectly. As such, all icons used the same shade of gold to maintain design ubiquity throughout the application.
For more information on the project, see the Hospital Kiosk App page.

Photo of site owner.

Errica Cheng, WPI '22

Pronouns: they/he/she

Hey there! Thanks for checking out my portfolio.I graduated with honors from Worcester Polytechnic Institute (B.S. Computer Science, minor in Management Information Systems) in 2022. Currently, I'm searching for full-time opportunities in professional and challenging environments where I can fully cultivate my potential. I'm based in the San Francisco Bay Area, but I'm happy to work remote as well.My skills and experience in several languages (both programming and human!) and my expertise in effective communication are key for developing software on a team. Combined with a passion for analyzing design down to the last pixel, a commitment to data-driven feedback, and an interest in learning all the newest creative tools, I am primarily interested in roles as a UI/UX Engineer, UI/UX Developer, Frontend Engineer, Frontend Developer, or UI/UX Designer. However, my scope is not strictly limited to this list, as I am always growing and learning.In my free time, I frequently work on freelance projects of various natures that utilize and hone my skills with both industry-standard and up-and-coming tools. Some of these projects include a calculator for a homebrew tabletop system, message automation bots, video editing, and visual resource commissions. I also regularly participate in advocacy and thoughtful inclusion of people from all backgrounds, partially due to my own variegated life experiences.For any inquiries, concerns, or your best puns, you may contact me through any of the following methods:
Email: eycheng (at) wpi (dot) edu
LinkedIn: errica-cheng
GitHub: lockeanddemosthenes