GitHub Profile Summary Backend

Powered by https://nodejs.org/, http://expressjs.com/, and https://github.com/hapijs/joi.

The web app is hosted at https://githubprofilesummary.com on Netlify.

This API is hosted on Google App Engine.

Frontend React app for this project is located here: https://github.com/theblindprophet/github-profile-summary.

Install

git clone https://github.com/TheWillG/github-profile-summary-api.git

cd github-profile-summary-api

npm install

Run

npm run start

Testing

npm run test

Tests are located at __tests__

Environment

Name Description Example
PORT Port the app is run on. 3000
LOGGER_LEVEL Logger level configuration used by log4js package info
GITHUB_USERACCESS_TOKEN Access token used to read from the Github API 123456abcdef
MAILGUN_API_KEY Mailgun API Key required to send mail 123456abcdef
MAILGUN_DOMAIN Mailgun Domain name required to send mail subdomain.domain.com
GITHUB_CLIENT_ID GitHub client id xxx
GITHUB_CLIENT_SECRET GitHub client secret xxx
MONGO_URL MongoDB URL xxx

GITHUB_USERACCESS_TOKEN can be obtained here.

The environment variables are encrypted from env to env.enc.

CI/CD

We use Google Cloud Build and Google App Engine for continuous integration and deployment.

File Description
app.yaml Configurations for deployment on Google App Engine
cloudbuild.yaml Configurations for integration testing, non-master branch, on Google Cloud Build
cloudbuild.prod.yaml Configurations for integration testing, master branch, on Google Cloud Build

These files should be NOT edited by anyone except the original maintainers.

Our Google App Engine and Google Cloud Project have also been configured to help with the CI/CD pipeline.

Contributing

We are always willing to accept contributions to this project.

Contributors

Will Garcia (LinkedIn)

Jamie Gross (LinkedIn)