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
master
with a name that starts with the JIRA task name, and is followed by a short description. For examplecs-32-user-management-api
. - 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
git@github.com:CrowdShelf/server.git
cd
into the folder- Run
npm install
to install dependencies - Set up Mongodb locally and export an environment variable
MONGODB
that defines its URL. - You'll also need a Mailgun-account. Register, then export the following environment variables:
MAILGUN_KEY
andEMAIL_ADDRESS
. - Run
npm start
and you'll be up and running on port 3000, or an environment defined asPORT
.
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 crowdshelf.xyz/api
.
There's also CI on the dev
-branch, which is the latest version of the API. You'll find it on crowdshelf-dev.herokuapp.com/api
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/server
npm start
The -e
-parameter sets the environmental variables for your e-mail serivce and database.
This will expose the ports 3000
locally, which means you can reach the API under localhost:3000/api
.
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
docker-compose.yml
. - Run
docker-compose up
Latest API definition can be found on our servers:
MIT-licence. See the LICENCE
-file.