Webpage that is updated for grants and funding opportunities, relevant to non-profits operating in the State of Hawaii.
Built with:
The database for the application is a Google Sheet, which is auto-populated by a Google Form. Doing so allows for a standardized data format to be ingested by the NodeJS API layer.
The API is located in app.js, which handles authentication and data collection from the Google Sheet. An example output of the data is the following JSON response:
result: [
{
"lastUpdated":"6/10/2021 10:11:35",
"funder":"The Home Depot",
"federal":"No",
"title":"COMMUNITY IMPACT GRANTS ",
"description":"Supports housing modifications/repair projects for vulnerable and underserved populations and Veteran service organization projects directly impacting the lives of veterans.",
"eligibility":"Nonprofit, Tax-exempt public service agencies in the U.S.",
"programFunding":"Unspecified",
"minAward":"Unspecified",
"maxAward":"$5,000",
"dueDate":"12/31/2021",
"url":"https://corporate.homedepot.com/foundation/communityimpactgrants"
}
]
The logic for the table is located in public/index.js. The library supports fetching data from a remote source (i.e. our API), and has lots of features to customize (future work).
Create a file called config.js, which holds your API keys to interact with Google's API:
module.exports = {
'HOSTPATH': 'http://localhost',
'PORT': 3000,
'client_email': 'YOUR_CLIENT_EMAIL',
'private_key': 'YOUR_PRIVATE_KEY',
'REDIRECT_PATH': '/redirect'
};
For more information, please refer to the docs for node-google-spreadsheet.
Install Docker and Docker-Compose:
git clone https://github.com/jamesthesken/hi-grant-tracker.git
cd hi-grant-tracker/
docker-compose up --build