Esti'mate is a browser extension (tested on recent Firefox and Chrome) based on the WebExtensions API. It provides cool new features for making estimates on Harvest:
- Project management calculation
- Description templates
- Todo/Reminder list
- Summary table
- Node.js (LTS version recommended)
- npm (comes with Node.js) or yarn
-
Clone the repository:
git clone https://github.com/antistatique/esti-mate.git cd esti-mate -
Install dependencies:
npm installor if you're using yarn:
yarn
Build the extension using Rollup:
npm run buildThis compiles all source files and copies assets to the dist/ directory, ready for browser loading.
npm run watch # Build with file watching for development
npm run start # Run extension in Firefox (requires web-ext installed globally)Firefox:
- Build the extension:
npm run build - Go to
about:debuggingβ This Firefox β Load Temporary Add-on - Select any file in the
dist/folder
Chrome:
- Build the extension:
npm run build - Go to
chrome://extensions - Enable "Developer mode"
- Click "Load unpacked" and select the
dist/folder
Currently, the project doesn't have automated tests. Manual testing should be performed:
- Test each feature of the extension thoroughly
- Test on both Firefox and Chrome to ensure cross-browser compatibility
- Test with different Harvest estimates to cover various scenarios
Linting:
npm run lint:fix # Fix auto-fixable ESLint issuesBuilding for stores:
npm run lint # Lint the built extension (web-ext lint)Contributions are welcome! Please feel free to submit a Pull Request.
Check the full documentation to see how to setup the Airtable's template feature.
Quick Store Package (current version):
npm run package:store # Creates esti-mate.zip ready for Chrome Web StoreComplete Release (version bump + packages):
npm run prepare-release # Bumps patch version, builds, and creates release packagesThis creates:
releases/esti-mate-v2.0.X.zip- Chrome Web Store readyreleases/esti-mate-source-v2.0.X.zip- Firefox add-on review package
npm run version:patch # 2.0.0 β 2.0.1 (automatically syncs manifest.json)
npm run version:minor # 2.0.0 β 2.1.0 (automatically syncs manifest.json)
npm run version:major # 2.0.0 β 3.0.0 (automatically syncs manifest.json)npm run package:chrome # Chrome-specific package
npm run package:firefox # Firefox-specific package- Run
npm run prepare-releaseto create versioned packages - Chrome Web Store: Upload
releases/esti-mate-v2.0.X.zip - Firefox Add-ons: Upload both the extension zip and source code zip
- Create GitHub release with version tag
- Update store descriptions if needed
Note: Version numbers are automatically synchronized between package.json and manifest.json.
This project is licensed under the MIT License.