Skip to content

Commit 40da995

Browse files
committed
Rewrote README.md
1 parent 99c23e1 commit 40da995

1 file changed

Lines changed: 23 additions & 18 deletions

File tree

README.md

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
# Command Line Casino
2-
3-
## Overview
4-
5-
Welcome to **Command Line Casino**, a terminal-based Python application that simulates a virtual casino experience. Users can create accounts, manage funds, and enjoy a variety of games—all from the command line.
6-
7-
---
1+
# Python CLI Casino
2+
Welcome to the Python CLI Casino, a Python application that allows you to play in a virtual casino. Users can create accounts, manage funds, and enjoy a variety of games from their command line.
3+
4+
## Tech used:
5+
- **Python** - Core language
6+
- **SQLite** - Lightweight database for storing account info
7+
- **unittest** - Python testing framework for unit testing
8+
- **CSV** - Used to read/write account data for lightweight persistence
9+
- **Custom Console Wrapper** - For stylized colored input/output in the terminal
10+
- **GitHub Actions** - Automates testing and workflows for CI/CD
11+
- **GitHub Projects (Kanban)** - Organizes tasks and development roadmap using a Kanban board
812

913
## Features
1014

@@ -24,19 +28,20 @@ Welcome to **Command Line Casino**, a terminal-based Python application that sim
2428
- Add funds
2529
- Reset password
2630

27-
---
31+
## Optimizations
32+
33+
One performance improvement made was caching the available quiz categories locally after each successful API request.
34+
Initially, the game fetched the list of categories from the API every time a user started a new quiz,
35+
which added unnecessary latency and repeated network calls.
36+
By storing the categories in a csv and reusing them for subsequent games played within the next few minutes,
37+
I eliminated redundant API requests. Allowing for reduced game time, and improved user experience while still ensuring they can get new questions if ones are added.
2838

29-
## Technologies Used
39+
## Lessons Learned:
3040

31-
- **Python 3** — Core language used to build the app
32-
- **SQLite** — Lightweight database for storing account info
33-
- **unittest & unittest.mock** — Python testing frameworks for unit testing
34-
- **CSV** — Used to read/write account data for lightweight persistence
35-
- **Custom Console Wrapper** — For stylized colored input/output in the terminal
36-
- **OOP Design** — Modular structure for accounts, games, and utilities
37-
- **GitHub Actions** — Automates testing and workflows for CI/CD
38-
- **GitHub Projects (Kanban)** — Organizes tasks and development roadmap using a Kanban board
39-
---
41+
This project allowed me to explore many new technologies and aspects of programming. Before this project I had struggled with the
42+
concept of mocking in unit test; however, when testing the console wrapper and other methods I finally understood the concept and some of the
43+
reasons why it is needed. Another major lesson learned was managing a user account from handling the password to managing
44+
the database of UserAccounts.
4045

4146
## Installation
4247

0 commit comments

Comments
 (0)