{"id":17696685,"url":"https://github.com/andrewmaksimchuk/spending","last_synced_at":"2026-02-11T20:32:36.826Z","repository":{"id":177699658,"uuid":"660695976","full_name":"AndrewMaksimchuk/spending","owner":"AndrewMaksimchuk","description":"How much you spend money?","archived":false,"fork":false,"pushed_at":"2025-11-22T05:47:06.000Z","size":7846,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-22T07:11:07.911Z","etag":null,"topics":["bash","nodejs","shell","statistics"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","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/AndrewMaksimchuk.png","metadata":{"files":{"readme":"README.md","changelog":"history.bash","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-06-30T15:55:32.000Z","updated_at":"2025-11-22T05:47:10.000Z","dependencies_parsed_at":"2024-09-09T05:24:51.976Z","dependency_job_id":"de5952b4-99d6-400f-8514-af61ca8a983d","html_url":"https://github.com/AndrewMaksimchuk/spending","commit_stats":null,"previous_names":["andrewmaksimchuk/spending"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AndrewMaksimchuk/spending","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewMaksimchuk%2Fspending","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewMaksimchuk%2Fspending/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewMaksimchuk%2Fspending/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewMaksimchuk%2Fspending/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndrewMaksimchuk","download_url":"https://codeload.github.com/AndrewMaksimchuk/spending/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewMaksimchuk%2Fspending/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29344022,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T20:11:40.865Z","status":"ssl_error","status_checked_at":"2026-02-11T20:10:41.637Z","response_time":97,"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":["bash","nodejs","shell","statistics"],"created_at":"2024-10-24T14:44:59.854Z","updated_at":"2026-02-11T20:32:36.808Z","avatar_url":"https://github.com/AndrewMaksimchuk.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Receipt example\n\n```txt\natb\n18.07.2023 18:23:33\n243.71\n=\nмолоко\nбатон\nморозиво\n=\nimage=image_name_of_receipt_example_atb.26.09.2022.15.29.32.jpg\ncategory=лікування\n```\n\nFirst 3 lines is required,  \nall next, from line separetion(symbol =), is optional.\n\nImage of receipt must be saved to\n`project_directory/receipts_images` directory.  \nThe best image name is: shop_name.date.time,\nlike in example above.\n\nTo link the photo and the check together, write keyword `image=`  \nand write name of the photo(example above).\n\nFor add category to the check, write keyword `category=`  \nand write category name as in example above.\n\n## Install\n\nRun script `./install.bash` with `sudo` to see  \nsteps + create simlynk + shell completion(bash/zsh).\n\n- Add to yout shell config file:  \n  \"SPENDING_INSTALL=path_to_this_directory\"\n- Then add \"export PATH=$PATH:$SPENDING_INSTALL\"\n- Save and reload config file.\n- Now you have 'spending' application.\n\n## Service web server Node.js\n\nYou can run web server as `systemd` service.  \nThe service file is `spending.service`\n\n### Commands for use service\n\n`web_server_start` - start web server as service\n`web_server_stop`  - stop web server as service\n\n### systemctl commands\n\n- Make systemd aware of the new service: sudo systemctl daemon-reload\n- Make the service start on boot: sudo systemctl enable spending\n- Start it with: systemctl start spending\n- See logs with: journalctl -u spending\n\n## Usage\n\nSee [usage](usage.md)\n\n## Additional functions\n\n### Validation\n\n- store name\n- date and time\n- price\n- chunk delimeter\n\n#### Run only from this project directory\n\n`show_last_n_days.bash` - Show last added  \nreceipts n days ago\n\n## Use R programming language\n\nShow list of installed libraries: `installed.packages()`  \nInstall dplyr library use: `install.packages(\"tidyverse\")` in R REPL.  \nDescription of library: \u003chttps://cran.r-project.org/web/packages/dplyr/vignettes/base.html\u003e\nExample of graph: \u003chttps://r-graph-gallery.com/37-barplot-with-number-of-observation.html\u003e\nExample of R code: \u003chttps://github.com/PacktPublishing/R-Programming-By-Example/blob/master/Chapter03/vectorized_vs_unvectorized.R\u003e\n\n- [x] price min mean max values for all period\n- [x] price min mean max values for all each month in selected year\n- [x] count for each month hom much time go to shop(spend money) and total in selected year\n- [x] count what shop is most visited \n- [ ] what category of stuff most buy // after all receipts have category // check for this condition\n- [x] price count range for each month in selected year \n- [x] for each shop count min max mean of price for each month and total in selected year\n\n## Statistics description(how to understand)\n\n### Frequency table\n\nFrequency means the number of times a value  \nappears in the data. A table can quickly show us  \nhow many times each value appears.\n\n### Relative frequency table\n\nRelative frequency means the number of times a  \nvalue appears in the data compared to the total  \namount. A percentage is a relative frequency.\n\n### Cumulative frequency table\n\nCumulative frequency counts up to a particular  \nvalue.\n\n### Mean\n\nThe mean is usually referred to as 'the average'.\n\n### Median\n\nThe median is the middle value in a data set  \nordered from low to high.\n\n### Range\n\nThe range is the difference between the smallest  \nand the largest value of the data.  \nRange is the simplest measure of variation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewmaksimchuk%2Fspending","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewmaksimchuk%2Fspending","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewmaksimchuk%2Fspending/lists"}