TrackOwl (by DigiReps) is a comprehensive time and productivity tracking solution designed for modern teams. It combines a powerful desktop monitoring client, a feature-rich admin portal, and a robust backend integration with Supabase.
The project is divided into three main components:
- Desktop Client (Root): An Electron-based application that runs in the background to track user activity, take screenshots, and monitor application/URL usage.
- Admin Portal (
/admin-portal): A React-based web interface for managers to oversee projects, members, budgets, and detailed productivity reports. - Backend (
/backend): An Express server that handles data aggregation, member invitations, and complex business logic, sitting on top of a Supabase database.
- Activity Tracking: Real-time monitoring of active windows, URLs, and screenshots.
- Project Management: Detailed project configurations including budgets, billable hours, and team assignments.
- Member Management: Streamlined invite flow with custom roles, pay rates, and billing limits.
- Favorites System: Customizable sidebar navigation allowing users to star frequently used sections.
- Detailed Reporting: Comprehensive productivity reports, including session logs and activity percentages.
- Calendar & Time Off: Management of holidays and team time-off requests.
- Frontend: React, TypeScript, Vite, Tailwind CSS, Lucide Icons.
- Desktop: Electron.
- Backend: Express, Node.js.
- Database: Supabase (PostgreSQL).
- Authentication: Supabase Auth.
- Node.js (v18+)
- Supabase Project
- Clone the repository
- Setup Backend:
cd backendnpm install- Create a
.envfile based on.env.examplewith your Supabase credentials. npm run dev
- Setup Admin Portal:
cd admin-portalnpm install- Create a
.envfile withVITE_SUPABASE_URL,VITE_SUPABASE_ANON_KEY, andVITE_API_BASE_URL. npm run dev
- Setup Desktop Client:
cd .. (back to root)npm install- Create a
.envwith Supabase credentials. npm run dev
The database schema is managed via Supabase. Key tables include:
projects: Project details and budget settings.members: User profiles and compensation details.sessions: Recorded time tracking sessions.activity_samples: Sampled data for activity levels and idling.project_teams&project_members: Relationship mapping for access control.
Refer to backend/supabase_schema.sql for the full definition.