Getting up in the mornings has never been easy. But in these pandemic times it has become even more challenging. It would certainly help if there was some motivation for getting up..

What it does

Very-Unique-Pet (VUP) is both a virtual and a physical pet. It acts as a father figure in your life. Need to get up from bed? A robot VUP will run around the room whilst blasting out a loud noise. If you don't catch it in time, it will start insulting you. Because who wants to be insulted by a robot?

If a physical device is not enough of a motivation, the virtual VUP companion is her et o save the day. You can bond with it by feeding it or petting it. You can ask it to tell you jokes and even set alarm clocks (that get synced to the physical one). But be careful.. if you feed it too much or if you spend too much time apart from it - VUP will die. And that will just break your heart.

How I built it


Hardware robot with which you can interact via voice-control.

Demo videos:

Voice control:

Robot machine:


A frontend project built with React. Internally uses Axios for making HTTP calls, Semantic UI for basic user-interface building blocks, moment.js for handling dates, and Animate.css and Framer for animations.

Makes API calls to our syncing server (which uses MongoDB), Firebase for storing customer analytics events and Google Cloud Function for checking the state of the alarm clock (in alarm / not in alarm).

A more complete description & code available in the frontend repository.

Usage demo video:


What would this project be without a proper OPS set-up? We have gcloud uptime checks, alerts on downtime, dashboard for easy monitoring of our services, and deployments to cloud storage.

Lets investigate those business-as-usual latency spikes together!

Full tech stack

  • JavaScript
  • React
  • Create-React-App
  • Moment.js
  • Frame
  • Animate.css
  • Semantic-UI
  • axios
  • Python
  • Google: Cloud Storage
  • Google: Firebase
  • Google: Cloud Functions
  • Google: Uptime checker
  • Google: Alert notification
  • Google: Monitoring Dashboard

Challenges I ran into

Originally we wanted to make the communication layer via pub/sub. However, since we didn't have enough experience with this, it was scrapped in favor of a classical API server built with Python.

Accomplishments that I'm proud of

Matiss: first time trying to animate user interactions; pretty happy with the results;

Palvisha: setting up DNS records & basics of pub/sub

What's next for very-unique-pet

Click "feed" a couple of times for a nasty surprise.

Built With

Share this project: