You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+23-18Lines changed: 23 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff 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
8
12
9
13
## Features
10
14
@@ -24,19 +28,20 @@ Welcome to **Command Line Casino**, a terminal-based Python application that sim
24
28
- Add funds
25
29
- Reset password
26
30
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.
28
38
29
-
## Technologies Used
39
+
## Lessons Learned:
30
40
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
0 commit comments