visit
A high school junior’s journey from Google Drive for git to coding addiction
Approximately 365 days ago, I sat around thinking, “How can I get better at programming? How can I learn more? How do I learn?” Growing up in the heart of Silicon Valley, I saw people who were building mind-blowing projects, and I wanted to be able to do that too.And that 365th day ago, I read up on many articles on the #100DaysOfCode challenge, where people committed to coding for an hour a day, every day, for 100 days. Naturally, I was amazed — where did these people get the motivation? Whenever I had time, I would convince myself that I should go sleep or magically find something else to do. I was frankly amazed by the dedication that came from these people. For the next couple weeks, I entertained the thought of participating in the challenge. And on the 26th day of December, in 2016, I took my first step as well as my first #gitcommit towards where I am today.
I’ll do it later.
I could do that if I tried.But the truth is, you’re not trying, and that “later” will never come. I knew that although I wasn’t the best at time management, if I was going to commit to a long-term resolution like this, I needed to scrap any excuses. That meant that even if I had a test or vacation, I would still make just a little time to get a something done on my projects.
Repository and . Built with Swift 3, Firebase, Twilio, Flask, Alamofire, and more!
If you’ve looked at both the Devpost and the GitHub project, they’re very different, and I assure you, this was on purpose. When I went to my first actual hackathon, I had went over a couple iOS tutorials, but had no idea what was an API or Flask was. Naturally, being quite lost, I got a couple of ideas from a friend, and the rest of my team thought it sounded exciting. From this experience, I learned that it was a bad idea to just start working on something without coordinating with your team and get frustrated alone. It’s probably a given now, but as a near first-time hackathon attendee, I can forgive myself for that. EmergencyBot is a SMS text messenger bot that allows a user to hold an emergency button down while walking alone at night, which when let go, messages your emergency contacts with a custom message that you are in danger. I wanted to create an app that would allow people to feel like they had some sort of safety net when they might be going into dangerous situations, such as walking home late from a class or going to a new place alone. Thus, I made an iOS application that contains a emergency button, an averaged programmatic delay to determine how long you would need to let go of the button to send a message, functions to edit and add emergency contacts, and group message sending to mitigate any possible false alarms.
Private Repository, Devpost: , . Mainly built with Swift 3 and Firebase
After my prior disappointing performance at trying to build an iOS application, I was honestly pretty discouraged. When I attended this hackathon, it was my second try, and I unfortunately disappointed my friends again, only able to figure out how storyboard worked and Firebase authentication. After this, I decided that I seriously try to figure out iOS development.
Repository . Built with Swift 3 and Firebase.
You might be thinking, how did this girl suddenly go from being incompetent at iOS development to landing a full-blown internship a week later. To be honest, I ask myself the same thing, but I happened to get lucky after I familiarized myself with iOS development. I demonstrated my aptitude for learning on the job, and from this job I became quite proficient in iOS development and became more aware of how an external perspective would change my projects. The web application for Releaf was created by two Stanford graduate students to provide a support group for any topics of concern, similar to smaller private Facebook groups. Common posts include anonymous postings of everyday problems, academic topics, parenting topics, and psychological problems. It is both a web application and an iPhone application, which allows more people to participate. I ended up being the third employee, contributing from when the first iteration was completed and the founders were looking for new perspectives. From there, I helped them review the next couple iterations and helped brainstorm for ideas relating to both design and product development. During my internship, I was advised by a designer and created the application from the ground up, making several adjustments to match the progressive ideas of the founders.NOTE: I was granted full permission to open source the code for the application.
Repository and . Built with Swift 3, Firebase, OpenCV, etc.
I’m notorious for hating the sun, and people who meet me quickly find that I have some quirks that are a result of that fear. I came up with this idea as a joke with my friend while I was trying to avoid the glaring sun on our way to Los Angeles, and we eventually sort-of made work. This application takes your location to find the UV index, and analyzes a picture of yourself to find your approximate skin tone. It then calculates the user’s rate of vitamin D production as well as their optimal daily vitamin D intake through their weight and skin tone. Using the iPhone’s ambient light sensor, accelerometer, and signal strength, we makeshiftedly determined how much UV exposure the user would receive.
Repository . Built with Swift 3 and Firebase.
A long time ago, back at GunnHacks 3.0, I was interested in building this idea, but as time passed, I never really got to making it. Eventually, I decided to build it as a fun break from my work. Following the conclusion of my internship at Releaf, I decided to take what I learned about design and user experience to try and build a quality product on my own. Pick Up Three is an app for iPhone which servers as a social network solely for sharing and creating pick up lines. Users are able to request pick up lines with three specific keywords, so the resulting pick up line will be specially catered towards their special needs. The whole idea of this app was pretty ridiculous, but I’m glad I made it.
Repository and . Built with HTML/CSS and Javascript.
Technically I’m not supposed to include this, but I did work on this website quite a lot during my 2017 year as well. I decided to organize an international hackathon called , which became partnered with WeChat. In my opinion, it’s honestly quite a nice first website, and I have a certain fondness for it. Even though I used so much inline CSS. And had terrible indentation.
Repository and . Built with HTML/CSS, Javascript, and Firebase.
Honestly, although the code for this project was rather messy, I also have a certain fondness for it. I spent a lot of time trying to learn what type of colors meshed well together, as well as how I could make the user experience slightly better. Some of my first exposure of Firebase came from this experiment, as well as a sense of how to manage user privileges and DNS providers. I’m also very thankful for MLH and Domain.com for the free promotion codes.
Repository and . Built with HTML/CSS and Javascript.
Most people I know have a personal website, whether they are in tech fields or not. I decided to make my own, and went with a minimalistic design with links to my resume and other helpful links.
Repository and . Built with HTML/CSS and Javascript.
I’ve joined this local hackathon as its lead organizer, and as part of that, I revamped the website for a new season. It’s a work in progress!
Repository and . Built with HTML/CSS and Javascript.
If you haven’t quite figured it out yet, I enjoy organizing hackathons!
Repository , , and . Built with HTML/CSS, Flask, Javascript, Heroku, Shell, and waaaaaay too many CSV’s.
If you made it here, you probably heard about how I didn’t do so great at the last GunnHacks. I wanted to make a project that used some skills I had developed over the past years. For a while, I had been working with Swift, I decided to make a utility-type web application instead.In case if it hasn’t become apparent, I enjoy organizing hackathons, but with leading one, there’s a lot of logistical and collaborative tasks that need to be done. Managing attendee and mentor registration, judging, and setting deadlines are some of the few tasks that I ended up having multiple Typeforms and Google Sheets for.
Hackathon Manager allows future hackathon organizers to keep track of hardware inventory, milestones, project scoring, and attendees in one web application. All tasks needed to organize a hackathon can be performed inside the web application, from sending emails to registering hacker applications.
The web applications contains features such as email sending, tracking progress on tasks, scheduling events, registering users, project scoring, and project ranking. Like most hackathon projects, this fizzed out for a while, but I decided I wanted to make it functional and more usable. As of today, I’ve accomplished both of those goals, and from running a single shell script, you can generate a full user portal for your event or hackathon. Although it’s mainly complete, it is still missing a few features I would really like to add, so it’s still a work in progress! Check out the for a more in depth review of what the project is and how it works!
Repository and . Built with HTML/CSS and Javascript.
I’m still working on this one, but our hackathon is coming back for 2018! I recreated the home page with the new design after going through nearly a hundred iterations when I worked on the advertisements and banners for last years hackathon.
Repository . Built using Shell.
.debugcleaner.sh: Like some other developers, I had a phase where I left print statements in my code from debugging. This practice resulted in my side project’s code looking rather shoddy, with statements like console.log(“ASDFDSA”) and print(“hi”) scattered throughout. As a result, I created a script to delete all the print statements for various languages throughout my code.
.apiremove.sh: API keys are frequently committed, and sometimes people don’t use .gitignores because they don’t know about them or they become too lazy. To solve that problem, this script commits your code while searching your code for your keys and replacing them with filler text.
.mysql-simple-output.sh: The title of this script is a little misleading, since I meant to use it for a different purpose, but essentially this script allows you to log into the MySQL Command Line Client from any location in your computer. I created it because I kept forgetting the correct file paths from where I could login, so this proved very helpful.
Repository . Built using Python, Unity3D (not uploaded on GitHub), Arduino, IBM BlueMix.
It’s a little bit difficult to self-demo this project, since half of the code wasn’t uploaded onto GitHub. Essentially, we wanted to bring Virtual Reality into a more accessible and reachable tool. By spinning a phone around and stitching pictures together, we meant to create a 360-degree view of the view, with subtitled voice iterations using IBM’s Speech-To-Text Framework.Repository . Built using Python, AnimeLyrics.
Streamers often have to multitask to communicate with their fans, and one of those many tasks is managing their background music. I am currently working on Twitch Music, which scrapes the current Twitch chat of a streamer and plays the youtube songs sent in the chat. If the streamer wants to sing alone, it uses the AnimeLyrics module to retrieve the lyrics for that song.Repository and . Built using Python.
Originally, when I was building Twitch Music, I couldn’t find a suitable module I could retrieve lyrics from, so I just decided to make my own. I also figured that this might be nice for other developers to use, if they also have some use to retrieve lyrics for songs. Feel free to check the documentation on the GitHub for information on use!Repository , , and . Built using Firebase, Google Voice, Riot API, ChampionGG API, Node.js, API.AI, and with an amazing team.
League Voice is a Google Assistant reference tool that would consolidate frequently-referenced info that’s both provided by endpoints (ie. champ win rate, build order, runes) and not (ie. champ ability damage per skill rank). We provide support for many utterances with the use case of cutting out navigating to sites like op.gg and the lolwikia before or during a match.Yuhan Fang, Chan Pham, Jake Smith, Mingwei Samuel, Jonas Krispin, Justin Ho, Emily Yu
My GitHub contributions chart post-challenge, with a lot of green squares.
- The GitHub contributions chart really is a dumb way to judge a person’s work.
For some who attempt the #100DaysOfCode challenge, they end up with a flawless contribution chart. However, there is also a reason that so many people drop out midway — that sort of lifestyle, especially for those with full-time jobs, is difficult to sustain. Even for just a full-time student, I could not even get to a hundred day streak.
Though, if you’re looking to compete in a similar challenge, I do recommend the I mentioned earlier.I think that many who attempt this challenge, like me, are youths who are still learning skills. With hackathons becoming the new “craze,” it’s easy to forget this one thing. Health doesn’t just mean your physical health, but also your mental health. With challenges like these, you might feel that you just want to take a break. And that’s all right. Taking a break for life, and for people who matter to you is just as beneficial as a couple more days spent coding. Though, it is kind of ironic that I’m writing this at 2:00 AM. I hope you enjoyed hearing my story. Please leave a 👏 if you did, and good night.2) Take care of yourself. Hobbies are important, but your health is also important.