An open API service indexing awesome lists of open source software.

https://github.com/jahidhiron/node-blog-api

This repository contains a simple Node.js blog API developed for educational purposes, particularly for teaching on Udemy. It provides a basic foundation for understanding how to create RESTful APIs using Node.js, Express.js, and MongoDB.
https://github.com/jahidhiron/node-blog-api

expressjs mongodb mongoose nodejs restfulapi

Last synced: 5 months ago
JSON representation

This repository contains a simple Node.js blog API developed for educational purposes, particularly for teaching on Udemy. It provides a basic foundation for understanding how to create RESTful APIs using Node.js, Express.js, and MongoDB.

Awesome Lists containing this project

README

          

# Nodejs Blog REST API

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Description

This repository contains a simple Node.js blog API developed for educational purposes, particularly for teaching on Udemy. It provides a basic foundation for understanding how to create RESTful APIs using Node.js, Express.js, and MongoDB.

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
- [Features](#features)
- [API Endpoints](#endpoints)
- [Technology](#technology)
- [Decision](#decision)
- [License](#license)

## Installation

Install MongoDb Database

```bash
git clone git@github.com:jahidhiron/node-blog-api.git
cd node-blog-api
npm install
```

## Usage

```bash
npm start
```

## Features

- Authentication and Authorization
- Add, Update, Delete blog posts
- Search and filter blogs with pagination
- Sending email
- Flexible and easy-to-use API endpoints
- Scalable and well-documented codebase

## API Endpoints

Look at 'api-collection/api-collection.json' file for API end point

## Technology

1. Used `node.js` runtime environment for server side
2. `Express.js` web framework
3. To validate request, I have used `express-validator`
4. `SendGrid` is used to send email

## Decision

1. `Why nodejs/Express?: ` Node. js uses 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.
2. I have used pagination instead of loading all data at a time. Initially, it loads 10 items
3. Authentication, authorization, user verify, recover password are added to this app

## License

This project is licensed under the MIT License.