A modern, elegant dashboard for tracking work hours, visualizing progress, and calculating earnings. Built with SvelteKit and Tailwind CSS.
- 📈 Real-time Tracking: Automatically syncs work data from local StaffCounter logs.
- 🎯 Goal Management: Set and track weekly hour targets with visual progress bars.
- 💰 Earnings Calculator: Real-time conversion of hours to USD and BDT with customizable rates.
- 📊 Data Visualization: Interactive charts for daily, weekly, and monthly storage.
- 🌗 Dark/Light Mode: Beautiful, responsive UI with automatic system theme detection.
- 📝 Detailed Reporting: View detailed breakdown of daily work sessions.
- ⚡ Fast & Reactive: Built on Svelte 5 for blazing fast performance.
- Framework: SvelteKit (Svelte 5)
- Styling: Tailwind CSS v4, Bits UI
- Icons: Lucide Svelte
- Charts: Chart.js
- Utils: Date-fns
- Runtime: Node.js (Express)
- Database: MySQL
- Scraping: Cheerio (parses local HTML logs)
- Node.js (v18+)
- pnpm (recommended)
- MySQL Server
- StaffCounter desktop app (installed and logging locally)
-
Clone the repository
git clone <repository-url> cd Work-Report-Svelte
-
Install Frontend Dependencies
pnpm install
-
Setup the Backend Navigate to the backend directory and install dependencies:
cd Work-Time-Backend npm install
- Ensure MySQL is running.
- Create the database using
Work-Time-Backend/schema.sql. - Configure database connection in
Work-Time-Backend/server.jsor separate config file (if applicable). - Important: detailed in
api_documentation.md, the backend looks for logs atC:/Program Files (x86)/StaffCounter/logs/USER/. Ensure this path matches your environment or updateworktime.py/workTimeScraper.js.
- The frontend connects to the backend at
http://192.168.0.2:88by default (seesrc/lib/config.tsorapi_documentation.md). Update this if running locally or on a different port.
-
Start the Backend:
cd Work-Time-Backend node server.js # OR use nodemon npx nodemon server.js
-
Start the Frontend:
# In the root directory pnpm dev -
Open your browser at
http://localhost:5173.
Work-Report-Svelte/
├── src/
│ ├── lib/
│ │ ├── components/ # UI Components (Header, Charts, etc.)
│ │ ├── stores/ # Svelte stores for state management
│ │ ├── utils/ # Helper functions
│ │ └── types.ts # TypeScript interfaces
│ └── routes/ # SvelteKit File-based routing
├── Work-Time-Backend/ # Node.js API & Scraper
│ ├── database/ # SQL schema
│ ├── scripts/ # Scraping logic
│ └── server.js # Express app entry point
└── ...config files
This project is for personal use.
Built with ❤️ using Svelte.