Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/okTurtles/group-income
A decentralized and private (end-to-end encrypted) financial safety net for you and your friends.
https://github.com/okTurtles/group-income
basic-income basicincome end-to-end-encryption vbi voluntary-basic-income
Last synced: 3 months ago
JSON representation
A decentralized and private (end-to-end encrypted) financial safety net for you and your friends.
- Host: GitHub
- URL: https://github.com/okTurtles/group-income
- Owner: okTurtles
- License: agpl-3.0
- Created: 2016-03-25T01:22:51.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T17:30:45.000Z (3 months ago)
- Last Synced: 2024-10-29T18:55:02.044Z (3 months ago)
- Topics: basic-income, basicincome, end-to-end-encryption, vbi, voluntary-basic-income
- Language: JavaScript
- Homepage: https://groupincome.org
- Size: 19.3 MB
- Stars: 331
- Watchers: 26
- Forks: 44
- Open Issues: 297
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
## About
[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.
## Getting Started
1. Install [Node.js](https://nodejs.org)
2. Install [Grunt](https://github.com/gruntjs/grunt): `npm install -g grunt-cli`
3. Clone this repo (or a fork of it if you plan on [contributing](#contributing)) and `cd` into it.
4. Install dependencies: `npm install`
5. Now try out the [dev workflow](#basic-workflow).
- 👩🎨 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)## Contributing
We 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.
[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)
We 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.
#### Read first
- __[:book: CONTRIBUTING.md](CONTRIBUTING.md) (required reading to send a PR!)__
- [:book: Getting Started — Modern frontend concepts & project overview](docs/Getting-Started-frontend.md)
- [:book: Style Guide — Our development guidelines](docs/Style-Guide.md)
- [:book: Information Flow - walkthrough of the logical layer](docs/Information-Flow.md)#### Bounties
Some issues have [bounties](https://github.com/okTurtles/group-income/issues?q=is%3Aissue+is%3Aopen+label%3ANote%3ABounty) assigned to them.
- 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.
- Non-contractors can receive bounties by submitting PRs for them. If we approve and merge the PR, you get the bounty!
- 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)!Any open contractor positions are posted to: [Open Positions](https://groupincome.org/positions/)
#### Basic workflow
To get started with development, follow the steps in **[Getting Started](#getting-started)** first.
Run all servers + watch files for changes
```bash
grunt dev
```- If all went well you should be able to visit [http://localhost:3000](http://localhost:3000)
Create a tunnel to share access over the Internet:
```
grunt dev --tunnel
```> [!IMPORTANT]
> This service (localtunnel) doesn't seem to work anymore.
> Instead please try [localhost.run](https://localhost.run/) or [serveo](https://serveo.net/) instead, e.g.:
> ```
> $ grunt dev
> # then, in another terminal:
> $ ssh -R 80:localhost:8000 [email protected]
> ```Build the app for distribution
```bash
grunt deploy
```Clean up files in `dist/`
```bash
grunt clean
```Run tests.
**NOTE: You may need to first install Cypress using `./node_modules/.bin/cypress install`**
```bash
# all tests
grunt test# all tests while skipping build step
grunt test --skipbuild# unit tests only (always skips build)
grunt test:unit# show e2e tests (Cypress) live in a browser
grunt test --browser# run e2e tests (Cypress) in "open" mode
grunt test --browser=debug# Developing at the same time as writing E2E tests
grunt dev
# and in another terminal run Cypress in "open" mode
npm run cy:open# Run a specific Cypress spec against the running 'grunt dev' server:
npx cypress run -c 'baseUrl=http://localhost:8000' --spec "test/cypress/integration/group-chat.spec.js"
```#### Using Docker for extra security
You can run commands in a Docker container by using `npm run docker -- ` instead.
For example:
```bash
npm run docker -- npm install
npm run docker -- grunt dev
npm run docker -- grunt test --skipbuild
```For details, see: **[`Docker.md`](docs/Docker.md)**
## Troubleshooting
If 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).
## Donating
[Donations to the okTurtles Foundation](https://okturtles.org/donate/) support the development of Group Income and related projects.
## License
AGPL-3.0. See [`LICENSE`](LICENSE) for license details and [`CONTRIBUTING.md`](CONTRIBUTING.md) for the contribution policy.