A Conversation With Summer of Code Winner Ethan Chiu

We sat down with our Summer of Code Challenge winner, Ethan Chiu. A motivated and hardworking high school student, Ethan’s project focuses on bringing students together to help each other through peer mentoring in his school. We asked Ethan to tell us about the project and what inspires him to code.

alt text

Why did you choose to enter the Summer of Code challenge? Since this challenge was during the summer, I knew I had more free time to code something awesome! Thus, I wanted to challenge my existing knowledge of programming and create a web application that would help my local community.

Where did you get the idea for StudyTogether? I got the idea from talking to my peers who were tutors, and my friends who were getting help from my school’s peer tutoring system. My school’s existing peer tutoring system is pretty amazing. It is free and accessible to all students. It gives student tutors academic credit and teaching experience while students get an opportunity to improve on a tough subject with the aid of a free tutor.

Nevertheless, I found out that this system still had some downsides. From a high level perspective, there is no streamline process for this peer tutoring system. The system is unorganized because it is separated into different sections for each subject. Students have to search for certain teachers to get access to the peer tutoring system. More importantly, many struggling students don’t even know of this system because it reaches them through word of mouth. This system also creates a rigid and inflexible schedule for both the tutor and the student. Struggling students often don’t receive enough help to succeed in future classes, and the tutor has to follow a cumbersome schedule.

Interestingly enough, I didn’t hear of this program until the last weeks of school. Therefore, I seek to improve the existing peer tutor system by making it more accessible, scalable, and flexible. My primary goal is to create a web application that would allow students who need help in all school classes to receive the help they need.

When making the app, I made sure to cater to my school. I tried incorporate three core values: organization, flexibility, and safety. I envisioned my web application to allow both student tutors and the students to schedule appointments with each other quickly. In addition, I envisioned that students can also choose a student tutor based on their experience, accessibility, and schedule, while tutors can get to know more about their students’ questions before hand. It is a safe and monitored system controlled by teacher admins. If face to face tutoring is not possible, peer tutors and students can communicate through the inbox or videocam system. Tutors can post their video tutoring session (always recorded) on YouTube so that others can learn.

Overall, I want this web application to allow students to receive the help they need. Hopefully in the near future, after I run a couple tests in my school, I can expand into other school systems, which will create a strong network of resources.

What were some of the difficult parts about coding your project? Some of the most difficult parts came when I was programming the CSS. I often made silly and hard to find mistakes that would throw off my project. For example, it took me a couple hours to figure out I swapped the z-index of two different css classes which ruined the stack order.

What would you have done differently (or more of) if you had time? If I had more time, I would definitely focus more on the backend and making the basic core functions of the website work. For example, I wish I could have spent more time on the login, calendar and videocam parts of my web application. Overall, I would have taken more risks, such as experimenting with different front end frameworks link AngularJS.

Which courses were the most useful for you when creating your project? The HTML/CSS, JavaScript, and jQuery skill courses gave me a solid foundation to grow from. The Web Developer Skills courses such as Make an Interactive Website gave me some inspiration on what beautiful websites could look like. Overall, these courses allowed me to create a website from scratch.

Where did you turn for support when creating your project? For this project, I really wanted to debug everything myself because I wanted to challenge myself as much as possible. I didn’t turn for much support besides using Inspect Element and reading the Bootstrap documentation. Before the project, when I needed support for programming, I always turned to the amazing Facebook group called Hackathon Hackers for help. They are a great community of supportive developers.

How do you hope to continue your project, now that you’ll have support from a Codecademy engineer? With the support of a Codecademy engineer, I hope to make my website’s core backend part, the calendar and scheduling function. Also, I want to improve the UI/UX of my website. Having been using the Codecademy platform for the past 2 years, I am amazed by how Codecademy constantly improves their website’s design to make it more user friendly. More importantly, I want to develop good programming habits and learn from the experiences of a Codecademy engineer.

What do you hope for this project in the future? How would it function ideally? I plan to integrate my school’s email system with my website so that login is fast. Specifically, I want to create three different user accounts: student, tutor, and admin (teachers). I want to create a more flexible calendar system and a more aesthetically pleasing calendar system that makes scheduling easier by combining the best elements from Doodle and Google Calendar.

After developing this core function, I hope to create a system where users can type in their basic information so that they can effectively pair each other up for tutoring. In addition, I want to incorporate a video meeting system where tutors can teach their students. Lastly, I also want to make my website mobile friendly.

What’s next for you? Right now, I am currently working on the login functionality with passport.js. When I am done with the login system, I plan to finish the core functionality of implementing the calendar system. Obviously, there is still a huge learning curve out there. I have had no real experience with backend development so I hope I can learn from Codecademy’s SQL course and move on from there.

Other than working on this project, I am developing the front end for a startup called UScanTechnologies, and I am leading the development phase with my Co-Founders for my startup called DrumSense, Also, I founded and am directing WellesleyHacks, a 10 hour hackathon for high schoolers. WellesleyHack’s goal is to help participants of all levels to create a web, mobile, or hardware hack that they are proud of. Lastly, I am attending various hackathons throughout the year. In fact, I am attending my first hackathon out of the States next week (HackTheNorth), and I’m really excited for that!