Skip to content

Jozwiaczek/smart-table-football

Repository files navigation

Plug&Play System for managing Smart Table Football with a lot of features.

CI

🚩 Table of Contents

πŸ“– About

Smart Table Football is the whole system built for propose of managing and track games on physical table football. With Raspberry Pi with few sensors it gives You ability to move game in a physical table football on the next level.

Player Preview

player dashboard preview


Admin Preview

player dashboard preview

πŸ‘€ Live Apps

Module Status Public URL
Admin Netlify Status https://smart-table-football-admin.netlify.app
Player Netlify Status https://smart-table-football.netlify.app

πŸ“¦ Packages Docs

  • Backend:
    • Api - Server built on top of Feather.js, Socket.io with MongoDB which connects all modules.
    • Core - Package with all constants and models used in all others packages.
    • Raspberry:
      • Table - Main hardware server which manage every connected sensors like camera or gate sensor.
      • Table Manager - This package contains manager for managing table server in run. It provides ability to remotely starts, stops and upgrade table server.
  • Frontend:
    • Admin - Administration app for managing all system resources like players, teams, matches and table server.
    • Player - Main app for players/users. It provides abilities for managing account, creating teams, matches and track all statistics from all games.
    • UI Components - Package which contains all sharable UI components between admin and player packages.

🎨 Features

  • Plug and Play
  • Mobile, Tablet and Desktop friendly
  • App works offline, and it can be added to phone/desktop home screen
  • Real-time connection with Raspberry PI
  • Mailing system
  • Internationalization (i18n)
  • Themeable, Highly customizable interface
  • Super-fast UI
  • All kinds of statistics for players
  • Goals replay (They can be also saved into provided Google Drive)

πŸ“ Conventional Commits

Commitlint checks if your commit messages meet the conventional commit format.

Example:

feat(api): add user service

Common types according to commitlint-config-conventional can be: conventional-commit-types

πŸ“ Scripty

Scirpty is the workspace level script's manager. It can run every executable file. Every script which is same for every package like 'lint' should be declared in scripts directory. After adding new script, it requires granting rights for read/write, to do that, in project root directory run:

yarn grant-scripty-permissions

πŸŽ“ Getting Started

  1. Make sure you have all required tools:

  2. Add .env files with secrets based on .env.example in:

  3. Deploy MongoDB Docker image

    • Go to Api Docs
    • Follow How To Deploy And Manage MongoDB With Docker section
  4. Install project dependencies

         yarn install
  5. Run Api

         cd packages/api
         yarn start
  6. Prepare Raspberry and run Table Manager

  7. Run Player App

        cd packages/player
        yarn start
  8. Run Admin App

        cd packages/admin
        yarn start
  9. Play with UI Components

        cd packages/ui-components
        yarn storybook

    For more details about this package check ui-components README in section Getting started.

About

⚽️ _πŸ₯… _ System for managing Smart Table Football. Player and Admin panel on top of the PWA and real-time connection.

Topics

Resources

Security policy

Stars

Watchers

Forks

Languages