/sonic

A website to track some sketchy practices of your favorite companies and find out who owns them.

Primary LanguageVueGNU Affero General Public License v3.0AGPL-3.0

sonic - a relational database visualization

wut

A web app that displays relationships between entities and data points about those entities - for example, if A is a parent of B and C, and C has some data, you will see C's data point on B's page as a related entity, on A's page as a child entity, and so on. Admin users can add entities, link them, add data points, and assign categories to both the entities and data points. Users can search for entities, browse entities and data points by name and category, and view graphs showing the relationships between entities.

This web app was developed for sonic - an unethical consumption database, a website that shows corporations and brands, their often hidden relationships, and questionable behaviors from them (i.e. companies that use child labor, CEOs assaulting employees).

This code can be used for any relational data, but there is some terminology directly tied to the "corporations and their issues" relationship, most of which is in the src/utils/lang.js file. The logic itself is largely agnostic to the intended use.

license

The source code is licensed with the GNU Affero General Public License and all text in the code and database are licensed with the CC BY-SA 4.0 License. All corporate logos belong to their respective owners, and the "THERE IS NO SUCH THING AS ETHICAL CONSUMPTION UNDER CAPITALISM" image is from a meme - source currently unknown.

why

I got tired of seeing #hip new products from #trendy new companies only to find out they were subsidiaries of garbage corporations.

requirements

The frontend is a VueJS website. The backend is written in PHP and interacts with a MySQL/MariaDB database.

dependencies

The following node packages are used:

As are the following dev dependencies:

For the webservice, the following PHP library is used:

building

setup

npm install

compile for development

npm run serve

compile and minify for production

npm run build

lint and fix files

npm run lint

custom configuration

See Configuration Reference.

want to make changes?

cool. do the forking and submitting or whatever. if it's good stuff I'll probably merge it up. if your issue is with the data itself on the live site or in the data.sql file here, please use the Feedback page or contact me through one of the methods described there.