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)
Tech used: Python, Flask, Jinja, MySQL (AWS RDS), AWS Lightsail (in a Docker container), HTML, CSS
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
This page adds a player to the correct poker group along with their associated information
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
Takes in information about the game and the ledger .csv file to enter in the results of each game
Shows the results of all games on a chosen date (multiple tables can be in play, each uploaded as their own game)
Displays each game a player has played in along with the result.
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
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.
- 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
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