{"id":20627837,"url":"https://github.com/albertomorini/walletter","last_synced_at":"2026-04-11T19:02:02.751Z","repository":{"id":65279245,"uuid":"589239326","full_name":"albertomorini/walletter","owner":"albertomorini","description":"A simple personal finance tool","archived":false,"fork":false,"pushed_at":"2023-09-11T20:58:03.000Z","size":20504,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T14:19:06.144Z","etag":null,"topics":["client-server","ionic","javascript","mongodb","node","nodejs","react","reactjs","rest-api","typescript","webapp","webservice"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/albertomorini.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-01-15T14:40:52.000Z","updated_at":"2023-10-06T07:20:03.000Z","dependencies_parsed_at":"2025-01-17T06:26:41.150Z","dependency_job_id":"509a638d-28ca-4241-b5d2-65ba3b766d92","html_url":"https://github.com/albertomorini/walletter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/albertomorini/walletter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertomorini%2Fwalletter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertomorini%2Fwalletter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertomorini%2Fwalletter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertomorini%2Fwalletter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/albertomorini","download_url":"https://codeload.github.com/albertomorini/walletter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertomorini%2Fwalletter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31691503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["client-server","ionic","javascript","mongodb","node","nodejs","react","reactjs","rest-api","typescript","webapp","webservice"],"created_at":"2024-11-16T13:18:23.911Z","updated_at":"2026-04-11T19:02:02.714Z","avatar_url":"https://github.com/albertomorini.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Walletter\n\n• A simple and minimal, personal finance tool \u003cbr/\u003e\n• You can do two things with money: earn it or spend it.\n\n## IDEA: \nEvery **transaction** has the same metadata:\n\n- Amount of money (spent or earned)\n- Date of transasction\n- Reference/Motivation (eg. salary, gorcery, gift etc)\n- Verse (if is an income or an outcome)\n\nSo the database goes along.\n\n## Database\n\nMade with Mongo, with two collections we can do the job.\n\nWT_TRANSACTIONS\n```json\n{\n    \"Email\":\"alberto@morini\",\n    \"Amount\": 44,\n    \"Date\":\"2023-03-10\",\n    \"IsOutcome\": true,\n    \"Reference\":\"Gorcery\"\n}\n```\nWT_USERS\n\n```JSON\n{\n    \"Email\": \"user@email\",\n    \"Password\": \"98a3629dc3d351915dfe959221ccb812\",//md5 of psw\n    \"Premium\": false //not used right now\n}\n```\n\n\n\n## UX\n\nThe dashboard start with 4 widget, clicking some of these you can go in fullscreen mode and see more results.\n\n\n![walletter](./docs/img/1.png)\n\n![fullscreen](./docs/img/fullscreen.jpg)\n\n\nYou can add a new transaction and searching for existing reference or add a new one.\n\n![search](./docs/img/search.jpg)\n\nFrom my iPad (have to hide some reference, sorry)\n![from_iPad](./docs/img/from_iPad.jpg)\n\n\n### Various widget\n\nSankey\n![sankey](./docs/img/sankey.png)\n\nFullscreen of calendar, clicking a day \n![allday](./docs/img/allOfDay.jpg)\n\nFull screen of grouped (is from my personal account, had to hide, sorry again)\n\n![grouped](./docs/img/grouped.jpg)\n\nYou can export or import a backup, saved on JSON\n\n![expoimpo](./docs/img/expoimpo.jpg)\n\n\nBut first, you need to login!\n\n![login](./docs/img/login.png)\n\n\n## Usage\n\nNodeJS and MongoDB are required.\n\u003e (suggestion) You can run MongoDB in docker as well.\n\nOnce executed the server (node server.js) and the client  go to the server port (1999) will ask you to trust of self-signed certified, than, will redict you to the web app.\n\n### Run the server\n`$ node ./walletter/server/server.js`\n\u003e 10.0.0.3 is my Mac's private IP, config yours into the ServerConfig.json into src folder of Walletter client folder\n\n\nRunnning the client in https mode:\n1. `$ cd ./walletter/Walletter/`\n2. `npm run build` \n3. `npx serve -s build --listen 1998 --ssl-cert cert.pem --ssl-key key.pem`\n\n\n**there's \"starter.sh\" a shell script which start docker/client/server all in once**\n\n\n## Certificates\n\n### Building on iOS\n\n`ionic capacitor build ios --prod`\n\n- via xcode we build the app and bring into the device\n- we need to allow the developer mode in the setting of the device (to run with a physical device)... Then trust the author on the general settings\n\n### Trust the self signed\n\n- Import the certificate generated into the device\n- Find in \"files\" -\u003e then open \n\n\u003e https://support.apple.com/en-us/HT204477\n\n## TODO\n- at the server startup check if collections exists\n- logs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertomorini%2Fwalletter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falbertomorini%2Fwalletter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertomorini%2Fwalletter/lists"}