All Projects → hks-epod → paydash

hks-epod / paydash

Licence: MIT License
Worker payments dashboard for MGNREGA

Programming Languages

javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
Handlebars
879 projects

Projects that are alternatives of or similar to paydash

midtrans-python-client
Official Midtrans Payment API Client for Python | https://midtrans.com
Stars: ✭ 24 (-45.45%)
Mutual labels:  payment
hapi-sentry
A hapi plugin for request error logging to Sentry
Stars: ✭ 24 (-45.45%)
Mutual labels:  hapi
react-native-square-reader-sdk
React Native Plugin for Square Reader SDK
Stars: ✭ 94 (+113.64%)
Mutual labels:  payment
hapi-decorators
Decorators for HapiJS routes
Stars: ✭ 65 (+47.73%)
Mutual labels:  hapi
pix-payload-generator.net
Gerar payload para qrcode estático PIX. (Sistema de pagamento instantâneo do Brasil) Sem a necessidade de conexão com um PSP.
Stars: ✭ 23 (-47.73%)
Mutual labels:  payment
SwissPaymentSlip
A PHP library for creating Swiss Payment Slips
Stars: ✭ 18 (-59.09%)
Mutual labels:  payment
hapi-moon
Hassle-free and production ready hapi.js Server boilerplate
Stars: ✭ 23 (-47.73%)
Mutual labels:  hapi
omise-python
Omise Python Library
Stars: ✭ 22 (-50%)
Mutual labels:  payment
loan-payments-calculator
A small library for calculating loan payments using various configurations, works.
Stars: ✭ 13 (-70.45%)
Mutual labels:  payment
hapi-sequelizejs
A hapi.js plugin to connect with Sequelize ORM
Stars: ✭ 56 (+27.27%)
Mutual labels:  hapi
crater
Open Source Invoicing Solution for Individuals & Businesses
Stars: ✭ 5,938 (+13395.45%)
Mutual labels:  payment
ex pesa
Payment Library For Most Public Payment API's in Kenya and hopefully Africa. Let us get this moneybag
Stars: ✭ 19 (-56.82%)
Mutual labels:  payment
Crashlyzer
Crash viewer web application for displaying the crashes reported by rn-crash-reporter components from React Native mobile applications.
Stars: ✭ 59 (+34.09%)
Mutual labels:  hapi
steerage
Hapi server configuration and composition using confidence, topo, and shortstop.
Stars: ✭ 15 (-65.91%)
Mutual labels:  hapi
frames-android
Checkout API Client, Payment Form UI and Utilities
Stars: ✭ 26 (-40.91%)
Mutual labels:  payment
drf-stripe-subscription
An out-of-box Django REST framework solution for payment and subscription management using Stripe.
Stars: ✭ 42 (-4.55%)
Mutual labels:  payment
LolautruchePaylineBundle
Symfony integration for Payline payment system
Stars: ✭ 15 (-65.91%)
Mutual labels:  payment
PayumYiiExtension
Rich payment solutions for Yii framework. Paypal, payex, authorize.net, be2bill, omnipay, recurring paymens, instant notifications and many more
Stars: ✭ 13 (-70.45%)
Mutual labels:  payment
nagadApi
This is Bangladeshi nagad payment gateway api development library. This library can be used in any php application.
Stars: ✭ 20 (-54.55%)
Mutual labels:  payment
exiting
Safely shutdown http://hapijs.com servers.
Stars: ✭ 23 (-47.73%)
Mutual labels:  hapi

Paydash

Paydash is a monitoring tool for block officials overseeing MGNREGA, India's employment guarantee programme for rural households. Beneficiaries under MGNREGA are supposed to be paid within 15 days of working, but the average worker waited 53 days to receive payment in 2014-2015, undermining MGNREGA's effectiveness as a social safety net.

Paydash aims to reduce delays in beneficiary payments by providing government officials with detailed information on delays -- breaking out performance on payment sub-processes down to the panchayat level and connecting poor performance with the responsible government employee. In addition to diagnostics, Paydash is action-oriented, providing access to pending documents and the contact information of the responsible employee. Paydash aims to empower government officials with better information while introducing more accountability into the payments process, with the ultimate goal of helping MGNREGA workers receive their rightful payments.

