socialincome-san / public

Fighting global poverty with the help of everyday people and your coding skills. Public repository of the NGO and global initiative Social Income.

Home Page:https://socialincome.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

  #Tech4Good   #OpenSource   #Solidarity

Social Income Logo

Social.Income.explained.mp4

Social Income is a radically simple solution in the fight against poverty. The global open-source initiative converts donations into an unconditional basic income, which is sent directly to the mobile phones of people living in poverty in the Global South.

SDG Icon SDG 1    SDG Icon SDG 10

OSS Tools by Social Income

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

Code Contributions

Basic Steps to Contribute

  1. 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

  2. Setup the basic development environment (see below)

  3. Clone the repo and work on it

  4. Make a PR and wait for review - it will be merged by team if approved without comment

  5. Your code is now merged into main branch and deployed on the staging environment (Admin Tool / Website)

  6. Your code is then released on the production environment with the next release

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.

Basic Development Setup

We are mainly leveraging the following tools:

1. Install the dependencies

Make sure you are using Node.js 18. If you are using Homebrew, you can install it with brew install node@18 and follow this guide to switch between different versions of Node.js if need be.

npm install

2. Start environment

Initiate development environments for specific tools as needed.

  • Always start the Firebase emulator first with npm run firebase:serve — console dashboard is available at localhost:4000.
  • To start the Admin Tool, run npm run admin:serve and open localhost:3000.
  • To start the Website, run npm run website:serve and open localhost:3001.
  • To start the Storybook, run npm run ui:serve and open localhost:6006. (currently broken)

The package.json file gives you a good overview of the available commands. For more information on the development environment see table above. No production credentials are needed for local development.

3. Developer Logins

Developer Login for Admin Tool

Localhost Admin Tool Login (Link)

Choose "Sign in with Google" and select the listed "Admin (admin@socialincome.org)" account.

Staging Admin Tool Login (Link)

Contact the dev team (dev@socialincome.org) which can assign you access rights to login.

Production Admin Tool Login (Link)

Only selected people from the SI team have access.

Developer Login for Website (Donor Dashboard)

Localhost Website Login (Link)

  1. Go to the Login page and select
  2. Sign in with username test@test.org and password test@test.org

Staging Website Login (Link)

To create a donor account in the staging environment, proceed through the donation process. Utilize the Stripe test card (4242 4242 4242 4242) for making a test donation.

Production Website Login (Link)

Only actual donors have accounts and can log in. Consider making a (symbolic) donation to create your own account.

Data Seed

An initial set of data is imported into the Firebase emulators during startup of the Admin Tool. You can add, delete or amend data directly in your local Admin Tool (localhost:3000) or in your local Firestore Admin Interface (localhost:4000). After you have made changes, you can export the data to the seed folder with npm run firebase:export.

Format Code

We are using Prettier to format the code:

npm run format-code

Deployments

Staging deployments: 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: Deployments are made by core developers via GitHub releases. Use "release-YYYY-MM-DD" for the release name (example:release-2021-02-27). For multiple releases on the same day, append ".2", ".3", etc. (example:release-2021-02-27.2).

Backups

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. To restore the database you can import the most recent folder directly from the social-income-prod bucket.

Bugs & Feature Requests

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.

Financial Contributions

Donate 1 Percent of Your Income

Become a contributor of Social Income (tax-deductible in Switzerland).

Sponsor Dev Community

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 (NGO)

Non-Profit Organization

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.

Radical Transparency

We believe that transparency builds trust and trust builds solidarity. This is why we disclose our finances to the public.

Open Source Community

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:

Contributors

Software and IP Contributions

We receive in-kind donations from Google Nonprofit, GitHub, Codemagic, Linktree, Twilio, algolia, JetBrains, 1Password and Lineto. Our tools also leverage other open-source technologies, including solutions like FireCMS, Storybook and Tailwind CSS.

Licensing Information

This project is licensed under MIT, with the exception of the Unica77 font, which is exclusively licensed to Social Income.

About

Fighting global poverty with the help of everyday people and your coding skills. Public repository of the NGO and global initiative Social Income.

https://socialincome.org

License:Other


Languages

Language:TypeScript 70.3%Language:Dart 25.4%Language:Handlebars 3.3%Language:CSS 0.4%Language:JavaScript 0.2%Language:Ruby 0.1%Language:HTML 0.1%Language:Shell 0.1%Language:Swift 0.0%Language:Kotlin 0.0%Language:Objective-C 0.0%