ionvladescu / bookmarks-api

API supporting the Bookmark Manager for Developers & Co

Home Page:https://www.bookmarks.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

Bookmarks Context

This project is developed with the MEAN stack, featuring MongoDB, ExpressJS, Angular and NodeJS. Authentication and authorization is done via Keycloak:

Network Diagram


Development setup

You need mongodb, keycloak and nodejs to get the api working

Prerequisites

What you need to run this app:

  • node and npm (we recommend using NVM)
  • Ensure you're running Node at least (v6.x.x+) and NPM (3.x.x+)

MongoDB

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

Keycloak

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.

Installation and develop on local machine

Create an env.json file based on the the env.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

Testing

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

Swagger docs

Note

  • env.json is not commit but needs to be delivered at build time

License

MIT

About

API supporting the Bookmark Manager for Developers & Co

https://www.bookmarks.dev

License:MIT License


Languages

Language:JavaScript 100.0%