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