About
chroco - Simple electron offline time tracker.
Install
To Install chroco on Linux, MacOS or Windows, download the installer for our system from the latest release and install it.
The releases are not signed, your system might complain about that.
No automatic updates yet.
Development
chroco uses a git branching model inspired by Vincent Driessen's blog post on nvie.com.
- The
main
branch only has tagged releases and files should never be edited manually. Only thepublish
script should commit to themain
branch. - The
develop
branch is the main development branch. - New releases can only be published from branches starting with
release
.
Clone or fork chroco and cd
into its directory.
# Change into `develop` branch and pull latest commits.
git checkout develop && git pull
# Install dependencies.
npm install
# Start electron.
npm run start
The project uses eslint to enforce coding standard rules. To apply the rules to all js|jsx
files run npm run format
.
Publishing
- New releases can only be published from branches starting with
release
. - GitHub CLI has to be installed.
- All new changes should be documented in the
Unreleased
section ofCHANGELOG.md
. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
# Checkout new release branch from `develop`. Name has to start with `release`.
git checkout -b release-awesome-new-version develop
# Maybe make some last changes and commit them.
# Run the publish script, with the new version as argument. New version should be higher than latest version.
npm run publish <major>.<minor>.<patch>
To make an installer for your system, to test new changes before publishing, run npm run make
. This can be done from any branch at any time.
Contribution
Contributions welcome. You can report issues or suggest features. Help me coding, fork the repository and make pull requests. Or get me a coffee.
Credits
- Build with Electron Forge, React, Babel and webpack.
- Bootstrap serves as a CSS/SASS framework.
- The embedded persistent JSON based database is implemented with NeDB.
- Dates are processed by Day.js.
- Drag and drop features are implemented with dnd kit.
- Got around some headaches by using utilities by Lodash, array-move or classnames.
- Keep a Changelog helps maintaining a CHANGELOG.md.
- markdown-it parses markdown.
- Some UI components are based on react-multi-select-component, rc-slider, react-autosuggest or react-tooltip.
License
Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
This license lets you remix, adapt, and build upon this project non-commercially, as long as you credit me and license your new creations under the identical terms.