GithubHelp home page GithubHelp logo

simonadams1 / ethical-commerce Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 497 KB

Buy from businesses that align with your values

License: GNU General Public License v3.0

Kotlin 78.23% CSS 0.97% JavaScript 1.18% HTML 19.62%
buycott boycott

ethical-commerce's Introduction

Ethical commerce

Buy from businesses that align with your values.

Features

  • Add causes you support or oppose to your account and see which businesses are closest or furthest from your values.
  • Create lists of causes and share with others.
  • Enter actions taken by businesses and link them to causes.
  • Search product categories like shoes or computer keyboards and find companies that manufacture/sell it rated by the level of support or opposition to causes added in your account.

How it works

The main data source for evaluating a businesses is a community managed database of actions taken by a businesses.

For example, Airbnb is running an "open homes" program to help provide housing for refugees.

After we have an action taken by a business in the database, we need to add categories for the action to be useful. We could say that the business offers indirect financial support to refugees in this case, and it is a supporting action towards refugees.

Now users can add "refugees" cause to their account and choose one of the following:

  • support businesses that support refugees
  • oppose businesses that support refugees
  • support businesses that oppose refugees
  • oppose businesses that oppose refugees

Neutrality

Not everyone agrees even on the same events. What might be called a humanitarian intervention in a country by one group of people, could be viewed as occupation by another.

The platform allows users to create personal dictionaries that will overwrite the names of causes for their accounts. Dictionaries can also be shared.

Decentralization and moderation

The platform is open source and decentralized. Anyone can create their own instance and synchronize the database of actions taken by businesses and causes with other instances. Every instance has their own administrators who make sure the data submitted by the community is accurate. Every instance can choose which other instances to synchronize with and whether to trust their moderators or to review the content before importing.

Privacy

All user accounts are anonymous and no personal data is collected.

Development

For building instructions, see DEVELOPMENT.md

Support the project

Bitcoin: bc1q2mrwxxvs9pm5wz80p76m4y2h98qfmcuxe8ej02

ethical-commerce's People

Contributors

simonadams1 avatar

Stargazers

 avatar

Watchers

 avatar

ethical-commerce's Issues

Create company statistics page

  • Create a page that would display a timeline of claims entered for a company.
  • Display a ratio on commonly supported causes between a company and a user viewing the page.

Implement ingesting data from other sites

Importers would allow to ingest publicly available data as claims.

Here's an example of a page that could be ingested: ceoaction.com/actions
It should be possible to add multiple importers for different sites using the same system and by providing site-specific instructions on how to extract the data.

Notify users about changes to groups

Users should have an option to subscribe to group updates. If valuations are added or removed from a group, users would then receive in-site notifications with a link to a page listing all changes.

Implement database migrations

Consider flyway

If we add new tables or columns to the database, Exposed SQL utilities will generate missing tables/columns on application start.

It won't however be able to update data types or rename/remove columns. For this, we need a migration tool. One option could be to simply have a folder with SQL files and run them manually every time after getting new code, but it would be much better to automate it.

Archive referenced web pages

When claims are submitted, web page that is linked as a reference to a claim should be archived in order to have a permanent record.

Fix pagination bug in claims page

In claims page, either all claims are displayed or only those filtered by actor. When computing pagination information, count of all items is passed as an argument. When the view is filtered, the number of filtered items should be used.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.