https://user-images.githubusercontent.com/6095849/191377786-10cdb4a1-5b25-4512-ade9-2cc0e153d947.mp4
Admin Tool | Website | Mobile App | |
---|---|---|---|
Purpose | Make it simple to manage payments, contributors and recipients | Raising donations and inform the public | Make it simple for recipients to manage payments and surveys |
Instructions | Readme | Readme | Readme / Contributing |
Localhost | localhost:3000 / 4000 | localhost:3001 | – |
Staging | staging-admin.socialincome.org | staging.socialincome.org | Testflight / App Distribution |
Production | admin.socialincome.org | socialincome.org | iOS / Android |
Issues | Open issues | Open issues | Open issues |
Choose an issue and leave a comment that you'd like to work on it
(upon we assign it to you) ↗
All issues
↗
Help wanted
↗
Good first issues
Setup the basic development environment ↓
Setup
Clone the repo and work on it ↓
Developing
Create a PR and wait for it to be reviewed
If approved, the PR will be merged into the main
branch, first on
the staging and subsequently on production ↓
Deployments
Frontend developers: You can also develop UI components with Tailwind CSS and shadcn/ui independent of the website (Readme / Contributing). The components are all collected in our Storybook.
We are mainly leveraging the following tools:
Node.js: brew install node@18
(Homebrew). Make sure you are using
Node.js 18. Follow
this
guide to switch between different versions of Node.js if need be.
java: brew install openjdk
(Homebrew). See also troubleshooting
below.
npm install
Initiate development environments for specific tools as needed (see table above).
npm run firebase:serve
— console dashboard is available at
localhost:4000.npm run admin:serve
and open
localhost:3000.npm run website:serve
and open
localhost:3001.npm run ui:serve
and open
localhost:6006. (currently broken)The package.json file gives you a good overview of the available commands.
No production credentials are needed for local development.
An initial dataset is imported into the Firebase emulators at startup.
You have the flexibility to add, delete, or modify data directly through
your Admin Tool or the
Firestore Admin Interface
locally. After making any changes, you can export the updated data to
the seed folder using the command npm run firebase:export
.
We are using Prettier to format the code:
npm run format-code
.
Staging: PRs merged into main
are automatically deployed to
staging (Admin Tool /
Website) upon core developer
approval. Check Github Actions for details.
Experienced contributors can deploy directly
without approval.
Production: Deployments are made by core developers via GitHub releases.
We have a function which triggers hourly backups of our production firestore database. The exports are saved to the social-income-prod bucket with a retention period of 30 days.
You can report an issue or request a feature on our issue page. If you want to report a vulnareablity please refer to our security policy.
Become a contributor of Social Income (tax-deductible in Switzerland).
Become a sponsor and help ensure the development of open source software for more equality and less poverty. Donations through the GitHub Sponsor program are used for building a strong developer community.
Social Income is a non-profit association (CHE-289.611.695) based in Zurich, Switzerland. Connect with us X, Insta, LinkedIn, Facebook or by email.
We believe that transparency builds trust and trust builds solidarity. This is why we disclose our finances to the public.
Open Source isn’t an exclusive club. It’s made by people just like you. These individuals, amongst many others, have made significant contributions to Social Income's success:
We receive in-kind donations from Google Nonprofit, GitHub, Codemagic, Linktree, Twilio, Algolia, JetBrains, 1Password, Mux, Sentry and Lineto. Our tools also leverage other open-source technologies, including solutions like FireCMS, Storybook and Tailwind CSS.
This project is licensed under MIT, with the exception of the Unica77 font, which is exclusively licensed to Social Income.