Server for the CrowdShelf apps, written with NodeJS and Express.
We're using JIRA for issue tracking. We try to follow Chrockfords style guide for our code.
Do you want to contribute? Do it like this:
- Pick a task to do on JIRA, or just something you want implemented yourself.
- On JIRA, assign the task to yourself and move it to "In progress".
- Create a new branch from
masterwith a name that starts with the JIRA task name, and is followed by a short description. For example
- Work, work. Commit often. Try to follow good commit practice. You can push your branch to GitHub if you want.
- When you're done, push your latest changes and create a pull request. Wait for someone other than yourself to give feedback etc. Work out any differences of opinion, and the pull request will be merged and deployed.
Any questions? Feel free to ask!
Get a local server by doing the following:
- Clone the repository with
cdinto the folder
npm installto install dependencies
- Set up Mongodb locally and export an environment variable
MONGODBthat defines its URL.
- You'll also need a Mailgun-account. Register, then export the following environment variables:
npm startand you'll be up and running on port 3000, or an environment defined as
server\ controllers\ - Controllers for handling requsts models\ - Models that handle database-operations index.js - Starts a server server.js - Sets the server up, defines port etc. router.js - Sets the routing up by setting allowed headers etc. and calling API setup-methods
The server is currently running on a droplet on Digital Ocean. It has CI with the
master-branch. You'll find it on
There's also CI on the
dev-branch, which is the latest version of the API. You'll find it on
A Docker-image is avaiable on the Docker Hub.
You can get it with
docker pull crowdshelf/server, and run it with
docker run --net host -e "MONGODB=mongo://yourURL" -e "MAILGUN_KEY=your Mailgun API key" -e "EMAIL_ADDRESS=adress to send from" crowdshelf/servernpm start
-e-parameter sets the environmental variables for your e-mail serivce and database.
This will expose the ports
3000locally, which means you can reach the API under
You can also build the image yourself with
docker build -t crowdshelf/server .
You can also spin everything up (app and MognoDB) with Docker Compose.
- Add your environment variables to
Data model and API
Latest API definition can be found on our servers:
MIT-licence. See the