Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/maniruzzamanakash/node-advanced-crud-api

An advanced CRUD API for Node JS & Express implementing with MVC pattern and many more standards...
https://github.com/maniruzzamanakash/node-advanced-crud-api

api-validator crudapi expressapi expressjs mongodb-database mvc-api mvc-architecture node nodejs-api nodejsapi todoapi

Last synced: 1 day ago
JSON representation

An advanced CRUD API for Node JS & Express implementing with MVC pattern and many more standards...

Awesome Lists containing this project

README

        

## Advance CRUD API with Node JS & Express

An advanced CRUD API for Node JS implementing with MVC pattern and many more standards...

---

### Technologies & Featuers:
1. MongoDB
1. Mongoose
1. Express JS
1. Node JS
1. MVC (Model-View-Controller) Pattern
1. Schema Validation
1. Form Validation

### How to Run:

#### Install NPM
```bash
npm i
```

#### Create `.env` file by copying `.env.example`
```bash
MONGODB_DEFAULT_DB=
MONGODB_CLUSTER=
MONGODB_USERNAME=
MONGODB_PASSWORD=
```

#### Run Project with nodemon setup (Watch any changes)
```bash
npm run dev
```


#### Postman API Link
https://www.getpostman.com/collections/058c397fd09ae4cf3a9c

#### Live Web API Demo Links at a glance
1. Base URL - https://node-cruds-api.herokuapp.com/
1. All Todos - https://node-cruds-api.herokuapp.com/todos
1. Single Todos - https://node-cruds-api.herokuapp.com/todos/60fb121b55e09ca6e646e93e
1. Post API - https://node-cruds-api.herokuapp.com/todos [Body dataset Read below]
1. Put API - https://node-cruds-api.herokuapp.com/todos/60fb121b55e09ca6e646e93e [Body dataset Read below]
1. Delete API - https://node-cruds-api.herokuapp.com/todos/60fb121b55e09ca6e646e93e [Body dataset Read below]
1. Delete All API - https://node-cruds-api.herokuapp.com/todos [Body dataset Read below]

#### Todo List
URL: http://localhost:3000/todos
Method: `GET`

Response:

```js
[
{
"_id": "60fadbf0fb1e9926fb60c07d",
"title": "First todo",
"status": "Done"
},
{
"_id": "60fadfc796dbc5f55f4adbe0",
"title": "Another task",
"status": "Pending"
}
]
```

Todo Detail:


Endpoint: http://localhost:3000/todos/60fadbf0fb1e9926fb60c07d


Method: GET

Response:

```js
{
"_id": "60fadbf0fb1e9926fb60c07d",
"title": "First todo",
"status": "Done"
}
```

Todo Create:


Endpoint: http://localhost:3000/todos


Method: POST

Body:

```js
{
"title": "Demo Todo 1",
"status": "Pending"
}
```

Response:

```js
{
"_id": "60fb0e8bd8cd4f9cb52910a0",
"title": "Demo Todo 1",
"status": "Pending",
"createdAt": "2021-07-23T18:46:35.288Z",
"updatedAt": "2021-07-23T18:46:35.288Z",
"__v": 0
}
```


Todo Update:


Endpoint: http://localhost:3000/todos/60fadbf0fb1e9926fb60c07d


Method: PUT

Body:

```js
{
"title": "Demo Todo 1 Updated",
"status": "Done"
}
```


Response:

```js
{
"message": "Todo has been updated successfully !",
"data": {
"_id": "60fadbf0fb1e9926fb60c07d",
"title": "Demo Todo 1 Updated",
"createdAt": "2021-07-23T17:54:04.823Z",
"updatedAt": "2021-07-23T18:54:12.279Z",
"__v": 0,
"status": "Done"
}
}
```


Todo Delete:


Endpoint: http://localhost:3000/todos/60fadbf0fb1e9926fb60c07d


Method: DELETE

Response:

```js
{
"message": "Todo has been deleted successfully !",
"data": {
"_id": "60fb139e55e09ca6e646e947",
"title": "Test Todo",
"status": "Done",
"createdAt": "2021-07-23T19:08:14.137Z",
"updatedAt": "2021-07-23T19:08:14.137Z",
"__v": 0
}
}
```



Todo Delete All:


Endpoint: http://localhost:3000/todos


Method: DELETE

Response:

```js
{
"message": "7 Todos have been deleted successfully !"
}
```

#### Contribution:

1. Create Pull-Request to contribute this Todo API

#### Contact:

[email protected]

#### Donate:
Patreon Link - https://www.patreon.com/maniruzzaman