"When someone does you a big favor, don't pay it back... PAY IT FORWARD!" Change the world through a "favors chain". A person must perform or help three people in a disinterested way. They also have to help three others and so on, until a favors chain, that improves the lives of citizens, is spread around the world.
Boonafide is a social webapp to exchange favors. You can create favors (offer or need), specifying day and time, and other users will ask you for a favor or offer you what's needed. When you do 3 favors, them became into 1 boon (app coin). With the boons you can ask for favors.
- Person X does one favor to 3 people.
- Those 3 people verify the favor.
- Person X gain 1 boon.
- Person X can donate the boon to the IBO (initial boon offering) or ask for a favor to other person.
- Person X and those others, who received a favor, do infinite altruistic gestures.
- Favors transit (cession of boon).
- Ask for favors (donation of 1 boon to ibo).
- Offer favors (you receive 1/3 favors to gain 1 boon).
- Buy or sell favors or boons.
- Change 1 favor for several favors.
- Change 1 favor for several boons.
- Change 1 boon for several favors.
- Unlimited favors. 3 favors = 1 boon.
- Individual boon and favor creation, with receiver verification.
- Non speculative coins or favors. [1 favor === 1 favor. 1 boon === 1 boon.] (No matter the value of the good or service received)
- Non-fractionable coin. 1 boon === 1 boon.
- Non censurable, nobody can prevent the chain.
- Pseudoanonymous, no real identification is required.
- Non interchangeable boons or favors.
- Irreversible favors. Favor can not be modified.
- Obligatory. Favor offered, favor granted.
Technologies used in development: React, Redux, MongoDB, Express, Node.js, JavaScript, ES6, HTML5, CSS3, SASS and @emotion.
This webapp is based on a JavaScript environment and Mongo database. In order to run the project the following requirements must be installed:
- node.js (v14.20.0)
- npm (6.14.13)
Copy repository:
git clone https://github.com/aemartos/boonafide
$ cd client
$ npm i
$ npm start
$ cd server
$ npm i
$ npm run dev
To create the build for the entire application, we need to run the following command:
$ docker-compose build
To start the multi-container system using the following simple command:
$ docker-compose up
App | URL |
---|---|
Client App | http://localhost:3000 |
Backend Server | http://localhost:3001 |
MongoDB | http://localhost:27017 |
We can inspect running services using the following command:
$ docker-compose ps
To dump the logs of all the running services:
$ docker-compose logs
To stop all the services:
$ docker-compose stop
To bring everything down and remove the containers entirely, with the data volume of the services:
$ docker-compose down --volumes
You have to create a .env
file, where you must specify this variables:
Key | Description |
---|---|
DBURL | database URL (mongodb://mongo:27017/test with docker-compose) |
CLOUDINARY_NAME | the name of your Cloudinary account. Used to build the public URL for the media assets. |
CLOUDINARY_KEY | used together with the API secret to communicate with the Cloudinary API and sign requests. |
CLOUDINARY_SECRET | used together with the API key to communicate with the Cloudinary API and sign requests. |
Cloudinary hosting configuration link.
Boonafide is available under MIT License. boonafide©2019 by anæstrada.