Code Monkey home page Code Monkey logo

horse-bet's Introduction

  _  _      ___      ___      ___      ___               ___      ___     _____  
 | || |    / _ \    | _ \    / __|    | __|     ___     | _ )    | __|   |_   _| 
 | __ |   | (_) |   |   /    \__ \    | _|     |___|    | _ \    | _|      | |   
 |_||_|    \___/    |_|_\    |___/    |___|    _____    |___/    |___|    _|_|_  
_|"""""| _|"""""| _|"""""| _|"""""| _|"""""| _|     | _|"""""| _|"""""| _|"""""| 
"`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' "`-0-0-' 

A small betting game specified for soccer tournaments

horse-bet's People

Contributors

vibo avatar ecrona avatar thecodebeaver avatar

Stargazers

 avatar  avatar Magnus avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

vibo

horse-bet's Issues

Smart rendering logic in the overview component

Only re-render if needed, create smart shouldUpdate-logic in the overview component

Only render the component if the data has changed, new users, new fixtures or updated status / results

Firebase setup

Setup a firebase connection with ability to connect to dynamic firebase hosts

Database validation rules

Write validation rules to communicate with the database

  • User can fetch all users if authed
  • User can fetch all fixtures if authed
  • User can fetch own bets if authed, only limited bets from participants depending on deadline

Overview page

Create an overview page, default landing page to begin with

Bet modal

Create a bet modal

  • Make the bettable fixture cells clickable, open a bet modal when clicked on
  • Display buttons for every bet choice
  • Send a request when clicking one of the buttons, save the response in store
  • Loader
  • Handle errors with generic error messages
  • Modal close button
  • Highlight to the user if the deadline is passed

Optimistic updates

We should assume that request will be successful until they're not to make the app seem more responsive.

Foundation

Create code foundation with vendors and a basic layout

  • TypeScript + React
  • Redux setup
  • Solid directory hierarchy

Deadline timer

A timer displayed somewhere to siginify that the user has limited time to select bets

Firebase Auth

Connect the login component to Firebase Google Auth

The authenticated account needs to have an email that exists in the Firebase Database users document

Database modelling

Create the firebase database, model entities along with the database structure

Create some sort of migration system, or describe the database structure thoroughly

Layout

Work on an aesthetic layout with a green base color

Logo

Create a horse logo with a text, display it fashionably

Create a similar, smaller favico

HMR + Redux

The HMR does not retain the store, simply resets it

Login view

Initial view with login form

  • Button to Google Authentication -> fake login
  • Redirect to overview page on a successful login
  • Loader

Fixture table

Create fixture table correlating fixtures to users

  • Create selector function to merge relevant data to the view
  • Render the fixture table, showing status icons / bet selection depending on data
  • Divide fixtures in groups of event stages
  • Display upcoming fixtures

Scores

An overview of the leading users

Display results by stage

Firebase authentication

Setup firebase google authentication and tie it to the login component

Only allow registration from a whitelist-like table (users) in the database

Retrieve data from API

Create a firebase-function that can retrieve and store data in the api

  • Reads from specified tournaments in the database
  • Only attempts to fetch a tournament between start_date and end_date
  • Create bridges to different API sources

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.