Skip to content

okTurtles/group-income

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2,468 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Group Income (Simple Edition)

Ask DeepWiki

About

Group Income is voluntary, decentralized, end-to-end encrypted basic income for you and your friends.

Getting Started

  1. Install Node.js (v20 minimum required)
  2. Install Grunt: npm install -g grunt-cli
  3. Clone this repo (or a fork of it if you plan on contributing) and cd into it.
  4. Install dependencies: npm install
  5. Now try out the dev workflow.
  • πŸ‘©β€πŸŽ¨ Check out how Group Income will feel like by taking a look at the design files on Figma

Contributing

We use standard for the code style and Github project boards for efficient project management.

js-standard-style

We are continually improving the user experience for everyone, and applying the relevant accessibility standards. We will be conformant with WCAG 2.0 Level AA and trying our best to reach Level AAA in some areas of the application.

Level Double-A conformance, W3C WAI Web Content Accessibility Guidelines 2.0

Read first

Basic workflow

To get started with development, follow the steps in Getting Started first.

Run all servers + watch files for changes

grunt dev

Create a tunnel to share access over the Internet:

Try ngrok (recommended), tunnl.gg, localhost.run or serveo instead, e.g.:

$ grunt dev
# then, in another terminal:
$ ngrok http http://localhost:8000
# or:
$ ssh -R 80:localhost:8000 nokey@localhost.run

Clean up files in dist/:

grunt clean

Run tests:

NOTE: You may need to first install Cypress using ./node_modules/.bin/cypress install

# 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"

This project is tested with BrowserStack.

Using Docker for extra security

You can run commands in a Docker container by using npm run docker -- <cmd> instead.

For example:

npm run docker -- npm install
npm run docker -- grunt dev
npm run docker -- grunt test --skipbuild

For details, see: Docker.md

Troubleshooting

If you run into any errors during the setup, try the suggestions in Troubleshooting.md.

Try also: Ask DeepWiki

Making a release

Pin a new version of contracts

Contract versions are tied to the app version in package.json. grunt pin reads that value, writes it to appVersion in chelonia.json, then pins the selected contracts to that version. Because the version is derived from package.json, it is not passed on the command line.

# Print usage (also shows current vs. target appVersion):
$ grunt pin

# Bump appVersion in chelonia.json and pin every contract to it:
$ NODE_ENV=production grunt pin --all

# Bump appVersion only, without pinning any contract
# (useful when releasing an app update with no contract changes):
$ NODE_ENV=production grunt pin --none

# Bump appVersion and pin only the named contract:
$ NODE_ENV=production grunt pin:chatroom

Add --overwrite to replace an already-pinned version on disk.

Build the app for distribution

# Update the version in package.json
$ npm install # update package-lock.json
$ git add . && git commit -m "<commit message>"
$ git tag -u '<email>' v1.1.0  # create the tag before calling grunt deploy
$ ./scripts/dist.sh

Donating

Donations to the okTurtles Foundation support the development of Group Income and related projects.

License

AGPL-3.0. See LICENSE for license details and CONTRIBUTING.md for the contribution policy.

About

A decentralized and private (end-to-end encrypted) financial safety net for you and your friends.

Topics

Resources

License

Contributing

Stars

350 stars

Watchers

23 watching

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors