- Givplus is a web-based donation platform that utilizes economic theories in maximizing the value of your giving.
- We devised our own economic model, which takes into account the Purchasing Power Parity (PPP) of each nations and changing exchange rates. Our goal is to make every penny worth its value because your dollar is always worth more somewhere.
- Givplus is specially targeted towards: individuals who think that small money wouldnβt make much of a difference, those who are willing but require strong motivation and incentives to take real action, and charity organizations that would like to reach out to more people who are motivated to make a change.
- Give more, Givplus!
Weighted Moving Averages
Strength of one currency against another changes all the time. To quantify how much the rate has changed, we need some standard to compare with: for example, we can compare today's rate to the rate one month ago. However, this will not accurately reflect the long-term trends of exchange rate, which is also meaningful to us. Therefore, we devised a metric called weighted moving averages for fair evaluation of how well your currency is doing.
- SMA means simple moving average, which means an average value over the past i days.
- SMA(1) denotes today's rate.
-
i is from the list of chosen values, [5, 20, 60, 120, 200], to equally represent both short-term and long-term trend in exchange rates.
-
w is a weight given to each differential
$SMA(i) - SMA(1)$ . Currently,$w_i$ = [0.1333, 0.3333, 0.2, 0.2, 0.1334], where the sum of$w_i$ equals 1.
Forex score
Forex score indicates the percent difference between WMA and today's rate, with the unit of %.
PPP
Purchasing Power Parity (PPP) is a commonly used economic indicator for price levels in each country. PPP is effectively the ratio of the price of a basket of goods at one location divided by the price of the basket of goods at a different location. PPP itself is never reported officialy by the government but via indirect way such as GDP per capita (PPP). Since GDP per capita and GDP per capita (PPP) are readily available online, we hereby indirectly calculate PPP as follows:
Givplus score
Givplus score is computed from Forex score
and PPP
, with an arbitrary weight multiplied to each parameter. Currently, our model is as follows:
Coffee index
Coffee index obtained by a simple ratio between PPP at your country A and PPP at another country B.
Detailed Python codes can be found here.
- Techinal Stacks
- π Installation
- Server Maintanence
- Endpoints
- File Structure
- Future Plans
- Contributors
- Backend : Django
- Frontend : React.js
- Database : Postgresql
- Deployment : Google Cloud Platform (Compute Engine), Nginx
pip install virtualenv
virutalenv .venv
. .venv/bin/activate
pip install virtualenv
virtualenv .venv
cd .venv/Scripts
activate
pip install -r requirements.txt
cd backend
nano .env
##################################################
EMAIL_USER = _email_
EMAIL_PASS = _password_
EMAIL_FROM = _email_
SECRET_KEY = _secretkey_
DATABASE_NAME = _db_
DATABASE_USER = _dbusername_
DATABASE_PASSWORD = _password_
DATABASE_HOST = localhost
DATABASE_PORT = 5432
##################################################
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
cd ..
cd frontend
npm install
nano .env.local
##################################################
REACT_APP_GOOGLE_MAPS_API_KEY= _yourkeyhere_
REACT_APP_API_BASE_URL=http://localhost:8000/api/user/
##################################################
npm start
git pull (on server)
npm install
npm run build
sudo service nginx restart
git pull (on server)
pip install -r requirements.txt
python manage.py makemigratoins
python manage.py migrate
python manage.py collecstatic
pkill gunicorn
gunicorn backend.wsgi:application --bind 0.0.0.0:8000 &
sudo service nginx restart
start at django directory (where manage.py is located)
python3 manage.py shell
from _appname_.models import _modelname_
_modelname_.objects.filter().delete()
grep CRON /var/log/syslog (check logs)
crontab -e
- API : localhost:8000/api/
- Forex Scores : localhost:8000/api/scores/
- Forex Scores Upload: localhost:8000/api/scores/upload/
- Country (GET / POST): localhost:8000/api/countries/
- Country Detail - localhost:8000/api/countries/int:pk/
- Projects (GET / POST) -
Givplus/
βββ backend/
β βββ manage.py
β βββ api/
β βββ files/
β βββ static/
β βββ account/
β βββ backend/
β β βββ settings.py
β βββ .env
βββ frontend/
β βββ public/
β β βββ index.html
β β βββ ...
β βββ src/
β β βββ App.js
β β βββ index.js
β β βββ src/
β β β βββ app/
β β β βββ components/
β β β βββ pages/
β β β βββ services/
β β β βββ features/
β β β βββ images/
β β β βββ App.js
β β β βββ index.js
β β βββ pages/
β βββ package.json
β βββ package-lock.json
β βββ .env.local
βββ Forex score calculation/
β βββ currency_code.csv
β βββ forex.ipynb
β βββ README.md
βββ .gitignore
βββ README.md
βββ requirements.txt
- Unit Test
- Adoption of TensorFLow for personalized recommendation of projects and categorizing scraped data
- Implementation of blockchain in keeping transaction records and issuing receipts (can be further used for government tax credits)
- Improvement of current economic models
Park Kyung Min (Leader) - GDSC Waseda
Cha Seung Jun (Project manager) - Nanyang Technological University (participating as a member of GDSC Waseda)
Shin Jeong Hoo (Backend developer & Technical Lead)- GDSC Waseda
Heo Bor Yun (Frontend developer) - GDSC Waseda