Table Time


A React Table Tennis scoring progressive web app that stores all matches recorded to a database.

This is a full-stack MERN (MongoDB, Express, React Node.js) app. I used React to build the front end with jsx for the layout and vanilla CSS for styling.

The front-end hooks up to an Express server back-end. The back-end uses a REST API to get matches from the database as well as to post and delete them.

The database in question is the NoSQL MongoDB. This database has a cluster which is being hosted online by MongoDB. I am using Mongoose as a client to connect to the cluster.

I integrated Pusher to make updates to the database realtime. Any update on any device will update across all devices in realtime.

The most recent update introduced authentication. Users can create accounts and log in. This allows them to have private matches which are only visible to them.

The back-end is hosted on Heroku and the front-end is deployed on Vercel both with continuous integration from GitHub.

In future I plan to add statistics from the matches stored in the database as well as a log feature to increase competitiveness.