ApiServer

MongoDB

MongoDB is a cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas.

Why use MongoDB?

  • Works well in the cloud (scale, fault tolerance, secure)

  • Easy to get started (lots of clear documentation)

  • Used by many massive companies all over the globe, so MongoDB has money to keep development going.

Mongoose

Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.js. It's basically a javascript layer on top of MongoDB. It manages relationships between data, provides schema validation, and is used to translate between objects in code and the representation of those objects in MongoDB

Express

Express is a web application framework for Node.js. It is designed for building web applications and APIs. It has been called the de facto standard server framework for Node.js.

In combination with a database like MongoDB and Mongoose to provide a backend for your Node.js application, Express.js helps you manage everything, from routes, to handling requests and views.

Google Cloud

Google Cloud services are used for storing and serving of media files posted on your app. I opted to integrate Google Cloud as our storage provider due to the ease of setting up, excellent documentation and relatively cheap startup costs (free for the first three months till a maximum of $300).

The Google infrastructure is renown for its hight quality, excellent delivery speed, great reliability and world-wide coverage (excl. China).

Multer

Multer is a node.js middleware for handling multipart/form-data, which is used for uploading images and video's from the app to the server.

Multer adds a body object and a file or files object to the request object. The body object contains the values of the text fields of the form, the file or files object contains the files uploaded via the form.

bcrypt

bcrypt is a password-hashing function. It is used as a sucre way to store passwords inside a database.

The bcrypt function is the default password hash algorithm for OpenBSD and other systems. There are implementations of bcrypt for C, C++, C#, Elixir, Go, Java, JavaScript, Perl, PHP, Python, Ruby, and other languages.

JWT

JSON Web Token (JWT) is an open standard to securely transmit information between the app and server as a JSON object. This information can be verified and trusted because it is digitally signed.

Some scenarios for which JSON Web Tokens are useful are:

  • Authorization: This is the most common scenario for using JWT. Once the user is logged in, each subsequent request will include the JWT, allowing the user to access routes, services, and resources that are permitted with that token.

  • Information Exchange: JSON Web Tokens are a good way of securely transmitting information between parties. Because JWTs can be signed—for example, using public/private key pairs—you can be sure the senders are who they say they are.

Nodemailer

Nodemailer is a module for Node.js applications to allow easy as cake email sending. It is the solution most Node.js users turn to by default.

Sendgrid

SendGrid is a cloud-based SMTP provider that allows you to send email without having to maintain email servers. Where Node.js tells nodemailer to compile a new e-mail with all required sender and receiver information, Sendgrid takes care of the delivery of the email to the users's inbox.

Last updated