Skip to content
This repository has been archived by the owner on Jan 16, 2024. It is now read-only.
/ officesports Public archive

An app for keeping scores against colleagues in table tennis, foosball and pool

License

Notifications You must be signed in to change notification settings

oyvinddd/officesports

Repository files navigation

Office Sports

Office Sports banner

Office Sports screens

Introduction

Office Sports is an app where users can keep track of scores against colleagues in foosball or table tennis. Using the app, players can register match results (by scannig the opponents QR code) and view the scoreboard as well as recent matches. Users are also able to invite other players to a match directly inside the app. Scores are calculated according to the Elo rating system, which is done using a Firebase cloud function.

A version of this app written in Flutter can be found here.

Technical Details

The app is written in Swift 5 and all UI is built programmatically. Screens will gradually be refactored to SwiftUI. Firebase (Firestore) is used as the backend and users sign in using their Google accounts. An MVVM (model-view-viewmodel) architecture is used for structring the code.

Dependencies

SPM (Swift Package Manager) is used for dependency management. Currently, the only dependency is the Firebase iOS SDK.

Firebase

Function deployments

The Web API is run as functions in Firebase. To deploy these, run npm run deploy inside the Firebase/functions directory. You will be prompted to log in to an account that has write access to the functions.