{"id":34295396,"url":"https://github.com/mechevarria/bill-manager","last_synced_at":"2026-03-12T18:55:11.832Z","repository":{"id":23895264,"uuid":"27274892","full_name":"mechevarria/bill-manager","owner":"mechevarria","description":"AngularJS, Springboot, Solr, MySQL docker system to manage monthly expenses/income","archived":false,"fork":false,"pushed_at":"2023-01-10T23:41:26.000Z","size":8503,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-20T16:09:48.548Z","etag":null,"topics":["angularjs","apache","bootstrap","docker","highcharts","solr-client","springboot2"],"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/mechevarria.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}},"created_at":"2014-11-28T16:40:58.000Z","updated_at":"2021-03-28T18:32:02.000Z","dependencies_parsed_at":"2023-01-14T00:02:28.917Z","dependency_job_id":null,"html_url":"https://github.com/mechevarria/bill-manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mechevarria/bill-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mechevarria%2Fbill-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mechevarria%2Fbill-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mechevarria%2Fbill-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mechevarria%2Fbill-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mechevarria","download_url":"https://codeload.github.com/mechevarria/bill-manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mechevarria%2Fbill-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30438273,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T14:34:45.044Z","status":"ssl_error","status_checked_at":"2026-03-12T14:09:33.793Z","response_time":114,"last_error":"SSL_read: 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":["angularjs","apache","bootstrap","docker","highcharts","solr-client","springboot2"],"created_at":"2025-12-17T04:31:47.894Z","updated_at":"2026-03-12T18:55:11.820Z","avatar_url":"https://github.com/mechevarria.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"bill-manager\n=============\n\nAngular client and Springboot api application to manage monthly expenses/income with a MySQL backend and search provided by Solr\n\n## Installation Steps\n\n* Install [docker-ce](https://docs.docker.com/install/linux/docker-ce/ubuntu/)\n\n* Make sure the user that will run docker is in the docker group. In this example, the username is `vmuser`\n\n```bash\nsudo usermod vmuser -a -G docker\n```\n\n### Install node.js\n\n```bash\ncurl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -\n\nsudo apt-get install -y nodejs\n```\n\n### Setup MySQL docker\n\n* Test that mysql docker will work with\n\n```bash\nmysql/docker-mysql.sh\n```\n\n* After making sure the container runs you can stop the container with \n```bash\ndocker stop mysql\n```\n\n#### Optional: Backup data from MySQL\n\n* Run the export script\n\n```bash\n./mysql/db-backup.sh\n```\n\n* `billDb.sql.gz` will be located in the directory above `bill-manager`\n\n#### Optional: Restore data from MySQL Export\n\n* Make sure `billDb.sql.gz` is located in the directory above `bill-manager`\n\n* Run the restore script\n\n```bash\n./mysql/db-restore.sh\n```\n\n\n### Install Solr docker Service\n\n* Configure the container core directory with \n```bash\n./solr/solr-configure.sh\n```\n\n* Run the Solr container with\n```bash\n./solr/docker-solr.sh\n```\n\n#### Solr Configuration Details, FYI\n\n* The `/opt/solr/server/solr/mycores/bills/conf/solrconfig.xml` has the code added to the **config** element\n\n```xml\n\u003crequestHandler name=\"/dataimport\" class=\"org.apache.solr.handler.dataimport.DataImportHandler\"\u003e\n  \u003clst name=\"defaults\"\u003e\n    \u003cstr name=\"config\"\u003edata-config.xml\u003c/str\u003e\n  \u003c/lst\u003e\n\u003c/requestHandler\u003e\n```\n\n* The `/opt/solr/server/solr/mycores/bills/conf/managed-schema` has after this line\n\n```xml\n\u003cfield name=\"_text_\" type=\"text_general\" indexed=\"true\" stored=\"false\" multiValued=\"true\" /\u003e\n```\n\n* The following block added\n\n```xml\n\u003c!-- ********** custom fields for bill-manager ********** --\u003e\n\u003cfield name=\"db_id\" type=\"string\" indexed=\"true\" stored=\"true\" /\u003e\n\u003cfield name=\"item_date\" type=\"pdate\" indexed=\"true\" stored=\"true\" /\u003e\n\u003cfield name=\"author\" type=\"string\" indexed=\"true\" stored=\"true\" /\u003e\n\u003cfield name=\"description\" type=\"text_general\" indexed=\"true\" stored=\"true\" /\u003e\n\u003cfield name=\"price\" type=\"pfloat\" indexed=\"true\" stored=\"true\" /\u003e\n\u003cfield name=\"last_modified\" type=\"pdate\" indexed=\"true\" stored=\"true\" /\u003e\n\u003cfield name=\"category\" type=\"string\" indexed=\"true\" stored=\"true\" /\u003e\n \n\u003ccopyField source=\"author\" dest=\"_text_\" /\u003e\n\u003ccopyField source=\"description\" dest=\"_text_\" /\u003e\n\u003ccopyField source=\"category\" dest=\"_text_\" /\u003e\n\u003c!-- ********** end custom fields ********** --\u003e\n```\n\n### Deploy Springboot docker API\n\n* Inside the **springboot-api** directory, build a container with\n```bash\n./docker-build.sh\n```\n\n* Verify the containers runs with\n```bash\n./docker-springboot.sh\n```\n\n#### Local Springboot development\n* Use the following script to run locally against a mysql docker container\n\n```bash\n./local-run.sh\n```\n\n### Setup nginx docker service\n\n* Build client project\n\n```bash\nnpm install\nnpx bower install\nnpx grunt build\n```\n\n* Build the nginx container from the client build output in `./client/dist`\n\n```bash\nclient/docker-build.sh\n```\n\n* Make sure the client runs with\n```bash\nclient/docker-nginx.sh\n```\n\n* The application will be running on [http://localhost](http://localhost)\n\n#### AngularJS client development\n\n* Inside the `client` directory run\n```bash\nnpx grunt serve\n```\n\n* A livereload development server will be available at [http://localhost:9000](http://localhost:9000)\n\n## Run all the containers\n* After configuring and verifying the containers run, use the following scripts to run and stop all the containers\n```bash\n./docker-run-all.sh\n./docker-stop-all.sh\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmechevarria%2Fbill-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmechevarria%2Fbill-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmechevarria%2Fbill-manager/lists"}