{"id":19703481,"url":"https://github.com/orbitale/compotes","last_synced_at":"2025-10-09T19:41:37.127Z","repository":{"id":40504444,"uuid":"223209425","full_name":"Orbitale/Compotes","owner":"Orbitale","description":"A small app to manage bank account operations and display rich analytics. Demo app credentials are admin/admin. [In development]","archived":false,"fork":false,"pushed_at":"2025-02-11T12:15:12.000Z","size":28350,"stargazers_count":99,"open_issues_count":1,"forks_count":18,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-30T00:45:38.239Z","etag":null,"topics":["application","csv","demo","docker","hacktoberfest","php","symfony","symfony-cli","typescript","webpack-encore"],"latest_commit_sha":null,"homepage":"https://compotes.piers.tech/","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Orbitale.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-21T15:50:00.000Z","updated_at":"2025-02-14T08:11:07.000Z","dependencies_parsed_at":"2024-05-02T02:39:29.042Z","dependency_job_id":"74ffe743-d4a0-4d5e-b967-41729e223d3d","html_url":"https://github.com/Orbitale/Compotes","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Orbitale%2FCompotes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Orbitale%2FCompotes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Orbitale%2FCompotes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Orbitale%2FCompotes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Orbitale","download_url":"https://codeload.github.com/Orbitale/Compotes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247423515,"owners_count":20936626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["application","csv","demo","docker","hacktoberfest","php","symfony","symfony-cli","typescript","webpack-encore"],"created_at":"2024-11-11T21:17:59.284Z","updated_at":"2025-10-09T19:41:32.105Z","avatar_url":"https://github.com/Orbitale.png","language":"Svelte","readme":"# 🍎 Compotes 🍏\n\nA small application to visualise bank operations in graphs and plots.\n\n# 🧮\n\n\u003e This is the second version of the main app that was previously built with PHP and Symfony.\n\u003e\n\u003e The new app is built in [Rust](https://www.rust-lang.org/) with [Tauri](https://tauri.studio/) for the backend, and uses [Typescript](https://www.typescriptlang.org/) and [Svelte](https://svelte.dev/) for the frontend part.\n\n![App screenshot](docs/capture1.png)\n\n## Install\n\nThe project is not even in beta for now.\n\nYou can still find latest nightly builds on the [Actions](https://github.com/Orbitale/Compotes/actions) page, if you check out the latest successful action marked by a \"☑️\" mark (if there is one at least).\n\nThe latest builds can also be found on [nightly.link](https://nightly.link/Orbitale/Compotes/workflows/main.yaml/rewrite)\n\n## Project setup\n\nIf you want to use the in-development project, you can compile it by doing what is explained in the following steps.\n\n### Requirements\n\n- [Rust](https://www.rust-lang.org/tools/install)\n- [Node.js](https://nodejs.org/en/download/)\n- [pnpm](https://pnpm.io/fr/)\n- For Linux users:\n  - Follow [this guide](https://tauri.studio/docs/getting-started/setting-up-linux#1-system-dependencies) to install the **system dependencies** that are mandatory.\n- For Windows users:\n  - [Webview2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section)\n- For MacOS users:\n  - XCode\n  - The GNU C Compiler, installable via `brew install gcc`\n\n### Install\n\n```\npnpm install\n```\n\n\u003e You do not need to install Rust dependencies, since running `cargo` commands like `cargo run` will automatically download and compile dependencies.\n\n### Run the app in dev mode\n\n```\npnpm run tauri dev\n```\n\n### Compile for production\n\n```\npnpm run tauri build\n```\n\n\u003e This command builds the app in the `src-tauri/target/release/` directory.\n\n## Import a database from v1\n\n- Run `make dump` in the v1 app\n- Get the `var/dump_***.sql` file that was just generated\n- Install `mysql2sqlite` via this script:\n  ```bash\n  wget https://raw.githubusercontent.com/dumblob/mysql2sqlite/master/mysql2sqlite\n  ```\n- Run it on the sql file you got and create your database:\n  ```bash\n  ./mysql2sqlite dump_***.sql | sqlite3 data.db3\n  ```\n- Pray it works 🙏\n\n### Roadmap\n\nSince the entire app is being rewritten, lots of stuff have to be re-implemented.\n\n\u003e The \"☑️\" mark means the feature is implemented, while the \"⬜️\" mark means the feature is waiting for implementation.\n\n- Core features:\n  - ☑️ Create the Tauri app\n  - ☑️ Create the Svelte frontend with it\n  - ☑️ List operations\n    - ☑️ Allow sorting operations by some fields\n    - ☑️ Allow filtering operations\n    - ☑️ Allow saving current filter to be reused in graphs\n    - ☑️ Allow filtering operations that have no tags\n    - ☑️ Allow ignoring an operation in graphs calculations\n  - ☑️ Tags CRUD\n  - ☑️ Tag rules CRUD\n  - ☑️ Bank accounts CRUD\n    - ☑️ Edit bank account details\n  - ☑️ Import operations from CSV file\n  - ☑️ Add tags to operations directly from the list\n  - ☑️ Sync operations for triage\n  - ☑️ Sync operations tags with tag rules\n  - ⬜️ Add the graphs that are at the core of this app 😅\n    - ☑️ Allow using saved filters for graphs\n    - ⬜️ Allow creating and saving custom graphs\n- Additional features that might be cool:\n  - ⬜️ Allow customizing graphs\n  - ⬜️ Config panel\n    - ⬜️ Allow customizing database, for multiple database usage\n    - ⬜️ Allow exporting/importing whole database\n    - ⬜️ User account system for multi-user usage\n  - ⬜️ Encrypt entire database with a password/passphrase for safety\n  - ⬜️ Store filters to the database instead of `localStorage`\n- Some things are quite buggy and the app needs improvements too:\n  - ☑️ Check why we have to use `location.reload()` because svelte stores don't update the paginated tables =\u003e I actually used SvelteKit's `goto()` from `$app/navigation` and it works great 👌\n  - ⬜️ Use a `select2` or similar for tags selection\n  - ⬜️ Add the ability to create a Tag Rule based on an Operation in the operations list\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forbitale%2Fcompotes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forbitale%2Fcompotes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forbitale%2Fcompotes/lists"}