Commit 92a6e9
2025-08-08 19:40:57 Tebby Dog: init/dev/null .. sales tracker.md | |
@@ 0,0 1,282 @@ | |
+ | # Sales Tracker |
+ | |
+ | 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. |
+ | |
+ | ## Screenshots |
+ | |
+ | |
+ | ## Features |
+ | |
+ | - 📊 **Sales Analytics Dashboard** – Visualize sales like a data-driven badass |
+ | - 👥 **User Management** – Multi-level permissions so your team doesn’t accidentally break stuff |
+ | - 📈 **Data Entry & Export** – Input sales quickly and shoot that crap into Excel |
+ | - 🎮 **Interactive Login** – Cursor-evasive Sign In button just to mess with people |
+ | - 🔒 **Secure Authentication** – Password hashing that even your nosy-ass sysadmin can’t break |
+ | - 📱 **Responsive Design** – Runs smooth on desktop, tablet, or that old phone you still won’t upgrade |
+ | |
+ | ### Core Functionality |
+ | |
+ | - **Employee Management** – Add/edit employees, their commissions, draws — the whole damn deal |
+ | - **Sales Data Entry** – Do it by hand or slam in a CSV like a pro |
+ | - **Analytics Dashboard** – Filter and graph until the numbers make sense or you rage-quit |
+ | - **Admin Panel** – Wrapped in password protection, because duh |
+ | |
+ | ### Database Schema |
+ | |
+ | Your data’s not just dumped — we gave it structure like responsible grownups: |
+ | |
+ | - **Employee Table**: Tracks the who, what, and when of your sales crew |
+ | - **Sales Table**: Logs every dollar that rolls in |
+ | - **Settings Table**: Keeps track of your system’s default working setup and toggles |
+ | - **Goals Table**: Measure who's slaying and who's slacking |
+ | |
+ | ### Three Main Pages |
+ | |
+ | #### 1. Management Tab (Locked Behind a Password Wall) |
+ | |
+ | - Admin login with proper credentials (no password123 crap) |
+ | - Employee configuration panel |
+ | - Settings for system behavior and admin updates |
+ | - Switch how commissions & draws are shown — % or actual bucks |
+ | - **Epic theme picker with 8 presets for maximum visual hell yeah** |
+ | |
+ | #### 2. Analytics Page (Wide Frickin’ Open) |
+ | |
+ | - Tracks Year-to-Date stats, or whatever time range floats your fancy |
+ | - Uses Chart.js because facts deserve pretty pictures |
+ | - Bar, pie, line charts — you name it |
+ | - Filter time ranges and export data like an absolute legend |
+ | - Adaptive UI responds to theme like a mood ring for business |
+ | |
+ | #### 3. Data Entry Page (Wide Open Like Your Inbox) |
+ | |
+ | - Manual sales input |
+ | - Commissions calculated automatically (no more math headaches) |
+ | - Draw payment tracking — keep it drama-free |
+ | - Upload CSVs and watch it handle bulk data like a champ |
+ | - Validates your entries because your future self will thank you |
+ | - Keeps the recent entries right where you can see them |
+ | |
+ | ## Technical Stack |
+ | |
+ | Because building badass tools needs solid tech: |
+ | |
+ | - 🧠 **Backend**: Flask + SQLAlchemy |
+ | - 🐘 **Database**: SQLite, cause it just works |
+ | - 🖋️ **Forms**: Flask-WTF with CSRF defense |
+ | - 🔐 **Security**: Werk-f’ing-Zeug password hashing for locked-tight sessions |
+ | - 💅 **Frontend**: Bootstrap 5, sexy in all screen sizes |
+ | - 📊 **Charts**: Chart.js — clean, crisp, and fast AF |
+ | - 🐳 **Deployment**: Dockerized and ready to ship |
+ | |
+ | ## Installation & Setup |
+ | |
+ | ### Quick Start with Docker (The Way Developers Actually Do It) |
+ | |
+ | 1. Clone this bad boy: |
+ | ```bash |
+ | git clone <repository-url> |
+ | cd sales-tracker |
+ | chmod +x setup.sh |
+ | ./setup.sh |
+ | ``` |
+ | |
+ | 2. Manual Docker Compose (for control freaks): |
+ | ```bash |
+ | docker-compose up --build |
+ | ``` |
+ | |
+ | 3. Launch that sucker: |
+ | - Visit http://localhost:5000 |
+ | - Admin credentials: `admin` / `admin` (you’ll wanna change that ASAP) |
+ | |
+ | ### Setup Options |
+ | |
+ | **Dev Mode** — a no-pressure playground: |
+ | ```bash |
+ | ./setup.sh --dev |
+ | ``` |
+ | |
+ | **Production Mode** — the serious stuff: |
+ | ```bash |
+ | ./setup.sh --production |
+ | ``` |
+ | |
+ | **Persistent Mode** — the one that doesn’t forget your data: |
+ | ```bash |
+ | ./setup.sh --persistent |
+ | ``` |
+ | |
+ | Gives access at http://localhost:5001 if you're following recipes correctly. |
+ | |
+ | ### Got Database Problems? Let’s Kick Their Ass |
+ | |
+ | 1. Use in-container magic: |
+ | ```bash |
+ | docker run -p 5000:5000 -e DATABASE_URL=sqlite:///sales_tracker.db sales-tracker |
+ | ``` |
+ | |
+ | 2. Fix crappy host permissions: |
+ | ```bash |
+ | mkdir -p data uploads |
+ | chmod 755 data uploads |
+ | ``` |
+ | |
+ | 3. Or go full persistent mode: |
+ | ```bash |
+ | ./setup.sh --persistent |
+ | ``` |
+ | |
+ | ### Local Dev Setup |
+ | |
+ | 1. Get your damn Python set up: |
+ | ```bash |
+ | python3 -m venv venv |
+ | source venv/bin/activate |
+ | pip install -r requirements.txt |
+ | ``` |
+ | |
+ | 2. Fire up the beast: |
+ | ```bash |
+ | python app.py |
+ | ``` |
+ | |
+ | 3. Open browser → http://localhost:5000 |
+ | (Or don’t. Be a rebel.) |
+ | |
+ | ## Configuration |
+ | |
+ | ### Environment Sh*t You Shouldn’t Forget |
+ | |
+ | - `SECRET_KEY` — don’t check this into Git, ya dingus |
+ | - `FLASK_ENV` — development or production |
+ | - `DATABASE_URL` — override the default if you like pain |
+ | |
+ | ### Defaults |
+ | |
+ | - Admin: `admin` |
+ | - Password: `admin` (again, change it dammit) |
+ | - Database: `sales_tracker.db` |
+ | |
+ | ## Usage Guide |
+ | |
+ | ### First-Time Dance |
+ | |
+ | 1. Load up http://localhost:5000 |
+ | 2. Smash that “Admin Login” button |
+ | 3. Change the password — your organization’s honor depends on it |
+ | 4. Add employees like a benevolent god |
+ | |
+ | ### Logging Sales (a.k.a. The Reason This Sh*t Exists) |
+ | |
+ | 1. Go to Data Entry |
+ | 2. Type in details |
+ | 3. Let auto-commission math do its thing |
+ | 4. Or bulk upload a fancy-ass CSV |
+ | |
+ | ### Viewing Analytics |
+ | |
+ | 1. Hit Analytics |
+ | 2. Filter stuff until it tells you something useful |
+ | 3. Export if your boss wants proof |
+ | |
+ | ### Managing the Team |
+ | |
+ | 1. Admin login |
+ | 2. Edit employees or set their goals |
+ | 3. Toggle display settings — % or flat amounts |
+ | 4. Yell at slackers (optional) |
+ | |
+ | ### Theme Customization (Because Vibes Matter) |
+ | |
+ | 1. Hit the palette icon in the navbar |
+ | 2. Choose one of the 8 eye-popping themes |
+ | 3. Watch the app change outfits instantly |
+ | |
+ | Themes include: |
+ | |
+ | - Default Blue |
+ | - Dark Theme (work in the shadows, baby) |
+ | - Nature Green (for tree-huggin’ teams) |
+ | - Royal Purple (His Royal Freshness would approve) |
+ | - Sunset Orange |
+ | - Ocean Teal |
+ | - Corporate Red (power tie vibes) |
+ | - Modern Pink |
+ | |
+ | Settings persist for admin; guests get localStorage (so they don’t ruin your vibe). |
+ | |
+ | ## File Structure |
+ | |
+ | ``` |
+ | sales-tracker/ |
+ | ├── app.py # Main Flask beast |
+ | ├── requirements.txt # Python goodies |
+ | ├── Dockerfile # So your app works on my damn machine too |
+ | ├── docker-compose.yml # Stack orchestration magic |
+ | … |
+ | ``` |
+ | |
+ | ## API Endpoints |
+ | |
+ | - `GET /api/sales_data?period=YTD` — give us that chart data |
+ | - `GET /api/trends_data` — how the bloody hell are we doing? |
+ | - `POST /bulk_upload` — shove an entire CSV down its throat |
+ | |
+ | ## Security Features |
+ | |
+ | - Password hashing (locked tighter than grandma’s cookie jar) |
+ | - CSRF protection — no cross-site BS allowed |
+ | - Session-based ownership |
+ | - Input validation so you don’t feed it junk |
+ | - SQLAlchemy ORM to dodge SQL injection like Neo |
+ | |
+ | ## Performance |
+ | |
+ | Fast as hell. Optimized frontend, backend, and everything in between. Ready to scale... maybe. |
+ | |
+ | ## Maintenance |
+ | |
+ | ### Backup the Damn DB |
+ | |
+ | ```bash |
+ | docker exec sales-tracker-app sqlite3 /app/sales_tracker.db ".backup /app/data/backup.db" |
+ | ``` |
+ | |
+ | ### Update This Beautiful Bastard |
+ | |
+ | ```bash |
+ | docker-compose down |
+ | docker-compose up --build |
+ | ``` |
+ | |
+ | ### Check Logs Like a Debugging Ninja |
+ | |
+ | ```bash |
+ | docker-compose logs -f sales-tracker |
+ | ``` |
+ | |
+ | ## Contributing |
+ | |
+ | 1. Fork it |
+ | 2. Branch it |
+ | 3. Make it better |
+ | 4. Pull request and bask in glory |
+ | |
+ | ## License |
+ | |
+ | Built with Flask, Bootstrap, and several shots of espresso. Have fun breaking it. |
+ | |
+ | ## Support |
+ | |
+ | Issues? Questions? Praise-singing? |
+ | File an issue on GitHub or yell at [tebbydog0605](https://github.com/tebbydog0605). |
+ | |
+ | --- |
+ | 👑 Created by: [tebbydog0605](https://github.com/tebbydog0605) |
+ | 🐋 Docker Hub: [tebwritescode](https://hub.docker.com/u/tebwritescode) |
+ | 💻 Website: [tebwrites.code](https://tebwrites.code) |
+ | |
+ | --- |
+ | |
+ | Let me know if you want toggles for “Cuss-Free Mode” 😈 — or would you like an even spicier edit? |