Blame

92a6e9 Tebby Dog 2025-08-08 19:40:57 1
# Sales Tracker
2
e1358d Tebby Dog 2025-08-08 19:56:47 3
> A modern-as-hell, playful web application for tracking sales and wrangling analytics — with an interactive login that's almost too clever for its own good.
92a6e9 Tebby Dog 2025-08-08 19:40:57 4
5b38af Tebby Dog 2025-08-08 19:55:53 5
![Node.js](https://img.shields.io/badge/Node.js-18%2B-green)
6
![Express](https://img.shields.io/badge/Express-4.18-blue)
7
![SQLite](https://img.shields.io/badge/SQLite-3-orange)
8
![Docker](https://img.shields.io/badge/Docker-Ready-blue)
38db7e Tebby Dog 2025-08-08 20:16:04 9
![License](https://img.shields.io/badge/License-MIT-yellow)
5b38af Tebby Dog 2025-08-08 19:55:53 10
5e8472 Tebby Dog 2025-08-09 20:09:14 11
<details>
12
<summary><i>Click to show screenshots</i></summary>
13
92a6e9 Tebby Dog 2025-08-08 19:40:57 14
## Screenshots
9f0431 Tebby Dog 2025-08-08 19:47:57 15
![](./Screenshot_2025-08-08_at_3.35.43_PM.png)
76cb58 Tebby Dog 2025-08-08 19:46:58 16
[![](./Screenshot_2025-08-08_at_3.36.48_PM.png?thumbnail)](./Screenshot_2025-08-08_at_3.36.48_PM.png)
17
[![](./Screenshot_2025-08-08_at_3.36.41_PM.png?thumbnail)](./Screenshot_2025-08-08_at_3.36.41_PM.png)
18
[![](./Screenshot_2025-08-08_at_3.36.30_PM.png?thumbnail)](./Screenshot_2025-08-08_at_3.36.30_PM.png)
19
[![](./Screenshot_2025-08-08_at_3.36.21_PM.png?thumbnail)](./Screenshot_2025-08-08_at_3.36.21_PM.png)
20
[![](./Screenshot_2025-08-08_at_3.35.43_PM.png?thumbnail)](./Screenshot_2025-08-08_at_3.35.43_PM.png)
92a6e9 Tebby Dog 2025-08-08 19:40:57 21
5e8472 Tebby Dog 2025-08-09 20:09:14 22
</details>
23
92a6e9 Tebby Dog 2025-08-08 19:40:57 24
## Features
25
26
- 📊 **Sales Analytics Dashboard** – Visualize sales like a data-driven badass
27
- 👥 **User Management** – Multi-level permissions so your team doesn’t accidentally break stuff
28
- 📈 **Data Entry & Export** – Input sales quickly and shoot that crap into Excel
29
- 🎮 **Interactive Login** – Cursor-evasive Sign In button just to mess with people
30
- 🔒 **Secure Authentication** – Password hashing that even your nosy-ass sysadmin can’t break
31
- 📱 **Responsive Design** – Runs smooth on desktop, tablet, or that old phone you still won’t upgrade
32
33
### Core Functionality
34
35
- **Employee Management** – Add/edit employees, their commissions, draws — the whole damn deal
36
- **Sales Data Entry** – Do it by hand or slam in a CSV like a pro
37
- **Analytics Dashboard** – Filter and graph until the numbers make sense or you rage-quit
38
- **Admin Panel** – Wrapped in password protection, because duh
39
40
### Database Schema
41
42
Your data’s not just dumped — we gave it structure like responsible grownups:
43
44
- **Employee Table**: Tracks the who, what, and when of your sales crew
45
- **Sales Table**: Logs every dollar that rolls in
46
- **Settings Table**: Keeps track of your system’s default working setup and toggles
47
- **Goals Table**: Measure who's slaying and who's slacking
48
49
### Three Main Pages
50
51
#### 1. Management Tab (Locked Behind a Password Wall)
52
53
- Admin login with proper credentials (no password123 crap)
54
- Employee configuration panel
55
- Settings for system behavior and admin updates
56
- Switch how commissions & draws are shown — % or actual bucks
57
- **Epic theme picker with 8 presets for maximum visual hell yeah**
58
59
#### 2. Analytics Page (Wide Frickin’ Open)
60
61
- Tracks Year-to-Date stats, or whatever time range floats your fancy
62
- Uses Chart.js because facts deserve pretty pictures
63
- Bar, pie, line charts — you name it
64
- Filter time ranges and export data like an absolute legend
65
- Adaptive UI responds to theme like a mood ring for business
66
67
#### 3. Data Entry Page (Wide Open Like Your Inbox)
68
69
- Manual sales input
70
- Commissions calculated automatically (no more math headaches)
71
- Draw payment tracking — keep it drama-free
72
- Upload CSVs and watch it handle bulk data like a champ
73
- Validates your entries because your future self will thank you
74
- Keeps the recent entries right where you can see them
75
76
## Technical Stack
77
78
Because building badass tools needs solid tech:
79
80
- 🧠 **Backend**: Flask + SQLAlchemy
81
- 🐘 **Database**: SQLite, cause it just works
82
- 🖋️ **Forms**: Flask-WTF with CSRF defense
83
- 🔐 **Security**: Werk-f’ing-Zeug password hashing for locked-tight sessions
84
- 💅 **Frontend**: Bootstrap 5, sexy in all screen sizes
85
- 📊 **Charts**: Chart.js — clean, crisp, and fast AF
86
- 🐳 **Deployment**: Dockerized and ready to ship
87
88
## Installation & Setup
89
90
### Quick Start with Docker (The Way Developers Actually Do It)
91
92
1. Clone this bad boy:
93
```bash
94
git clone <repository-url>
95
cd sales-tracker
96
chmod +x setup.sh
97
./setup.sh
98
```
99
100
2. Manual Docker Compose (for control freaks):
101
```bash
102
docker-compose up --build
103
```
104
105
3. Launch that sucker:
106
- Visit http://localhost:5000
107
- Admin credentials: `admin` / `admin` (you’ll wanna change that ASAP)
108
109
### Setup Options
110
111
**Dev Mode** — a no-pressure playground:
112
```bash
113
./setup.sh --dev
114
```
115
116
**Production Mode** — the serious stuff:
117
```bash
118
./setup.sh --production
119
```
120
121
**Persistent Mode** — the one that doesn’t forget your data:
122
```bash
123
./setup.sh --persistent
124
```
125
126
Gives access at http://localhost:5001 if you're following recipes correctly.
127
128
### Got Database Problems? Let’s Kick Their Ass
129
130
1. Use in-container magic:
131
```bash
132
docker run -p 5000:5000 -e DATABASE_URL=sqlite:///sales_tracker.db sales-tracker
133
```
134
135
2. Fix crappy host permissions:
136
```bash
137
mkdir -p data uploads
138
chmod 755 data uploads
139
```
140
141
3. Or go full persistent mode:
142
```bash
143
./setup.sh --persistent
144
```
145
146
### Local Dev Setup
147
148
1. Get your damn Python set up:
149
```bash
150
python3 -m venv venv
151
source venv/bin/activate
152
pip install -r requirements.txt
153
```
154
155
2. Fire up the beast:
156
```bash
157
python app.py
158
```
159
160
3. Open browser → http://localhost:5000
161
(Or don’t. Be a rebel.)
162
163
## Configuration
164
165
### Environment Sh*t You Shouldn’t Forget
166
167
- `SECRET_KEY` — don’t check this into Git, ya dingus
168
- `FLASK_ENV` — development or production
169
- `DATABASE_URL` — override the default if you like pain
170
171
### Defaults
172
173
- Admin: `admin`
174
- Password: `admin` (again, change it dammit)
175
- Database: `sales_tracker.db`
176
177
## Usage Guide
178
179
### First-Time Dance
180
181
1. Load up http://localhost:5000
182
2. Smash that “Admin Login” button
183
3. Change the password — your organization’s honor depends on it
184
4. Add employees like a benevolent god
185
186
### Logging Sales (a.k.a. The Reason This Sh*t Exists)
187
188
1. Go to Data Entry
189
2. Type in details
190
3. Let auto-commission math do its thing
191
4. Or bulk upload a fancy-ass CSV
192
193
### Viewing Analytics
194
195
1. Hit Analytics
196
2. Filter stuff until it tells you something useful
197
3. Export if your boss wants proof
198
199
### Managing the Team
200
201
1. Admin login
202
2. Edit employees or set their goals
203
3. Toggle display settings — % or flat amounts
204
4. Yell at slackers (optional)
205
206
### Theme Customization (Because Vibes Matter)
207
208
1. Hit the palette icon in the navbar
209
2. Choose one of the 8 eye-popping themes
210
3. Watch the app change outfits instantly
211
212
Themes include:
213
214
- Default Blue
215
- Dark Theme (work in the shadows, baby)
216
- Nature Green (for tree-huggin’ teams)
217
- Royal Purple (His Royal Freshness would approve)
218
- Sunset Orange
219
- Ocean Teal
220
- Corporate Red (power tie vibes)
221
- Modern Pink
222
223
Settings persist for admin; guests get localStorage (so they don’t ruin your vibe).
224
225
## File Structure
226
227
```
228
sales-tracker/
229
├── app.py # Main Flask beast
230
├── requirements.txt # Python goodies
231
├── Dockerfile # So your app works on my damn machine too
232
├── docker-compose.yml # Stack orchestration magic
233
234
```
235
236
## API Endpoints
237
238
- `GET /api/sales_data?period=YTD` — give us that chart data
239
- `GET /api/trends_data` — how the bloody hell are we doing?
240
- `POST /bulk_upload` — shove an entire CSV down its throat
241
242
## Security Features
243
244
- Password hashing (locked tighter than grandma’s cookie jar)
245
- CSRF protection — no cross-site BS allowed
246
- Session-based ownership
247
- Input validation so you don’t feed it junk
248
- SQLAlchemy ORM to dodge SQL injection like Neo
249
250
## Performance
251
252
Fast as hell. Optimized frontend, backend, and everything in between. Ready to scale... maybe.
253
254
## Maintenance
255
256
### Backup the Damn DB
257
258
```bash
259
docker exec sales-tracker-app sqlite3 /app/sales_tracker.db ".backup /app/data/backup.db"
260
```
261
262
### Update This Beautiful Bastard
263
264
```bash
265
docker-compose down
266
docker-compose up --build
267
```
268
269
### Check Logs Like a Debugging Ninja
270
271
```bash
272
docker-compose logs -f sales-tracker
273
```
274
275
## Contributing
276
277
1. Fork it
278
2. Branch it
279
3. Make it better
280
4. Pull request and bask in glory
281
282
## Support
283
284
Issues? Questions? Praise-singing?
7a867c Tebby Dog 2025-08-08 20:18:13 285
File an issue on GitHub or yell at [teb](https://github.com/tebwritescode).
92a6e9 Tebby Dog 2025-08-08 19:40:57 286
287
---
e9a39a Tebby Dog 2025-08-08 20:17:29 288
👑 Created by: [tebbydog0605](https://github.com/tebwritescode)
92a6e9 Tebby Dog 2025-08-08 19:40:57 289
🐋 Docker Hub: [tebwritescode](https://hub.docker.com/u/tebwritescode)
845e25 Tebby Dog 2025-08-08 20:28:47 290
💻 Website: [teb.codes](https://teb.codes)