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> |