Group project Virtual Pet

Travel back to the 90s with this virtual pet web application

virtual pet app

A non tech summary

Travel back to your childhood with a virtual take care of a virtual pet by feeding, cleaning, and playing with it.

Watch the demo video below

Technical Overview

I worked on this app with 2 other software engineers. We created the app using ReactJS. The backend, which was built using Node.JS, Express, and MySQL, was what I worked on the most, but I also developed frontend routes.

Technical: Backend

I managed the backend by creating functions to give the pet a birth date and time, to retrieve the age, to decide if it was hungry, and to make it poop.

I hate to ruin your childhood, but I made the pet hungry, made it poop, and made it grow using MySQL functions such as "SELECT TIMEDIFF()" and put those functions into backend routes using an Express.js app. It sucks to know that my virtual pet back in 1998 pooped because of math and algorithms, but solving these problems through MySQL functions were among my proudest accomplishments during this project. (It's not surprising that I enjoyed this part since in my past life I was an Excel spreadsheet whiz).

A very childhood-memories-neutral contribution of mine was creating database and helper model files to connect the application to a MySQL databases.

Technical: Frontend

I also worked on the frontend, developing frontend routes in ReactJS to show that the pet pooped and a route clean and feed the pet.

To crush your childhood memories even further (I am so sorry), I used conditional statments that retrieved an image of poop or the pet at certain life stages based on a number that was retrieved from the backend--for age, this was time since created and, for poop, this was time since pet last ate. Another condition for poop to appear was that a cleaniness value (calculated based on the last time the pet was cleaned) needed to have depreciated to a certain level so that cleaning the pet made to poop disappear.

Agile methology

This project was done in collaboration with two other software developers. It involved 3 sprints, weekly retrospectives, hourly reminders to commit, and daily standups.

Accomodating everyone's work style was not easy--some of us liked to work in teams while other prefered to work alone--and the MERGE conflicts were pure hell, but I really enjoyed using the Agile methology to trouble shoot the best methods to work with everyone. It was really rewarding to come up with interpersonal solutions.

Testing

I tested the backend routes using Postman! I tested frontend routes by using the app and sometimes creating console.log statements.

Users

My niece, 8 years, and my nephew, 5 years, love using this app. Their favorite things are to check on pets, feed them, clean their poop, and create new pets with weird names like "gk19."