API for www.bookmarks.dev, the Bookmark Manager for Developers & Co
This repo contains the back-end API source code of the www.bookmarks.dev website.
This project is developed with the MEAN stack, featuring MongoDB, ExpressJS, Angular and NodeJS. Authentication and authorization is done via Keycloak:
You need mongodb, keycloak and nodejs to get the api working
What you need to run this app:
node
andnpm
(we recommend using NVM)- Ensure you're running Node at least (
v6.x.x
+) and NPM (3.x.x
+)
Follow the instructions from the Mongo DB documentation and install version 3.2 on your local machine. Connect to the mongo client:
# change to mongo installation directory
$ cd MONGO_HOME
# run the mongo client
$ ./bin/mongo
and then create the codingpedia-bookmarks database:
# change to mongo installation directory
> use codingpedia-bookmarks
# verify that is present
> show dbs;
admin 0.000GB
codingpedia-bookmarks 0.000GB
keycloak 0.001GB
local 0.000GB
This is the heaviest step, we need to set up for development. But by using Keycloak we get lots of things like Single-Sign On, OpenId-Connect Support, social logins, user admin console, that otherwise would take lots of effort to implement by ourselves. To make our life easier, I have prepared a wiki page about Keycloak Setup For Development.
Create an
env.json
file based on the theenv.example.json
example. You don't need to configure the production part.
# clone backend repo
$ git clone https://github.com/Codingpedia/bookmarks-api.git
# change directory to the app
$ cd bookmarks-api
# use the preconfigured node version
$ nvm use
# install the dependencies with npm
$ npm install
# start the server with nodemon, so that changes in the dynamically reflected
$ DEBUG=bookmarks-api:* nodemon start
Run the integration test by issuing the following command.
$ npm run integration-tests
For the tests to run the development environment has to be set up
env.json
is not commit but needs to be delivered at build time