Paydash is a joint initiative of the Ministry of Rural Development, the National Informatics Centre, and Evidence for Policy Design at Harvard Kennedy School.

Technology

  • Hapi - Server side framework
  • Handlebar - HTML templating engine
  • Sequelize - MYSQL database ORM
  • SASS - CSS preprocessor
  • D3 - Data visualization library
  • Gulp - Javascript tasks automation
  • WebPack - Asset pipeline

Note: For a detailed list of the toolsets used in paydash, please refer to package.json.

Application Structure

Let's take a tour of the app.

|
| -- app
|   |-- controllers        // Controllers are organised by module names
|   |   |-- <module_name>  // Each controller defines config and handler for that route.
|   |
|   |-- helpers            // Helper functions used across application
|   |-- models             // All sequelize models are defined here
|   |-- routes             // All app routes are defined here
|   |   |-- <route_plugin> // Route module is a hapi plugin and can be toggled from config/manifest.js
|   |
|   `-- templates          // All server-rendered handlebar templates, partials and helpers
|       |-- <module_name>  // Templates are organised by module names.
|   
|-- assets                 // Contains all static resources 
|   |-- fonts              // Fonts used in application
|   |-- images             // Images used in application
|   |-- misc               // Misc resources used in application
|   |-- scripts            // Client javscripts files which are then packed by webpack
|   |-- styles             // All SASS stylesheets
|   |   |-- <module_name>  // Styles are organised by module names. 
|   
|-- config                 // Contains all app configurations
|   |   |-- keys           // GA and other application keys are stored here. (gitignored).
|   |-- assets.js          // Assets configuration file
|   |-- config.js          // Application configuration file which stores all passwords etc. (gitignore).
|   |-- manifest.js        // App manifest file listing all plugins and load order. 
|   
|-- lib                    // Core application lib/plugins 
|-- tasks                  // Contains all gulp tasks 
|-- tests                  // Code tests
|
|-- gulpfile.js            // Gulp entry file 
|-- index.js               // Application starting point
|-- package.js             // Package configuration file
|-- server.js              // Main server file

Code

We're using semi-colons and comma-last. No rhyme or reason; and some of the hapi code convention guidelines. All client-side js code is also in commonJS pattern packs using webpack. Check out .editorconfig, .jsbeautifyrc, .jshintrc for additional code conventions used.

Running the server locally

  • Install node, npm
  • Place a copy of config.js in /config folder.
  • Monitoring services will require Google analytics service account key file placed in config/keys/
  • Run these commands
# Install deps
$ npm install

# Run the node server
$ npm start

# > [email protected] start /Users/ravisuhag/Batcave/Workspace/hks-epod/Dev/paydash
# > gulp
# 
# [16:48:55] Using gulpfile ~/Batcave/Workspace/hks-epod/Dev/paydash/gulpfile.js
# [16:48:55] Starting 'fonts'...
# [16:48:56] Starting 'images'...
# [16:48:56] Starting 'misc'...
# [16:48:56] Starting 'styles'...
# [16:48:56] Finished 'styles' after 5.49 ms
# [16:48:56] Starting 'webpack'...
# [16:48:56] Finished 'webpack' after 73 ms
# [16:48:56] Starting 'lint'...
# [16:48:56] Starting 'nodemon'...
# [16:48:56] Finished 'nodemon' after 1.99 ms
# [16:48:56] [nodemon] v1.4.1
# [16:48:56] [nodemon] to restart at any time, enter `rs`
# [16:48:56] [nodemon] watching: *.*
# [16:48:56] [nodemon] starting `node server.js`
# [16:48:57] Finished 'images' after 1.98 s
# [16:48:57] Finished 'misc' after 1.98 s
# Server is listening on 8000

The server should be running at localhost:8000.

Running tests

Lab is part of the hapi.js toolset and what we use to write all of our tests.

$ npm test
# > [email protected] test /Users/ravisuhag/Batcave/Workspace/hks-epod/Dev/paydash
# > node node_modules/lab/bin/lab -a code -t 100

# ..............

# 6 tests complete
# Test duration: 1370 ms
# No global variable leaks detected
# Coverage: 100.00%

Contributers

See the awesome people!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].