Blame
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 1 | # Pocket Change Showdown: The Penny-Pincher's Paradise | 
| 9c1775 | Tebby Dog | 2025-08-09 19:42:25 | 2 | |
| 003444 | Tebby Dog | 2025-08-09 21:12:51 | 3 | > Fuck yeah! It's time to tackle your moving expenses with a dash of style and a whole lot of sass! π°  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 4 | |
| 5 | <div align="center">  | 
|||
| f56dad | Tebby Dog | 2025-08-09 21:10:26 | 6 | |
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 7 | Hey look, there's more Flair than a corporate drone with a Monday morning hangover!  | 
| f56dad | Tebby Dog | 2025-08-09 21:10:26 | 8 | |
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 9 |   | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 10 |   | 
| 11 |   | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 12 |   | 
| f56dad | Tebby Dog | 2025-08-09 21:10:26 | 13 | |
| 437699 | Tebby Dog | 2025-08-09 21:02:33 | 14 | <img src="https://teb.codes/2-Code/Flask/Pocket-Change-Showdown/logo.png" alt="logo" width="150"/>      | 
| 9cf912 | Tebby Dog | 2025-08-09 19:42:49 | 15 | |
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 16 | Think you're bad at managing expenses? Ah, quit your whining. We've got everything: [sassy Features](#features) β’ super-speed [Quick Start](#quick-start) β’ hassle-free [Installation](#installation) β’ wordy [Documentation](#documentation) β’ places to rant... I mean, [Contributing](#contributing)!  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 17 | </div>  | 
| 18 | ||||
| 19 | ---  | 
|||
| 20 | ||||
| 21 | ## π Table of Contents  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 22 | - [What Features?](#features)  | 
| 23 | - [Screenshots β Because Who Reads?](#screenshots)  | 
|||
| 24 | - [Quick Start β No, Really, Itβs Quick](#quick-start)  | 
|||
| 25 | - [Slog through Installation](#installation)  | 
|||
| 26 |   - [Docker - Walk the Weird Whale](#docker)  | 
|||
| 27 |   - [Kubernetes - Because You're Fancy](#kubernetes)  | 
|||
| 28 |   - [Local Mayhem - Developer Stuff](#local-development)  | 
|||
| 29 | - [Mess About with Configuration](#configuration)  | 
|||
| 30 | - [Usage - Whatβs the Point?](#usage)  | 
|||
| 31 | - [Guff About API Documentation](#api-documentation)  | 
|||
| 32 | - [What Matters in Development?](#development)  | 
|||
| 33 | - [License - Free Stuff's Always Good](#license)  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 34 | |
| 35 | ## β¨ Features  | 
|||
| 36 | ### Core Functionality  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 37 | - πΈ **Receipt Management** - Store craploads of receipts. We dare you.  | 
| 38 | - π³ **Multiple Payment Methods** - We track whether you spent cash, credit, IOUs, or favors.  | 
|||
| 39 | - π·οΈ **Smart Categorization** - Keep your spending habits smart and snarky.  | 
|||
| 40 | - π **Analytics Dashboard** - Like looking at a magic crystal ball of shame.  | 
|||
| 41 | - π¨ **8 Color Themes** - Because your expenses can't be as drab as your personality.  | 
|||
| 42 | - π± **Mobile Responsive** - Track on the go, from your phone or hell, a potato.  | 
|||
| 43 | - π **No Login Required** - No strings attached, like that one-night stand.  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 44 | |
| 45 | ### Data Management  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 46 | - π₯ **CSV Import** - Bring the madness of an Excel sheet to a whole new level.  | 
| 47 | - π€ **CSV Export** - Send your data on a field trip!  | 
|||
| 48 | - π **Template Download** - Look, Ma! Iβm organized.  | 
|||
| 49 | - πΎ **Persistent Storage** - Data that laughs in the face of restarts.  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 50 | |
| 51 | ### PCS-Specific Categories  | 
|||
| 52 | - π Moving  | 
|||
| 53 | - βοΈ Travel    | 
|||
| 54 | - π  Housing  | 
|||
| 55 | - π¦ Storage  | 
|||
| 56 | - π Transportation  | 
|||
| 57 | - π¨ Lodging  | 
|||
| 58 | - π Food  | 
|||
| 59 | - π¦ Supplies  | 
|||
| 60 | - ποΈ Services  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 61 | - β Make up your own crap!  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 62 | |
| 63 | ## πΈ Screenshots  | 
|||
| 64 | ||||
| f56dad | Tebby Dog | 2025-08-09 21:10:26 | 65 | <details>  | 
| 66 |   <summary><i>Click to show screenshots</i></summary>  | 
|||
| 67 | # Dashboard  | 
|||
| 68 | Interactive analytics with spending trends and category breakdowns.  | 
|||
| 69 | ||||
| 70 | ||||
| 71 | # Expense Entry  | 
|||
| 72 | Simple form with receipt upload and auto-complete fields.  | 
|||
| 73 |   | 
|||
| 74 | ||||
| 75 | # Homepage  | 
|||
| 76 | A general overview of expenses  | 
|||
| 77 |   | 
|||
| 78 | ||||
| 79 | # Import/Export  | 
|||
| 80 | Efficient data importing and exporting with template  | 
|||
| 81 |   | 
|||
| 82 | ||||
| 83 | # PDF Export  | 
|||
| 84 | Printer friendly PDF with customizable content  | 
|||
| 85 |   | 
|||
| 86 | ||||
| 87 | # Settings  | 
|||
| 88 | Manage categories, payment methods, and themes.  | 
|||
| 89 |   | 
|||
| ab85f0 | Tebby Dog | 2025-08-09 20:06:23 | 90 | |
| f56dad | Tebby Dog | 2025-08-09 21:10:26 | 91 | </details>  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 92 | |
| 2085b9 | Tebby Dog | 2025-08-09 20:25:53 | 93 | ### Sample PDF  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 94 | Donβt just stand there, gawk! [pdf_sample.pdf](./pdf_sample.pdf)  | 
| 2085b9 | Tebby Dog | 2025-08-09 20:25:53 | 95 | |
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 96 | ## π Quick Start  | 
| 97 | ### Docker (Recommended)  | 
|||
| 98 | ```bash  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 99 | # Unleash the Kraken with the latest image  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 100 | docker run -d \  | 
| 101 |   --name pcs-tracker \  | 
|||
| 102 |   -p 5001:5001 \  | 
|||
| 103 |   -v pcs-data:/app/data \  | 
|||
| 104 |   -v pcs-uploads:/app/uploads \  | 
|||
| 105 |   tebwritescode/pocket-change-showdown:latest  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 106 | # Chuckle maniacally at http://localhost:5001  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 107 | ```  | 
| 108 | ||||
| 109 | ### Docker Compose  | 
|||
| 110 | ```bash  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 111 | # Phone-up Chuck Norris: "We're cloning a repo"  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 112 | git clone https://github.com/tebwritescode/pocket-change-showdown.git  | 
| 113 | cd pocket-change-showdown  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 114 | # Compose your mess with Docker Compose  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 115 | docker-compose up -d  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 116 | # Dance your way to http://localhost:5001  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 117 | ```  | 
| 118 | ||||
| 119 | ## π¦ Installation  | 
|||
| 120 | ### Docker  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 121 | #### Recognizing All Sorts  | 
| 122 | Because compatibility is key, unless it isn't!  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 123 | ```bash  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 124 | # Pull for your peculiar machine  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 125 | docker pull --platform linux/arm64 tebwritescode/pocket-change-showdown:latest  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 126 | # Or let Docker rub its chin and decide  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 127 | docker pull tebwritescode/pocket-change-showdown:latest  | 
| 128 | ```  | 
|||
| 129 | ||||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 130 | #### Docker Run Degeneracy  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 131 | ```bash  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 132 | # Deploy it, Captain  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 133 | docker run -d \  | 
| 134 |   --name pcs-tracker \  | 
|||
| 135 |   -p 5001:5001 \  | 
|||
| 136 |   tebwritescode/pocket-change-showdown:latest  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 137 | # Make it last longer than a baking lesson  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 138 | docker run -d \  | 
| 139 |   --name pcs-tracker \  | 
|||
| 140 |   -p 5001:5001 \  | 
|||
| 141 |   -v $(pwd)/data:/app/data \  | 
|||
| 142 |   -v $(pwd)/uploads:/app/uploads \  | 
|||
| 143 |   tebwritescode/pocket-change-showdown:latest  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 144 | # Secret sauce for the discerning chef  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 145 | docker run -d \  | 
| 146 |   --name pcs-tracker \  | 
|||
| 147 |   -p 5001:5001 \  | 
|||
| 148 |   -e SECRET_KEY="your-secret-key-here" \  | 
|||
| 149 |   -e FLASK_ENV="production" \  | 
|||
| 150 |   -v pcs-data:/app/data \  | 
|||
| 151 |   -v pcs-uploads:/app/uploads \  | 
|||
| 152 |   tebwritescode/pocket-change-showdown:latest  | 
|||
| 153 | ```  | 
|||
| 154 | ||||
| 155 | ### Kubernetes  | 
|||
| 156 | ```bash  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 157 | # Manifest your destiny, or just the code  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 158 | kubectl apply -f k8s/  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 159 | # Or one by bloody one  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 160 | kubectl apply -f k8s/namespace.yaml  | 
| 161 | kubectl apply -f k8s/secret.yaml  | 
|||
| 162 | kubectl apply -f k8s/pvc.yaml  | 
|||
| 163 | kubectl apply -f k8s/deployment.yaml  | 
|||
| 164 | kubectl apply -f k8s/service.yaml  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 165 | kubectl apply -f k8s/ingress.yaml  # Optional, like an appendix  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 166 | |
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 167 | # Check if your stuff's intact  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 168 | kubectl get all -n pcs-tracker  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 169 | # If it worked, buy yourself a drink at http://<node-ip>:30001  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 170 | ```  | 
| 171 | ||||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 172 | #### Kubernetes Thingamabobs  | 
| 173 | - **Persistent Volumes** - Turns out you donβt need to webscrape for dataβit sticks around.  | 
|||
| 174 | - **Health Checks** - It only mostly dies.  | 
|||
| 175 | - **Resource Limits** - So demanding!  | 
|||
| 176 | - **Multi-Service** - Load balance like a tightrope walker.  | 
|||
| 177 | - **Ingress Ready** - Fancy domain? Me too.  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 178 | |
| 179 | ### Local Development  | 
|||
| 180 | ```bash  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 181 | # Kiss the clouds goodbye  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 182 | git clone https://github.com/tebwritescode/pocket-change-showdown.git  | 
| 183 | cd pocket-change-showdown  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 184 | # Create a virtual haven  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 185 | python3 -m venv venv  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 186 | source venv/bin/activate    | 
| 187 | # Unload a bag of dependencies  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 188 | pip install -r requirements.txt  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 189 | # Go-Go-Gadget application  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 190 | python app.py  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 191 | # Channel your inner regulator at http://localhost:5001  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 192 | ```  | 
| 193 | ||||
| 194 | ## βοΈ Configuration  | 
|||
| 195 | ### Environment Variables  | 
|||
| 196 | | Variable | Description | Default |  | 
|||
| 197 | |----------|-------------|---------|  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 198 | | `SECRET_KEY` | SMERSH-level deception sessions key | `pcs-secret-key-2024` |  | 
| 199 | | `FLASK_ENV` | Sneaky environment mood | `production` |  | 
|||
| 200 | | `DATABASE_URL` | Alchemize this: your database | `sqlite:///data/pcs_tracker.db` |  | 
|||
| 201 | | `MAX_CONTENT_LENGTH` | Maximum cr-p (content) upload size | `16777216` (16MB) |  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 202 | |
| 203 | ### Data Persistence  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 204 | To make data hang around like a bad smell:  | 
| 205 | - `/app/data` - SQLite domicile  | 
|||
| 206 | - `/app/uploads` - Receipts chill as BLOBs  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 207 | |
| 208 | ## π± Usage  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 209 | ### Tossin' Pennies - Adding Expenses  | 
| 210 | 1. Sing "Add Expense!" from any rooftop or just click it  | 
|||
| 211 | 2. Wake up from title-only dream  | 
|||
| 212 | 3. Attach facepalming receipts (optional)  | 
|||
| 213 | 4. Ceremoniously hit "Save"  | 
|||
| 214 | ||||
| 215 | ### Inflicting Data - Importing  | 
|||
| 216 | 1. Explore **Import/Export** β **Import CSV**  | 
|||
| 217 | 2. Don shiny template armor  | 
|||
| 218 | 3. Be daVinci, fill your masterpiece  | 
|||
| 219 | 4. Blast off with CSV sere-naah-de  | 
|||
| 220 | ||||
| 221 | ### Cheese-Cutting Format  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 222 | ```csv  | 
| 223 | Date,Title,Description,Category,Cost,Payment Method,Location,Vendor,Notes,Tags  | 
|||
| 224 | 2024-01-15,Moving Truck,U-Haul rental,Moving,299.99,Credit Card,Downtown,U-Haul,26ft truck,moving  | 
|||
| 225 | 2024-01-16,Hotel Stay,Overnight stay,Lodging,125.00,Company Card,Holiday Inn,Holiday Inn,1 night,travel  | 
|||
| 226 | ```  | 
|||
| 227 | ||||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 228 | ### Manipulating Categories & Payment Methods  | 
| 229 | 1. Go where no wo/man has deemed necessary: **Settings**  | 
|||
| 230 | 2. Cust-omize your little heart out  | 
|||
| 231 | 3. Create methods even mad scientists couldnβt  | 
|||
| 232 | 4. Marry whimsy: color themes purr with indulgence   | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 233 | |
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 234 | ### Accidental Analytics Dashboard  | 
| 235 | - Scorn last week, guilt-trip for next: from nanosecond to year  | 
|||
| 236 | - See-spend scenario via doughnut dive  | 
|||
| 237 | - Payment method squabbles (Bar chart showdown)  | 
|||
| 238 | - Dailies take you on the trend train (Line chart)  | 
|||
| 239 | - Top dog categories, percentages & flaunting aplenty  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 240 | |
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 241 | ## π API Guff  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 242 | ### Endpoints  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 243 | | Method | Endpoint | Quirky Description |  | 
| 244 | |--------|----------|--------------------|  | 
|||
| 245 | | GET | `/` | Home sweet home(wrecker) |  | 
|||
| 246 | | GET | `/expenses` | Expense expedition |  | 
|||
| 247 | | GET/POST | `/expense/new` | New expense enlightenment |  | 
|||
| 248 | | GET/POST | `/expense/<id>/edit` | Edit the unavoidable |  | 
|||
| 249 | | POST | `/expense/<id>/delete` | PURGE! |  | 
|||
| 250 | | GET | `/expense/<id>/receipt` | Picture-perception |  | 
|||
| 251 | | GET | `/dashboard` | Analytical nincompoopery |  | 
|||
| 252 | | GET | `/api/expense_data` | JSON chateria |  | 
|||
| 253 | | GET/POST | `/settings` | Mischief management |  | 
|||
| 254 | | POST | `/settings/category/add` | Go rogue - add category |  | 
|||
| 255 | | POST | `/settings/payment/add` | Payment etiquette upgrade |  | 
|||
| 256 | | GET | `/export` | CSV in Wonderland |  | 
|||
| 257 | | GET/POST | `/import` | CSV Carousel |  | 
|||
| 258 | | GET | `/template` | CSV preface nobility |  | 
|||
| 259 | ||||
| 260 | ### API Response Satire  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 261 | ```json  | 
| 262 | GET /api/expense_data?period=month  | 
|||
| 263 | {  | 
|||
| 264 |   "categories": {  | 
|||
| 265 |     "labels": ["Moving", "Travel", "Housing"],  | 
|||
| 266 |     "data": [1250.50, 890.25, 2100.00]  | 
|||
| 267 |   },  | 
|||
| 268 |   "payment_methods": {  | 
|||
| 269 |     "labels": ["Credit Card", "Cash", "Company Card"],  | 
|||
| 270 |     "data": [3500.75, 450.00, 290.00]  | 
|||
| 271 |   },  | 
|||
| 272 |   "daily_trend": {  | 
|||
| 273 |     "labels": ["2024-01-01", "2024-01-02"],  | 
|||
| 274 |     "data": [125.50, 340.25]  | 
|||
| 275 |   }  | 
|||
| 276 | }  | 
|||
| 277 | ```  | 
|||
| 278 | ||||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 279 | ## π οΈ Development - Why Bother?  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 280 | ### Tech Stack  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 281 | - **Backend**: Flask, spicy SQLAlchemy  | 
| 282 | - **Frontend**: Bootstrap, Chart.js, Font Awesome (a peacock)  | 
|||
| 283 | - **Database**: SQLite: SQLAlchemy Sings  | 
|||
| 284 | - **File Storage**: Database belly storage  | 
|||
| 285 | - **Deployment**: Orchestrations with Docker, Kubernetes & Gunicorn bravado  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 286 | |
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 287 | ### Structure of Madness  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 288 | ```  | 
| 289 | pocket-change-showdown/  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 290 | βββ app.py                 # App-worthy babel  | 
| 291 | βββ requirements.txt       # Dependency lug  | 
|||
| 292 | βββ Dockerfile            # Docker concoction  | 
|||
| 293 | βββ docker-compose.yml    # Docker squad  | 
|||
| 294 | βββ templates/            # HTML insidiousness  | 
|||
| 295 | β   βββ base.html        # The totally base  | 
|||
| 296 | β   βββ index.html       # Page of presents  | 
|||
| 297 | β   βββ expenses.html    # Expense paradox  | 
|||
| 298 | β   βββ expense_form.html # Input vs Reality  | 
|||
| 299 | β   βββ dashboard.html   # Chase your shame  | 
|||
| 300 | β   βββ settings.html    # Hangover fixes  | 
|||
| 301 | β   βββ import.html      # CSV courtship  | 
|||
| 302 | βββ k8s/                  # Kubernetes enigma  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 303 | β   βββ namespace.yaml  | 
| 304 | β   βββ secret.yaml  | 
|||
| 305 | β   βββ pvc.yaml  | 
|||
| 306 | β   βββ deployment.yaml  | 
|||
| 307 | β   βββ service.yaml  | 
|||
| 308 | β   βββ ingress.yaml  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 309 | βββ data/                 # Runtime ingenuity  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 310 | ```  | 
| 311 | ||||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 312 | ### Born from Code  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 313 | ```bash  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 314 | # Glayvin! Build me this Docker monstrosity  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 315 | docker build -t pcs-tracker .  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 316 | # Partake in fetching multi-arch wonders  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 317 | docker buildx build \  | 
| 318 |   --platform linux/amd64,linux/arm64,linux/arm/v7 \  | 
|||
| 319 |   -t tebwritescode/pocket-change-showdown:latest \  | 
|||
| 320 |   --push .  | 
|||
| 321 | ```  | 
|||
| 322 | ||||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 323 | ### The Flat Schema (Non-Skiable)  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 324 | ```sql  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 325 | -- Ground Zero table for expense  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 326 | CREATE TABLE expense (  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 327 |     id INTEGER,  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 328 |     title VARCHAR(200),  | 
| 329 |     description TEXT,  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 330 |     category_id INTEGER,  | 
| 331 |     cost FLOAT,  | 
|||
| 332 |     payment_method_id INTEGER,  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 333 |     date DATE,  | 
| 334 |     receipt_image BLOB,  | 
|||
| 335 |     receipt_filename VARCHAR(200),  | 
|||
| 336 |     location VARCHAR(200),  | 
|||
| 337 |     vendor VARCHAR(200),  | 
|||
| 338 |     notes TEXT,  | 
|||
| 339 |     tags VARCHAR(500),  | 
|||
| 340 |     created_at DATETIME,  | 
|||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 341 |     updated_at DATETIME,  | 
| 342 |     PRIMARY KEY (id)  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 343 | );  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 344 | -- Column of categorization  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 345 | CREATE TABLE category (  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 346 |     id INTEGER,  | 
| 347 |     name VARCHAR(100),  | 
|||
| 348 |     color VARCHAR(7),  | 
|||
| 349 |     icon VARCHAR(50),  | 
|||
| 350 |     is_default BOOLEAN,  | 
|||
| 351 |     PRIMARY KEY (id)  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 352 | );  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 353 | -- Noteworthy payment table  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 354 | CREATE TABLE payment_method (  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 355 |     id INTEGER,  | 
| 356 |     name VARCHAR(100),  | 
|||
| 357 |     icon VARCHAR(50),  | 
|||
| 358 |     is_default BOOLEAN,  | 
|||
| 359 |     PRIMARY KEY (id)  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 360 | );  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 361 | -- Settings booth  | 
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 362 | CREATE TABLE settings (  | 
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 363 |     id INTEGER,  | 
| 364 |     color_scheme VARCHAR(50),  | 
|||
| 365 |     default_view VARCHAR(20),  | 
|||
| 366 |     PRIMARY KEY (id)  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 367 | );  | 
| 368 | ```  | 
|||
| 369 | ||||
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 370 | ## π License - Go Forth and Conquer!  | 
| 371 | This project is merrily open source and blissfully up for grabs under the [MIT License](LICENSE).  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 372 | |
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 373 | ## π Cheers & Acknowledgments  | 
| 374 | - Built under the spell of Flask and Bootstrap  | 
|||
| 375 | - Charts magicked by Chart.js  | 
|||
| 376 | - Icons with Font Awesome - Awe as your own  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 377 | |
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 378 | ## π Screech for Help  | 
| 379 | For tirades, discontent, or amusing suggestions:  | 
|||
| 380 | - Holler on [GitHub Issues](https://github.com/tebwritescode/pocket-change-showdown/issues)  | 
|||
| 381 | - Vent thoroughly in GitHub Discussions  | 
|||
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 382 | |
| 383 | ---  | 
|||
| b32327 | Tebby Dog | 2025-08-09 21:12:39 | 384 | |
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 385 | <div align="center">  | 
| b32327 | Tebby Dog | 2025-08-09 21:12:39 | 386 | |
| 73ffc2 | Tebby Dog | 2025-08-09 21:07:26 | 387 | **P**ocket **C**hange **S**howdown - Because tracking every penny is nothing short of glorious insanity!  | 
| b32327 | Tebby Dog | 2025-08-09 21:12:39 | 388 | |
| e12e4e | Tebby Dog | 2025-08-09 19:38:10 | 389 | </div>  |