{"id":13630937,"url":"https://github.com/okTurtles/group-income","last_synced_at":"2025-04-17T17:32:15.519Z","repository":{"id":37359105,"uuid":"54685234","full_name":"okTurtles/group-income","owner":"okTurtles","description":"A decentralized and private (end-to-end encrypted) financial safety net for you and your friends.","archived":false,"fork":false,"pushed_at":"2025-04-17T00:26:25.000Z","size":22030,"stargazers_count":337,"open_issues_count":350,"forks_count":44,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-04-17T00:58:36.725Z","etag":null,"topics":["basic-income","basicincome","end-to-end-encryption","vbi","voluntary-basic-income"],"latest_commit_sha":null,"homepage":"https://groupincome.org","language":"JavaScript","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/okTurtles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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,"zenodo":null},"funding":{"github":"okTurtles","custom":"https://okturtles.org/donate"}},"created_at":"2016-03-25T01:22:51.000Z","updated_at":"2025-04-16T17:50:36.000Z","dependencies_parsed_at":"2023-10-14T17:38:22.193Z","dependency_job_id":"5e89a9dd-5e9e-4462-863e-f54e2a73c87c","html_url":"https://github.com/okTurtles/group-income","commit_stats":null,"previous_names":["okturtles/group-income-simple"],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okTurtles%2Fgroup-income","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okTurtles%2Fgroup-income/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okTurtles%2Fgroup-income/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okTurtles%2Fgroup-income/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/okTurtles","download_url":"https://codeload.github.com/okTurtles/group-income/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249360046,"owners_count":21257162,"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":["basic-income","basicincome","end-to-end-encryption","vbi","voluntary-basic-income"],"created_at":"2024-08-01T22:02:03.902Z","updated_at":"2025-04-17T17:32:10.504Z","avatar_url":"https://github.com/okTurtles.png","language":"JavaScript","funding_links":["https://github.com/sponsors/okTurtles","https://okturtles.org/donate"],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://groupincome.org\"\u003e\u003cimg width=\"400px\" src=\"frontend/assets/images/logo-transparent.png\" alt=\"Group Income (Simple Edition)\"\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca title=\"Slack\" href=\"https://join.slack.com/t/okturtles/shared_invite/zt-10jmpfgxj-tXQ1MKW7t8qqdyY6fB7uyQ\"\u003e\u003cimg src=\"https://img.shields.io/badge/slack-%23groupincome-green\"\u003e\u003c/a\u003e\n    \u003ca title=\"Build Status\" href=\"https://app.travis-ci.com/github/okTurtles/group-income\"\u003e\u003cimg src=\"https://app.travis-ci.com/okTurtles/group-income.svg?branch=master\"\u003e\u003c/a\u003e\n    \u003ca title=\"Visual Source\" href=\"https://www.visualsource.net/repo/github.com/okTurtles/group-income\"\u003e\u003cimg src=\"https://img.shields.io/badge/visual-source-orange\"\u003e\u003c/a\u003e\n    \u003ca title=\"Donate\" href=\"https://okturtles.org/donate/\"\u003e\u003cimg src=\"https://img.shields.io/badge/donate%20-%3D%E2%9D%A4-blue.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## About\n\n[Group Income](https://groupincome.org/) is voluntary, decentralized, end-to-end encrypted [basic income](https://search.brave.com/search?q=basic+income) for you and your friends.\n\n## Getting Started\n\n1. Install [Node.js](https://nodejs.org)\n2. Install [Grunt](https://github.com/gruntjs/grunt): `npm install -g grunt-cli`\n3. Clone this repo (or a fork of it if you plan on [contributing](#contributing)) and `cd` into it.\n4. Install dependencies: `npm install`\n5. Now try out the [dev workflow](#basic-workflow).\n- 👩‍🎨 Check out how Group Income will feel like by taking a look at the [design files on Figma](https://www.figma.com/file/mxGadAHfkWH6qApebQvcdN/Group-Income-2.0?node-id=1204%3A0)\n\n## Contributing\n\nWe use [standard](https://github.com/feross/standard) for the code style and [Github project boards](https://help.github.com/articles/about-project-boards/) for efficient project management.\n\n[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)\n\nWe are continually improving the user experience for everyone, and applying the relevant accessibility standards. We will be conformant with [WCAG 2.0](https://www.w3.org/WAI/standards-guidelines/wcag/) Level AA and trying our best to reach Level AAA in some areas of the application.\n\n\u003ca href=\"https://www.w3.org/WAI/WCAG2AA-Conformance\"\n  title=\"Explanation of WCAG 2.0 Level Double-A Conformance\"\u003e\n  \u003cimg height=\"32\" width=\"88\"\n    src=\"https://www.w3.org/WAI/wcag2AA\"\n    alt=\"Level Double-A conformance, W3C WAI Web Content Accessibility Guidelines 2.0\"\u003e\n\u003c/a\u003e\n\n\n#### Read first\n\n- __[:book: CONTRIBUTING.md](CONTRIBUTING.md) (required reading to send a PR!)__\n- [:book: Getting Started — Modern frontend concepts \u0026 project overview](docs/Getting-Started-frontend.md)\n- [:book: Style Guide — Our development guidelines](docs/Style-Guide.md)\n- [:book: Information Flow - walkthrough of the logical layer](docs/Information-Flow.md)\n\n#### Bounties\n\nSome issues have [bounties](https://github.com/okTurtles/group-income/issues?q=is%3Aissue+is%3Aopen+label%3ANote%3ABounty) assigned to them.\n\n- Anyone can post a bounty by donating to this project and letting us know which issue you'd like the bounty to be applied to.\n- Non-contractors can receive bounties by submitting PRs for them. If we approve and merge the PR, you get the bounty!\n- If there's an issue you'd like okTurtles to prioritize by posting a bounty to it, feel free to let us know via [Slack](https://join.slack.com/t/okturtles/shared_invite/zt-10jmpfgxj-tXQ1MKW7t8qqdyY6fB7uyQ)!\n\nAny open contractor positions are posted to: [Open Positions](https://groupincome.org/positions/)\n\n#### Basic workflow\n\nTo get started with development, follow the steps in **[Getting Started](#getting-started)** first.\n\nRun all servers + watch files for changes\n\n```bash\ngrunt dev\n```\n\n- If all went well you should be able to visit [http://localhost:3000](http://localhost:3000)\n\nCreate a tunnel to share access over the Internet:\n\n```\ngrunt dev --tunnel\n```\n\n\u003e [!IMPORTANT]\n\u003e This service (localtunnel) doesn't seem to work anymore.\n\u003e Instead please try [localhost.run](https://localhost.run/) or [serveo](https://serveo.net/) instead, e.g.:\n\u003e ```\n\u003e $ grunt dev\n\u003e # then, in another terminal:\n\u003e $ ssh -R 80:localhost:8000 nokey@localhost.run\n\u003e ```\n\nBuild the app for distribution\n\n```bash\ngrunt deploy\n```\n\nClean up files in `dist/`\n\n```bash\ngrunt clean\n```\n\nRun tests.\n\n**NOTE: You may need to first install Cypress using `./node_modules/.bin/cypress install`**\n\n```bash\n# all tests\ngrunt test\n\n# all tests while skipping build step\ngrunt test --skipbuild\n\n# unit tests only (always skips build)\ngrunt test:unit\n\n# show e2e tests (Cypress) live in a browser\ngrunt test --browser\n\n# run e2e tests (Cypress) in \"open\" mode\ngrunt test --browser=debug\n\n# Developing at the same time as writing E2E tests\ngrunt dev\n# and in another terminal run Cypress in \"open\" mode\nnpm run cy:open\n\n# Run a specific Cypress spec against the running 'grunt dev' server:\nnpx cypress run -c 'baseUrl=http://localhost:8000' --spec \"test/cypress/integration/group-chat.spec.js\"\n```\n\n#### Using Docker for extra security\n\nYou can run commands in a Docker container by using `npm run docker -- \u003ccmd\u003e` instead.\n\nFor example:\n\n```bash\nnpm run docker -- npm install\nnpm run docker -- grunt dev\nnpm run docker -- grunt test --skipbuild\n```\n\nFor details, see: **[`Docker.md`](docs/Docker.md)**\n\n## Troubleshooting\n\nIf you run into any errors [during the setup](docs/Getting-Started-frontend.md#how-do-i-get-set-up--just-run-the-site), try the suggestions in [`Troubleshooting.md`](docs/Troubleshooting.md).\n\n## Donating\n\n[Donations to the okTurtles Foundation](https://okturtles.org/donate/) support the development of Group Income and related projects.\n\n## License\n\nAGPL-3.0. See [`LICENSE`](LICENSE) for license details and [`CONTRIBUTING.md`](CONTRIBUTING.md) for the contribution policy.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FokTurtles%2Fgroup-income","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FokTurtles%2Fgroup-income","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FokTurtles%2Fgroup-income/lists"}