Air 3x3The basketball tournament application

Describing the problem

The client requires an application to allow him to organise basketball tournaments and rent out rooms at his hotel to the players.

Dividing the problem into objectives

  1. A dashboard for admin to organize and track tournaments
  2. Booking form for players to book tournaments as individual/team.
  3. Auth system for admin and players + social auth
  4. Payment gateway to accept payments from players
  5. Player dashboard to track tournaments and teams
  6. Email service to inform players of booking confirmation and invite other players to join team.

Coming up with a Tech stack

Next.js

What is Next.js?

An opinionated, intuitive web framework based on react.

Why use Next.js

  1. This project has high involvement of frontend as well as backend.
  2. Next.js blurs the lines between frontend and backend allowing us to integrate them with ease.

Firebase vs AWS

What is Firebase?

A BaaS (Backend as a service) based on GCP.

What is AWS?

Amazon web services, largest cloud services provider.

Comparison

  1. Both providers provide us with reliable services for authentication, authorization, storage and database. We try to host all the services with a single provider, to keep the project and billing well organized.
  2. The pricing is very similar
  3. Firebase gets an edge in the developer experience section.

Service descriptions

  • Authentication: Auth with Google, Facebook, email-password
  • Authorisation: Let’s us give users a profile
  • Storage: Profile photos and other media files
  • Database: (Firestore) A no-sql database
  • AWS

    For email service via SES(Simple email service), (yes AWS didn’t lose yet, no email solution in Firebase or GCP)

    Vercel

    Most convenient server host for Next.js (the firm which develops Next.js, however it can be deployed on any server)

    Stripe

    Popular and reliable payment gateway, (client prefers it)

    Screenshots

    Custom booking system

    Admin Navigation

    Stripe Integration

    Customizable Email Integration

    Invite and team management