Custom time tracking app for ERPNext.
All connections to the server are done through the frappe rest api.
The following projects were used to build this app:
- ReactJS - Web App Framework.
- BluePrintJS - UI Framework.
- React Router - To internllay track page switching.
- React Transition Group - To cleanly handle smooth page switching.
- Electron Desktop Idle - Track user idle time.
- Axios - HTTP(s) remote request library to handle rest api.
- Nwb - cli tools to handle react building and live reload during development
- nwb-electron-starter - A clean nwb setup for electron + nwb app development.
To keep the app UI development loosely coupled to its backed, we've put all server CRUD operations in the ERPNext.js component and abstracted operations there.
The idea here is to have this connector return promises on all actions against the server.
For this app to work a timesheet will be generated every day for it's user. This can be done either server side as required or app side if no timesheet is found for that day.
Tho, no timesheet would be generated without at least one task for that day.
Tasks will be grouped by project so that user has to:
- Pick the project a task is being worked on
- Pick the task itself belonging to that project
- Or create tasks on the fly for the project as well.
The app app should enforce only one active task at a time and display a custom timer on the OS's task tray icon.
Also, by default if a timer was started every 10 minute desktop idle time the app will display a reminder that the task was left running.
The idle reminder should give two options:
- Remove X minutes of detected idle time and stop timer.
- or close reminder. Resetting idle timer check until next timeout.
There should be a logout option in the settings page as well as the login widget.
- Add Windows installer
- Add Mac DMG installer
- Add Linux Installer?
- Finish erpnext connector to send/receipt timesheet info
- Build task entry details popup
- Close and minimize to tray actions
- Logout button inside settings
- Add quit app in settings page and login page.
- Add settings idle timeout settings
- Add task icon active task icon generation