PROJECTS

This is just a sample of the numerous projects that I have worked on as a student. For many of these projects, code is not provided because doing so would violate Brown's academic policy.

Wearable Weather

I have always had the habit of checking the weather before getting dressed in the morning, and over the years have developed a formula for what to wear based on the weather. However, I know many people who often find themselves inadequately dressed for the weather, which led me to create Wearable Weather. Wearable Weather is a web app that gives users outfit suggestions drawn from their wardrobes based on weather conditions. I developed the project with three other teammates and led the team. I designed the user interface and implemented the entire back-end, including the suggestion algorithm and some basic machine learning that incorporates user feedback. We used the Weather Underground API to pull weather data.

Skills: Java, HTML/CSS, JavaSript, Bootstrap, jQuery, SQL, Weather Underground API, Sketch

Greyhound Redesign

After my friend nearly missed his Greyhound bus because he overlooked vital information on his cluttered ticket, we decided to redesign Greyhound's ticket and mobile application. The original ticket is difficult to parse important information from, so we asked users what data they wanted to easily read from a ticket before redesigning it. We posted our redesign on reddit, where our post became the second top post of the month.

Skills: UI/UX design, Sketch, user feedback analysis/evaluation

Chatroom

Chatroom is a web-based chatroom that supports multiple chatrooms and multiple users. I worked alone on this project, implementing both the client-side and server-side. The chatroom displays all users active in the chatroom, and I added a notification system that displays users entering the chatroom, leaving, and changing their usernames.

Skills: HTML/CSS, JavaScript, Socket.io, Node.js, Express.js, jQuery, Mustache, Bootstrap, SQL

Musical Key/Mode Generator

This was a fun little side-project that I created out of pure necessity when I was taking jazz theory and preparing for the midterm exam. One component of the exam involved being able to sing any scale in any mode or parent scale on any key, on the spot. There are twelve notes in the chromatic scale and twelve parent scales/modes (Ionian, Dorian, Phrygian, Harmonic major, Melodic Minor #5, etc.), yielding 144 possible scales to be tested on. I created a single-page web app that produces a random pitch and mode, which I used to practice for both the midterm and final exams. The short amount of time it took me to make this paid off—I aced both exams. Despite its simplicity, this project is a great example of solving real-world problems using technology.

Skills: HTML/CSS, JavaScript, Bootstrap, jQuery

Cursor Text

This is a single function that adds text to the cursor on mouse events, something that is very useful for indicating to users that some sort of event or action occurred (for instance, that some text was copied to the clipboard). I wrote this with the intention of it being lightweight and generic. It allows for custom styling as well as a fadeout, and requires no additional libraries.

Skills: JavaScript

Bieberfeed

Bieberfeed is a web app that displays a streaming list of tweets posted about Justin Bieber. This was a school project in which a server handling Justin Bieber tweets was provided. I simply had to implement the client-side by using AJAX to poll the server and update the interface with new tweets. The feed could also be paused and restarted.

Skills: HTML/CSS, JavaScript, jQuery, AJAX, Bootstrap

Autocorrect

I implemented a trie-based autocorrection and autocompletion algorithm from the ground up, along with a web UI for user input. The project was designed to be generic so that it could be used within other projects.

Skills: Java, HTML/CSS, JavaScript

Shell

I implemented a shell that parses user input, executes programs, supports built-in commands (cd, rm, ln, exit), supports file redirection, handles signals (SIGINT, SIGTSTP, SIGQUIT) and handles foreground and background jobs.

Skills: C

Personal Website

This website! This was an exercise in restraint, both in terms of design and code. Vanilla HTML/CSS and Bootstrap. Minimalist design without sacrificing responsiveness or accessibility. No database, no unnecessary JavaScript, no back-end (and no need to pay for a server). Every pixel was considered.

Skills: HTML/CSS, Bootstrap