Technologies

Technologies Used

The Backend process of Enatega Backend are built using the core components of Node, Express, MongoDB, Apollo and Firebase. Enatega Backend has also been constantly incorporating various other latest technologies.

MongoDB

MongoDB is a document-oriented database designed with both scalability and developer agility in mind. MongoDB's ability to store JavaScript objects natively saves time and processing power. Rather than storing your data in tables and rows as you would with a relational database, in MongoDB you store JSON-like documents with dynamic schemas. Instead of a domain-specific language like SQL, MongoDB utilizes a simple JavaScript interface for querying. Looking up a document is as simple as passing a JavaScript object that partially describes the search target.

NODE JS

Node JS is a packaged compilation of Google’s V8 JavaScript engine, the libuv platform abstraction layer, and a core library, which is itself primarily written in JavaScript. Node JS shines in real-time web applications employing push technology over web sockets. The main principle of Node JS: use non-blocking, event-driven I/O to remain lightweight and efficient in the face of data-intensive real-time applications that run across distributed devices. It replaces the traditional request-response paradigm with a fast, two-way communication model. It is asynchronous without the use of threads, it is not memory-intensive. Node JS web sockets run on TCP, not HTTP, so low-overhead client-server communication is enabled in both directionS .

Ideally, if you are writing a mobile app, you want to cover all the bases – iOS, Android, and Windows – in order to obtain maximum market share or to grant your mobile workforce flexibility in device choice. A straightforward way to accomplish that is to write all the app’s logic in Node JS and place it on the backend. The user interface then runs on the mobile device under another language.

Express JS

Express JS is server-side and mobile application framework, written in JavaScript. It builds single-page, multi-page, and hybrid mobile and web apps; Common back-end functions for web applications; APIs.

Express JS is a prebuilt Node JS framework that can help you in creating server-side web applications faster and smarter. Simplicity, minimalism, flexibility, scalability are some of its characteristics and since it is made in Node JS itself, it inherited its performance as well.

In short, Express JS did for Node JS what Bootstrap did for HTML/CSS and responsive web design. It made coding in Node JS a piece of cake and gave programmers some additional features to extend their server-side coding. Express JS is hands down the most famous Node JS framework - so much so that when most people talk about Node JS they surely mean Node JS + Express JS.

Firebase

Firebase is a platform that offers various services for mobile and web applications and helps developers build apps quickly with a lot of features.

To send the notifications, we have used the service called Cloud Messaging, which allows us to send messages to any device using HTTP requests.

Cloud Messaging is used for admin dashboard only while for mobile notification we have used built expo api. To learn more about it click here.

GraphQL

GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.

Send a GraphQL query to your API and get exactly what you need, nothing more and nothing less. GraphQL queries always return predictable results. Apps using GraphQL are fast and stable because they control the data they get, not the server.

GraphQL queries access not just the properties of one resource but also smoothly follow references between them. While typical REST APIs require loading from multiple URLs, GraphQL APIs get all the data your app needs in a single request. Apps using GraphQL can be quick even on slow mobile network connections.

Nodemailer

Nodemailer is a module for Node.js applications to allow easy as cake email sending. The project got started back in 2010 when there was no sane option to send email messages, today it is the solution most Node.js users turn to by default.

Nodemailer is licensed under MIT license. See license details in the License page. If you are upgrading from Nodemailer v2 or older, then see the light migration guide here.