Skip to content

christolandry/Poker-Log

Repository files navigation

Poker Log

A fullstack web app to track a poker groups results over time hosted on AWS Lightsail with a database on AWS RDS.

Problem: I play poker with the same group of people on a website called pokernow.club. The host of our group wanted to track the results of people over time in a clean and concise format, which we didn’t have.

Solution: This project allows users to register, add the players in their group, add the aliases each player uses each game, and then upload the ledger file (.csv) from each game to keep track of player results. Results can be viewed by cumulative player results, individual player results showing each game they played in, and the results of all games on a specific day.

Link to project: EC2 Not currently running (as that gets expensive) alt tag

How It's Made:

Tech used: Python, Flask, Jinja, MySQL (AWS RDS), AWS Lightsail (in a Docker container), HTML, CSS

Index

Displays all players in your poker group (each user has their own poker group) with their poker results, payment info, and a note. It is sorted by each player's No Limit Hold'em cumulative results

Add Player

This page adds a player to the correct poker group along with their associated information

Add Alias

Each player an choose their own name each time they play. This associates the nickname a player choose in game to the name listed as a player in the database

Add Game

Takes in information about the game and the ledger .csv file to enter in the results of each game

Games

Shows the results of all games on a chosen date (multiple tables can be in play, each uploaded as their own game)

Players

Displays each game a player has played in along with the result.

Please feel free to try it out yourself, link, login, and test csv are in AWS-link.txt file

Sources

Ensuring responses aren't cached, custom jinja filter, session configuration, error reporting, & helpers.py: from Harvard's CS50 Finance problem set

Code to upload .csv files: gist.github.com/dasdachs/69c42dfcfbf2107399323a4c86cdb791

AWS Lightsail flask upload using a Docker Container: AWS Tutorial

Lessons Learned:

The goal was to host a full-stack web app with the associated database on AWS, which was new to me. Some of the blockers I faced were trouble installing the required hardware (the path files weren't installing properly on Windows and had to be manually entered), learning Docker, learning MySQL syntax in python (previous experience was with SQLite in python), and learning how to parse an uploaded file in python. I overcame these blockers though many google searches, reading the documentation, and testing.

Optimizations:

  • Add an environmental variable for the password to the database in used in app.py
  • Database structure concerning the association of player Id's and the aliases they used in game is a not correct. It will not work at scale as it doesn't allow for duplicate aliases.
  • Track Payments to make sure everyone has paid up / received their money each game
  • Make the website responsive
  • Allow multiple log ins to the same poker group with read/write permissions

Examples:

Take a look at these couple examples that I have in my own portfolio:

Portfolio Page: https://github.com/christolandry/Portfolio

Charlotte Astrophiles: https://github.com/christolandry/Charlotte-Astrophiles

Happy Tails Dog Grooming: https://github.com/christolandry/Happy-Tails

Ascent Running Camp: https://github.com/christolandry/AscentRunningCamp

Professional Runner (retired): https://ChristoLandry.com

Ascent Running Coaching: https://AscentRunningCoaching.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published