Expensler is an apps-script google sheets addon for tracking personal finance.
- Create and open a new spreadsheet in Google Sheets.
- Go to
Extensions->Apps Scriptto open the Apps Script editor. - Edit the Apps Script project name.
- Copy the script id from the URL and insert to either
./secrets/prod.envor./template.envfile with aEXPENSLER_SHEETS_SCRIPT_IDkey. - Run the
./run.sh run::logincommand to login to google. - Run the
./run.sh run::deploy:prodcommand to deploy the script to google.
The accounts can be added via the Expensler menu button. Currently only Monobank is supported. To enable the API key is required, it can be obtained in the https://api.monobank.ua/ personal cabinet.
| Component | Technology |
|---|---|
| Runtime | Google Apps Script |
| Language | TypeScript |
| UI framework (used for sidebars) | Solid.js |
| Bundler (with couple of custom plugins) | esbuild with esbuild-plugin-solid |
| Deployment | clasp (Google's CLI for Apps Script) |
| Linting | ESLint with @antfu/eslint-config |
Run the following commands to prepare the project:
git clone git@github.com:abc-valera/expensler-sheets.git
./run.sh run::prepare-devDeployment is performed by the clasp tool. Before using it the authentication is required via the ./run.sh run::login command. When used it creates a ./secrets/.clasprc.json file containing a secret token from google.
After the login the clasp tool can deploy the appscript: ./run.sh run::deploy:prod. This command will build and deploy the code to google using the script id from the env file.
The project also contains github actions for the deployment. It builds and deploys the script on tagged (v*.*.*) commits using the secrets from the github repository.
To remove all document properties:
function deleteAllDocumentProperties() {
PropertiesService.getDocumentProperties().deleteAllProperties()
Logger.log('All document properties deleted.')
}The logs can be seen in the Executions page of the Apps Script dashboard: https://script.google.com/home/executions
