Google CodeU

During this project, I collaborated with a team to design and build a web application using Java, JavaScript, HTML and CSS, leveraging Java servlets, AppEngine, and the Google Cloud Platform and APIs. I also contributed to Open Source software using Git, conducted code reviews, and extended an existing codebase.


See Source Code ↗

ROLE

Full-stack Developer

TIMELINE

Feb 2018 to May 2018

Challenges

Technical Issues

The project itself is a chatroom that allows users to create accounts and converse with others in groups.

This project definitely pushed me outside of my comfort zone. During this time period, I was unfamiliar with HTML and CSS, barely dabbled in Java, and had know idea how servlets and Google Cloud work. We made a few too many merge conflict on Git for our liking.


Team Conflicts

Although we worked in groups of 4, we were all situated in different locations and could communicate online. So much of the learning came from spamming the group chat and StackOverflow. We had conflicts within the team, whether it was scheduling conflicts or implementation disagreements.

Because this project was ongoing during classes, there were definitely limitations to how many hours we could put in each week, even more so during exam season.

Progress

Setting Up

Although apprehensive about beginning, I volunteered to help set up the project with Maven (this later helped in my Programming Studio class!). I made the first commit and that's where it all began. We used design documents to discuss our features before we implemented them. This allowed us to hash out the details and be on the same page before we took up the tasks.

Several of features that we had to implement include: login screens, parsing text, user-password authentication, admin abilities, and auto-complete search.


Is this coding??

Working with Java servlets is cool. I learned how we authenticated users, created conversations, and store information. It made me excited to be working on a project and validated why I want to work in the tech industry.

I went through the tutorials the programme provided, but it wasn't enough. So then I ventured into hundreds of StackOverflow threads to learn how to add auto-complete to our search. I ended up asking my friends around me and really felt like the Computer Science major I am enrolled to be.

One of the features I am proudest of implementing was the navigation bar. Without much prior knowledge of JavaScript, HTML, and CSS, I was able to import the nav-bar into each of our pages.

Results

Surprising, but Rewarding

Disclaimer: I am not an expert in Java, Google Cloud APIs or GitHub because of this project.

However, I did learn more about back-end development and software development than I ever thought I would. It really put into perspective how, as a designer, I should be working with developers to combine our skills. It also showed me real-world applications of my Computer Science degree. I have a new-found apprecation for software engineering, although I still enjoy designing interfaces and interactions more.

Surprisingly, I did not work on designing interface for this project. I only manipulated the interface when I needed components to receive user input or display content. I spent the majority of my time working with servlets and managed users, conversations, and error handling.