In a UC Davis Capstone course, student teams use GCP to create a rather diverse set of projects

At UC Davis, student teams used GCP to produce an astonishingly diverse array of projects. They were able to study, design, implement, and evaluate an interdisciplinary design challenge using computer and computational systems.

In Professor Xin Liu’s Capstone course at UC Davis, collaboration is the key word. Structured as a set of design challenges, the course allows her students to work in teams: problem-solving, communicating with clients to understand their needs, and developing the design, specification, testing, and delivery plan for the projects. Each team took their GCP application in an entirely different creative direction.

Liu has been teaching at the university for 14 years, and has taught Senior Design for the past four years. “Teaching this course is rewarding because I see the progress of our students,” she says. “It allows them to use the knowledge they have obtained in their previous studies to build a real system for a real client. And it challenges them to solve problems on their own.”

In spring 2018, the self-formed teams, with four students each, enjoyed guidance and feedback from teaching assistants. They had additional help from the Google software engineer, Travis Heppe, who served as both a volunteer mentor and a client at his alma mater, where he graduated in 1995. And each team utilized a GCP Education Grant for their project.

“This was my first involvement,” Heppe says. “It started in January with about 20 hours required to set it up, then about two hours per week from January to June. It's meaningful to me because I get to see their skills develop very quickly.” He plans to volunteer again next year. “Travis was incredibly helpful in this process,” says Liu. “I’m very grateful.”

“GCP provides easy-to-use functionality for all major requirements of software development, including computing, storage, app engine, and security.”

Xin Liu, Professor, UC Davis

Using e-commerce to support local artists

Christopher Ta, Phuong Nguyen, Rose-Marie Eter, and Jade MacDonnell decided to sell custom-printed T-shirts via an e-commerce platform, and to use data analytics for a small ad campaign.

They turned to GCP App Engine to host the website. “That allowed us to host without having to worry a lot about servers,” says MacDonnell. “We were able to devote most of our time to working on the code for our site.” Ta says that thanks to App Engine, the team could “quickly deploy our application.”

Their project, 193Tees, aims to promote local artists and give them greater exposure on campus. “When Travis suggested that we develop a platform for social good, we were looking for problems around campus that were underrepresented,” says Ta. “We noticed that artists generally had a hard time getting exposure for their portfolios, so we developed our platform to supplement the advertising of their artwork.”

MacDonnell says she is proud of how far they’ve come since the project launched. She notes that by incorporating Google Analytics into the site, the team learned that they’d had several hundred users visit the site so far. “I really enjoy clicking through our website and having it look and feel like a real website where someone would buy clothes from.”

“[GCP App Engine] allowed us to host the site without having to worry a lot about servers. We were able to devote most of our time to working on the code for our site.”

Jade MacDonnell

Creating a mobile MMO game

Another group—Davey Jay Belliss, Alex Derebenskiy, Jessica Hsieh, and Navid Nadvi—used Google Compute Engine to create a GPS-based game in which multiple players could enter an arcade “room” to defeat a “boss monster.” The team quickly discovered that keeping latency down and synchronizing information between clients would be critical to the project’s success.

Belliss notes that what excited him about the project was the complexity of the challenge: “Creating a massively scaled project with a small team and limited resources.”

Hsieh, who felt she hadn’t had enough time to cultivate her game development skills until senior year, says that the two-quarter time commitment for this project was “the perfect way to satiate my interest.”

The team settled on Compute Engine for their game, Frontier; Battlegrounds, “for more flexibility in hosting our game server,” says Hsieh. “Because the premise of our game is partially inspired by the rise of location-based mobile games, we wanted to utilize the same concept of location-based real world exploration, so we decided to use Google Maps Platform. The Google Maps Static API enabled us to display a user’s surroundings on their phone screen, and gave us the flexibility to specify different zoom levels for development purposes.”

Adds Derebenskiy: “Compute Engine allowed us to host our backend Node.js server, as well as the headless unity servers online. It also simplified retrieval of map data from GPS coordinates.”

“The primary goal of our game was to provide users with an entertaining experience,” says Hsieh proudly, “and I believe we succeeded!”

The students appreciated the freedom they were given to pursue their work. “I enjoyed how open-ended the project was,” she says. “Each week, we would meet up and discuss what we were interested in accomplishing in the following days—and production was mainly driven by our own enthusiasm.”

Designing a collaborative whiteboard

Another group of students focused on making a real-time shared online whiteboard, with an emphasis on the UX needed to initialize a session quickly. Yunwon Tae, Richard Gao, and Lena Tan used Google Compute Engine for their project, called Drawback.

“It seemed to be a great way to utilize the knowledge we gained in previous classes, while also learning concepts we’ve never dealt with before,” says Tan. “There are many collaborative whiteboards on the market, but none of them emphasize quick and easy sharing to allow for this collaboration. With Drawback, we’ve prioritized it to be not just a drawing tool, but a sharing tool with low latency and a smooth user experience.”

She adds that Compute Engine allowed us to host our server “on a virtual machine instance, such that we wouldn’t have to manually host it ourselves.” (In other words, the ability to procure, setup, configure and maintain physical hardware.)

Gao says that he and his team recognized the potential benefits of Drawback from the start: “[We] realized the applicability it could have, especially as a tool that could be used to explain concepts through images to others online.”

“Generally, our users have reported positive experiences,” says Tan, “since there is little lag when using the app, and they can successfully share drawings.”

The team’s goals for Drawback include adding an iOS application, private rooms, database storage for canvases, and more.

Rewarding all around

Professor Liu was pleased with GCP, which she praises for its cost and performance. Heppe notes that GCP is transformative because “it offloads so many layers of the serving stack to Google. And GCP also allows very fast ramp-up. You can start serving requests within a few hours.”

Liu says she will continue using GCP in her Capstone course: “It provides easy-to-use functionality for all major requirements of software development, including computing, storage, app engine, and security.”

Above all, she adds, “Google is a major provider in the field, and a trusted company. It’s great for students to gain firsthand experience on it.”