{"id":25705795,"url":"https://github.com/namek/fundshare","last_synced_at":"2025-07-06T22:38:34.487Z","repository":{"id":74358966,"uuid":"154738773","full_name":"Namek/Fundshare","owner":"Namek","description":"💰 Web-hosted app for sharing expenses - my playground for Elm and F#","archived":false,"fork":false,"pushed_at":"2020-02-14T23:27:37.000Z","size":5673,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-30T10:13:54.840Z","etag":null,"topics":["elm"],"latest_commit_sha":null,"homepage":"","language":"Elm","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/Namek.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,"zenodo":null}},"created_at":"2018-10-25T21:17:19.000Z","updated_at":"2020-02-14T23:27:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"0fd21331-4c5c-4c35-a08e-388dfb7136a7","html_url":"https://github.com/Namek/Fundshare","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Namek/Fundshare","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Namek%2FFundshare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Namek%2FFundshare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Namek%2FFundshare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Namek%2FFundshare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Namek","download_url":"https://codeload.github.com/Namek/Fundshare/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Namek%2FFundshare/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263984988,"owners_count":23539769,"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":["elm"],"created_at":"2025-02-25T06:48:24.413Z","updated_at":"2025-07-06T22:38:34.477Z","avatar_url":"https://github.com/Namek.png","language":"Elm","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fundshare\n\nApp for sharing expenses to keep up with the current balance between people.\n\n![Fundshare](/docs/screencast.png \"How Fundshare looks\")\n\n# How to: Build and host\n\nA) Run application with a database using Docker Compose:\n\n1. Copy `Backend/AppConfig.fs__prod` to `Backend/AppConfig.fs`\n2. (optional) Copy `Frontend/src/elm/I18n/I18n.elm.template` to `Frontend/src/elm/I18n/I18n.elm`. Edit \"import\" in copied file to choose localization. Default is EUR.\n3. (optional) you may want to change ports in `docker-compose.yml`\n4. `docker-compose build`\n5. `docker-compose up -d`\n6. http://127.0.0.1:5000 should be available then.\n\nOR\n\nB) Run only the application (no Docker containers):\n\n1. Copy `AppConfig.fs__prod` to `AppConfig.fs` (for security, change `Auth.tokenEncryptionKey` and `Auth.passwordSalt`)\n2. (optional) Copy `Frontend/src/elm/I18n/I18n.elm.template` to `Frontend/src/elm/I18n/I18n.elm`. Edit \"import\" in copied file to choose localization. Default is EUR.\n3. Set `DB.host = 'host.docker.internal'` inside `AppConfig.fs`\n4. `docker build -t fundshare-app`\n5. `docker run -it -p 127.0.0.1:8080:5000 fundshare-app`\n6. http://127.0.0.1:8080 should be available then.\n\n\n## Database\n\n### Import\n\nTo run .sql file on database docker:\n\n`cat dump.sql | docker exec -i fundshare_db_1 psql -U postgres -d fundshare_prod`\n\n\n### Create backup\n\n``docker exec -t -u postgres fundshare_db_1 pg_dump fundshare_prod -c \u003e /fundshare_backup_dump_`date +%d-%m-%Y\"_\"%H_%M_%S`.sql``\n\n\n# How to: Development\n\n## Frontend\n\n* nodejs, npm\n* [dotnet-script](https://github.com/filipw/dotnet-script)\n\n```\nnpm i -g npx\nnpm i -g @dillonkearns/elm-graphql\ndotnet tool install -g dotnet-script\n```\n\nNow you can pick some options:\n\n * `build` frontend\n * `watch` for changes to rebuild\n * rebuild frontend `api`, i.e. generate Elm code for GraphQL API based on `graphql_schema.json` (which is generated by backend on start if specific flag is configured in `AppConfig.fs`)\n * `debug` to provide Elm's messaging debugger\n \nUsually it goes: `dotnet script build.csx -- build debug watch`.\nWhen GraphQL API is changed in the backend code then run `dotnet script build.csx -- api build`.\n\n## Backend\n\nEnsure the [.NET Core 2.1 SDK](https://www.microsoft.com/net/download) is installed.\n\n* To build and publish an executable:\n\n    `cd Backend \u0026\u0026 dotnet publish`\n\n* While developing, you can simply open `Backend.sln` with Visual Studio 2017 and run in debug mode.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamek%2Ffundshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnamek%2Ffundshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamek%2Ffundshare/lists"}