DEV Community

Cover image for Building a Blazing Fast Table Tennis Auction App with SurrealDB
Brainvault Technologies
Brainvault Technologies

Posted on

Building a Blazing Fast Table Tennis Auction App with SurrealDB

Part 1: Project Overview & Tech Stack

Introduction

Imagine building a complex auction application for a table tennis tournament with limited time for backend development. Sounds challenging? Here's how our team tackled this task by leveraging SurrealDB, a versatile multi-model database, and prioritising efficient data management. This series will delve into the technical choices, architectural decisions, and implementation details that led to a lightning-fast auction experience.

Project Overview

Our goal was to develop an application to manage a table tennis tournament auction. The application needed to facilitate the following functionalities:

  • Manage team and player data (including categories, rankings, and team composition)

  • Simulate a dynamic auction process with six rounds, each with a random team order and category group selection

  • Allow teams to pick players based on category and rank
    Facing the Backend Challenge

Traditionally, such applications would require a robust backend infrastructure. However, our time constraints demanded a more efficient approach. We explored two options for interacting with SurrealDB:

  1. SDK: While an SDK offered potential benefits, it was still under development and presented compatibility challenges with our chosen version.
  2. REST API: This approach emerged as the more feasible option. It offered a simple and well-documented interface for interacting with SurrealDB.

Tech Stack Selection
To achieve the desired functionality and performance, we opted for the following front-end and database technologies:

Front-End (React):

  • React (Typescript): As the core UI framework, React provided a robust and efficient foundation for building interactive components.

  • Vite: This lightning-fast bundler streamlined the development process.

  • Tailwind CSS: Tailwind's utility-first approach facilitated rapid UI development.

State Management (Zustand): Zustand provided a lightweight and performant solution for managing global application state.

Database (SurrealDB): SurrealDB's unique combination of schemaless flexibility and relational capabilities made it ideal for storing and managing our auction data.

Key Takeaways
This first part has established the project's context and our strategic technology choices. In the next part, we'll delve into the intricacies of SurrealDB's REST API and how we utilised it to power our auction application.

Stay tuned for Part 2, where we'll explore the intricacies of SurrealDB's REST API and its implementation in our application!

Top comments (0)