Projects

NoteToScreen
Go
C++
Swift
Java
JavaScript
HTML
CSS
A website that lets you save paper notes in the cloud, share them with others, and access them anywhere.

What is it?

NoteToScreen is a website that lets you quickly, easily, and securely save handwritten notes online. Once they’re online, you can access them from anywhere, share them with others, search for text, and collaborate in real time!

Why was it made?

I had realized that, in my classes, taking notes by computer was not a very effective strategy for me, but writing notes out inevitably meant that I would lose or somehow manage to destroy them. I wanted some way of getting the best of both worlds, and so NoteToScreen was born.

What am I proud of?

One of the challenges with NoteToScreen was the live collaboration feature, which required learning about WebSockets and how to integrate them with my programming language of choice, Go.

computer
KiCad
Z80 Assembly
Go
Open source under the MIT and CERN OHL licenses
A microcomputer, built from Soviet-era parts, designed for a History research project concerning the development of technology behind the Iron Curtain.

What is it?

This project is a (working!) microcomputer, designed around a U880 microprocessor, a clone of the West’s Zilog Z80, using parts that were available in the Soviet Union during the Cold War. (although I did have to ‘cheat’ a bit with modern versions of some components when I could not find a Soviet version for sale, when the Soviet parts I received were defective, or, in the case of the display, when using an period-accurate part would have made the computer much more difficult to transport and use.)

Why was it made?

My history class had been assigned a research project, with the format being relatively open, and I had chosen my topic to be technology behind the Iron Curtain. As I was starting my research, I realized that several of the components that I was reading about could actually be purchased on eBay, at prices that were far lower than what I was expecting! The only logical next step was to design a computer around these parts, in the spirit of Soviet computer hobbyists from the time.

What am I proud of?

The fact that it works! This computer was definitely one of the more ambitious hardware projects I’ve designed. At the start of the project, while I had some experience with writing software for the Z80, I had never (successfully) designed a computer around any sort of microprocessor, let alone the Z80, and was concerned that I would make some trivial error in the (nine page!) schematic or the layout of the circuit board, resulting in a non-functioning computer. However, I made sure to be careful and methodical in my designing, breaking the system into components that could be prototyped and verified independently on a breadboard. This meant that the final design had very few issues, with the errors I made in the circuit board layout being fairly easy to work around, and I was able to actually get the entire system running properly and submit it as part of my project.

MyHomeworkSpace
Go
JavaScript
HTML
CSS
Open source under the MIT license
An online planner that lets you easily stay on top of your homework and tests. It synchronizes with the cloud, so you can access it anywhere you have an Internet connection.

What is it?

MyHomeworkSpace is an online homework planner I developed with some friends. You can save your homework and other events in the planner, and it becomes accessible anywhere you go. It also connects with my school’s scheduling system, automatically pulling your class schedule data and displaying it side-by-side with events that you add.

Why was it made?

I wanted to see if it was possible to take the paper planner the school offered and digitize it, like I digitized my notes with NoteToScreen. There had already been an Online Planbook created by another student, but I wasn’t happy with the features it offered, so I decided to make my own.

What am I proud of?

Since its start, MyHomeworkSpace has grown to serving over 300 members of the Dalton community, and hopefully soon will be expanding to serve people outside of Dalton.

DaltonTab
JavaScript
HTML
CSS
1st place at TigerHacks 2015 hackathon
Open source under the MIT license
A replacement for your new tab page that provides you with at-a-glance information about your upcoming classes and homework.

What is it?

DaltonTab is a replacement for your new tab page, developed by a bunch of Dalton students, that lets you easily view your homework, schedules, classes, and more! It automatically retrieves your data from MyHomeworkSpace and other Dalton sites, and even brings you a different background every day!

Why was it made?

Originally, it was a project, started by @nywillb, for the TigerHacks 2015 hackathon hosted by my school.

What am I proud of?

While it was initially a project intended specifically for the hackathon, it is a useful product and we’ve been able to maintain and expand it since then, releasing several updates containing significant feature improvements, something which I don’t think is the case for many hackathon projects.

Image of tasky
tasky
Java
HTML
CSS
JavaScript
Open source under the MIT license
A minimalistic to-do list website and Android app, both of which use MyHomeworkSpace to synchronize their data.

What is it?

tasky is a minimialistic service that let you keep a series of to-do lists. All of your data is stored in MyHomeworkSpace, meaning that the apps themselves are entirely client-side and just need you to grant access to your MyHomeworkSpace accounts.

Why was it made?

There were two main reasons I wanted to create tasky: first, I needed a to-do list app, and second, it served as a test of the MyHomeworkSpace API. By building a relatively functional app, as simple as it may be, it made sure that there was nothing missing in the API and verified that it is possible to build something useful on top of MyHomeworkSpace.

What am I proud of?

The apps themselves can rely entirely on MyHomeworkSpace for authentication and storage, meaning that they do not have nor need a backend, and can synchronize data between devices very easily. In addition, there were little to no changes necessary on the MyHomeworkSpace side of things, again proving that the API is pretty complete in terms of building apps to interact with MyHomeworkSpace.

Image of CoursesPlus
CoursesPlus
JavaScript
HTML
CSS
Open source under the MIT license
Archived project (No longer useful, as Courses has since been replaced)
A Google Chrome extension that adds features and improvements to the (now defunct) Courses website my school used.

What is it?

CoursesPlus was a Chrome extension that took the Courses website, which my school used for teachers to post homework and assignments, and extended it. The extension provided extensive customization options for almost every page on the site, and also added several useful features, such as the ability to hide events.

Why was it made?

I wasn’t very happy with the look and feel of the Courses website, so I made some tweaks to the CSS, and realized that I could package these tweaks up as an extension, allowing me to easily distribute them to other students.

What am I proud of?

While it has become useless with the death of the Courses website, CoursesPlus had a long lifetime, with built-in analytics showing that, during its life, the extension’s code was cumulatively run over half a million times.

htstools
C++
Open source
A collection of tools to perform certain types of analysis on BAM files, which contain sequenced DNA data.
gbasm
Go
Open source under the MIT license
An assembler for Gameboy Color games. Translates assembly code from text files into machine code that can be run by the Sharp LR35902 processor in the Gameboy.
flash_programmer
Arduino
Open source under the MIT license
An Arduino-based programmer for the SST39SF010A flash memory chip.
slack-status-bot
Go
Open source under the MIT license
A bot for Slack that automatically sets your status to the class you're currently in.
smsapi
Go
Open source under the MIT license
Server that exposes the SMS functionality of the SIMCom SIM800 cellular modem to the Internet, allowing you to write applications that connect to it.