Back end api for Open Assistive built using nodeJS.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs first attempt at a hackaday service Oct 26, 2017
js fix #27 (sourceforge scraper), scraper bugfix (License=>license) Jun 28, 2018
.buildpacks added buildpacks Nov 8, 2016
.gitignore update of readme for new instructions for dev Oct 21, 2017
Procfile updated package.json and Procfile Nov 5, 2016 update of readme for new instructions for dev Oct 21, 2017
routes.js Add .md support Dec 30, 2016
server.js code cleanup Oct 23, 2017


Swagger API Documentation

Open Assistive (Technology) - What is it?

Its a site to collate all Open source Hardware and Software projects from around the web that aim to help someone with disabilities (i.e. Assistive Technology). The site (will be) a static site hosted by GitHub pages. Its dynamically generated by The full site can be found at

On the site a user can add a new project by adding a project from say Thingiverse, Sourceforge, Github or others. This API is then called that scrapes the site for the important meta-data and with "save" can then save the data to the GitHub repo for the front-end. Travis will then rebuild the site (or project maintainers will manually build the site daily).

Why this way? Well because we want to create a sustainable, low-cost and easy to manage system. We think this is one of the easiest - and most reliable "stacks" to do this! Its a bit of an experiment


OpenATBackend is a node server that has 2 API routes. For details see the documentation here

To run

You will need some environment variables to make this run. Notably:

  • GitHubOAuth with your GitHub Personal Access Token.
  • RecaptchaSecret with your Google details here and then apply to the env var..
  • AlgoliaAppID - from a Algolia account
  • AlgoliaAPIKey - from the same Algolia account
  • OpenATIndexName=OPENAT - the name of the Algolia index you are pushing to

and to test simply set this env var:


I recommend using direnv for this task. It makes setting env vars between projects much easier. Otherwise use a script a bit like this:


	export GitHubOAuth=<key>
	export RecaptchaSecret=<secret>
	export AlgoliaAppID=<id>
	export AlgoliaAPIKey=<key>
	export OpenATIndexName=OPENAT
	export TEST_MODE=1

e.g. in your terminal:

git clone
npm install
node server.js 

then navigate to http://localhost:5000 to access the server.

To Deploy