Erik Boesen

Projects

Yale Menus

2021

Yale Menus is the #1 student-made app for viewing dining hall menus at Yale. Created to replace the underwhelming official Yale Dining app, and totally rebuilt following Yale Hospitality's infrastructural redesign in 2020, Yale Menus is a clean, simple, student-driven service that helps students get the information they need when they need it. With numerous special features such as flagging problematic allergens, notifying you when your favorite menu items are served, and much more. 4,000+ active users.

After Yale Dining shut down their official API in 2020, I built the public Yale Menus API which uses Selenium to trawl through the various Yale Dining websites that hold dining information and compile it for clean fetching as JSON.

Role: built iOS app and API, redesigned Android app originally by Adisa Malik.

Tools: Swift, Kotlin, React, Python, Flask, Postgres, Selenium

Yalies

2020

Yalies is a redesigned version of Yale's official Face Book, which provides contact information for Yale students. It displays data from the Face Book, Yale Directory, and various department directories, but through a more modern, better designed, and more secure interface. Unlike official Yale sources, Yalies is accessible only to undergraduates, and censors private details (street addresses, room numbers, and phone numbers) that I believe Yale should not divulge.

Yalies also provides an API for student developers. The API powers numerous student projects and university services, including CourseTable, Yale Research Database (RDB), Yale Daily News, Yalies.me, MailYale, Comethru, YPost, yale CLI, Ship, student projects in S&DS 315 and CPSC 490, and more.

I donated Yalies to the Yale Computer Society, where I now lead a development team of 6 students to maintain the service.

Tools: Python, Flask, BeautifulSoup

Press: Yale Daily News

MailYale

2020

MailYale helps easily generate email lists for the Yale community based on various characteristics such as year, major, residence, home state/country, and more, to help make sending emails a breeze!

Scraper system later repurposed to build Yalies.

Tools: Python, Flask, BeautifulSoup

Comethru

2020

Comethru is a mobile app to help Yale students post and find parties and social events on campus, and to stay safe while going out. Uses geolocation and Google Maps API to detect presence at events, which helps detect crowding level and allows users to keep track of where their friends are. Also integrates with Facebook API to help students find their friends. 25% of students at Yale (~1,500) were active users when the outbreak of COVID-19 put a pause on the project.

Tools: Ionic (HTML/SCSS/TypeScript), Python, Postgres

MeBots

2019

MeBots is a powerful toolkit for building, sharing, and using GroupMe chat bots with ease. It provides a public list of bots that anyone can install in their own chats, and a developer platform for making your bots scalable. MeBots modernizes GroupMe's bot system and adds new features, such as a user interface for adding bots to groups, automatic storage of basic bot information, and more! The service currently hosts over 700 bots, with more being created every day.

The MeBots API makes bot development way easier by managing authenticating tokens for unlimited bot instances, which allows bots to operate across many groups, which GroupMe normally doesn't support. It's ideal for simplifying maintenance of bots at many scales, as well as for promoting them through the Bot Shop.

While building and promoting the MeBots platform, I've created a number of bots of my own: Yalebot, Bot Against Humanity, TicTacToeBot, TeX bot, Memebot, xkcdbot, NASAbot, cleverbot, @everyone, Mealbot, GlobalistBot, eightball, and more.

Yalebot

2019

While participating in the Yale Class of 2023 admitted students GroupMe chat, I began exploring the platform's bot API, then built my own chatbot for Yale-related groups. Initially having only a few basic commands, I gradually added features for over 7 months until the bot became an incredibly complex 35,000-line codebase. It continues to entertain admitted students across over 200 groups to this day—it can fill in meme templates, draw on profile photos using face recognition, host entire games of Cards Against Humanity with a corresponding web interface, list available courses, give information about menus and capacity of Yale's dining halls, and literally hundreds of other features. It also supports registration of custom commands by users.

Inspired by Yalebot's success and some of the challenges I faced in scaling it, I later built a "bot store" called MeBots to allow anyone to add it or other bots to their own chats (see above).

SeniorMap

2019

During my senior year of high school, I created an interactive map of my class' college/postsecondary destinations and intended fields of study. Over 70% of my class submitted their plans, inspiring the school administration to officially endorse the project and promote it to the community. I continue to oversee the project, which is updated each year by younger students in the Advanced Programming Club.

Tools: Google Maps JavaScript API, Tabletop.js

Newlogy

2018

Newlogy is a browser extension that enhances the Schoology Learning Management System interface. It cleans up graphical styling, hides unnecessary user interface elements, and adding new useful features by injecting CSS and JavaScript code into Schoology pages. Within a week after I released the extension, it was installed by over 40% of students at my high school, leading Schoology itself to offer me an internship.

Press: The Lasso

WristCoach

2018

During my senior year on my FIRST Robotics team, I joined our robot drive team in the position of Drive Coach, with responsibility to keep track of the field and our objectives during each match to help the drivers plan their next move.

I found it unnecessarily challenging to keep track of time during matches. Having recently purchased a Pebble watch, I decided to build a watch app to keep track of game timing and send the user configurable vibration alerts when certain driver actions need to be taken. Because Pebble as a company shut down in 2016, I sideloaded open source software from Rebble in order to bring new life to a $20 watch.

Tools: C

FIRSTMap

2016

FIRSTMap is an interactive online map of FIRST Robotics teams and events. It uses The Blue Alliance APIand the Google Maps Geocoding API to obtain locations and logos. It includes helpful features like search/filtering support and keyboard shortcuts.

Tools: HTML/CSS/JavaScript, Google Maps JavaScript API

FRC Dashboard

2016

FRC Dashboard is a fully customizable dashboard for FIRST Robotics Competition (FRC) based on web languages. After working on my team's web-based 2016 driving dashboard, I decided to rewrite the core codebase from the ground up to improve its cleanliness and allow it to be extended and used by other teams. I further migrated the platform to an Electron-based GUI rather than depending on a web browser, to further clean up the platform. FRC Dashboard was extended and used in competition by over 100 teams during the 2017 and 2018 seasons.

Tools: HTML/CSS/JavaScript, Electron

FIRSTMap

2016

FIRSTMap is an interactive online map of FIRST Robotics teams and events. It uses The Blue Alliance APIand the Google Maps Geocoding API to obtain locations and logos. It includes helpful features like search/filtering support and keyboard shortcuts.

Tools: HTML/CSS/JavaScript, Google Maps JavaScript API

FRC New Tab

2016

FRC New Tab is a custom new tab page extension for Chrome and Firefox which displays information about a random FIRST Robotics Competition team along with a picture of their most recent robot. It also supports showing the team whose number is represented by the current time. 300+ active users as of 2019.

VictiScout

2016

During FIRST Robotics competitions, teams must constantly observe every other team's performance (or "scout") in order to judge whom to choose for alliance selection. VictiScout is an easily customizable Electron app that enables my team to collect data with ease and flexibility, and to easily combine multiple scouts' datasets into a summary spreadsheet to be used by team leadership to make alliance decisions. Because of the general lack of WiFi at competition facilities and FIRST's strict rules against self-hosting networks, VictiScout uses Bluetooth to exchange JSON-formatted data with other clients.

Tools: Node, HTML/CSS, Electron

BWNT New Tab

2016

A minimal but customizable new tab page for Chrome and Firefox. 2,500+ active users as of 2021.

Other Projects