Productivity Monitoring & Mobile Usage Control System
HabiTrack is an open-source project designed to boost personal productivity by integrating PC activity tracking with mobile usage management. By monitoring your active development time (e.g., in VSCode, IntelliJ) and correlating it with controlled mobile app usage, HabiTrack rewards consistent work with designated "free" phone time.
- Features
- Project Architecture
- Tech Stack
- Installation & Setup
- Usage
- Roadmap
- Contributing
- Code of Conduct
- License
- Support & Contact
-
PC Activity Monitoring
- Tracks user's active time in IDEs (VSCode, IntelliJ, etc.) and other productivity apps.
- Logs session data for insight into work patterns.
-
Mobile Usage Restriction
- Cross-platform mobile app (iOS/Android) restricts or limits access to selected apps.
- Can lock screen, manage notifications, and set daily usage quotas.
-
Reward System
- Work-to-reward ratio (e.g., 30 mins of work = 10 mins phone time).
- Notifications when reward time is nearing its limit.
-
Real-Time Sync
- Uses WebSockets or Firebase to sync data between desktop client and mobile app in real-time.
- Ensures instant updates on usage stats.
-
Gamification & Motivation
- Progress tracking, streaks, badges, and achievements to encourage consistent productivity.
- Option to share accomplishments or compete with friends.
HabiTrack/
├── backend/
│ ├── src/
│ │ └── ... (API endpoints, user auth, activity logging)
│ ├── package.json
│ └── ...
├── desktop/
│ ├── electron-app/
│ │ └── ... (Electron code for desktop tracker)
│ └── ...
├── mobile/
│ ├── src/
│ │ └── ... (React Native screens & components)
│ ├── package.json
│ └── ...
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
├── LICENSE
└── README.md
- Backend: Handles user authentication (OAuth), activity logging, and real-time sync with databases.
- Desktop: Electron-based (or browser extension) tracker that monitors active time in IDEs.
- Mobile: React Native app that enforces restrictions, usage time, and displays reward status.
-
Frontend
- Desktop Tracker: Electron, possibly a browser extension
- Mobile: React Native for cross-platform deployment
-
Backend
-
APIs
- Platform Hooks: IDE usage stats (VSCode extensions, IntelliJ plugins), OS-level tracking
- Device Management: Android’s Device Admin API (for advanced controls), iOS restrictions (where possible)
-
Clone the repository
git clone https://github.com/king04aman/HabiTrack.git cd HabiTrack/backend
-
Install dependencies
npm install
-
Set environment variables
- Create a
.env
file in thebackend/
directory. - Add your database credentials, OAuth keys (Google, Microsoft), etc.
- (This will be updated with time as configurations are finalized.)
- Create a
-
Run the server
npm run dev
- Defaults to
http://localhost:3000
(adjust if needed).
- Defaults to
-
Navigate to the desktop folder
cd HabiTrack/desktop/electron-app
-
Install dependencies
npm install
-
Run the Electron app
npm start
- This will launch the desktop tracker window.
-
Navigate to the mobile folder
cd HabiTrack/mobile
-
Install dependencies
npm install
-
Run on Android or iOS
# For Android: npm run android # For iOS (on Mac): npm run ios
- Make sure you have an Android emulator or iOS simulator set up.
-
Create an Account
- Sign up using Google or Microsoft OAuth within the desktop or mobile app.
-
Pair Your Devices
- Link the desktop tracker to the mobile app using a unique code or QR scan.
-
Configure Restrictions & Rewards
- In the mobile app, select which apps to restrict or set global phone usage limits.
- Adjust the work-to-reward ratio (default: 30 min of work for 10 min of phone time).
-
Start Working
- When you begin coding or using productivity apps, the desktop tracker logs time.
- Earn “reward minutes” to use on your phone.
-
Monitor Progress
- Check real-time sync on your phone to see how much reward time you have.
- Receive notifications when your reward time is running low.
HabiTrack is an ongoing project. The development plan is split into phases:
-
Phase 1 (Target: Feb 2025)
- Basic PC activity tracking and logging
- Initial mobile app with manual restrictions
- Simple reward system (manual reset)
- Basic authentication (OAuth)
-
Phase 2
- Real-time sync between desktop and mobile
- Advanced mobile controls (App-specific locks, notifications)
- Gamification elements (streaks, badges)
-
Phase 3
- IDE-specific plugins (VSCode, IntelliJ)
- Dashboard & Analytics for productivity insights
- Community features (optional)
(Additional phases will be added as the project evolves.)
HabiTrack is open to community contributions! We welcome bug reports, feature requests, and pull requests. Please refer to our CONTRIBUTING.md for details on:
- Branch naming & commit message format
- How to open issues & pull requests
- Project coding style & best practices
Please note that this project adheres to a Code of Conduct. By participating, you are expected to uphold this code.
HabiTrack is licensed under GPLv3.
Please see the LICENSE file for more details regarding usage, distribution, and contributions under this license.
- Issues & Requests: Submit a GitHub Issue to report bugs or request features.
- Discussions: Join the GitHub Discussions.
- Contact: For direct inquiries, email
[email protected]
. - Stay Updated: Watch this repo and join discussions for the latest updates.