- Node.js
- Express.js
- Mongoose
- Mongodb
- JWT
- Error Handling
This project is designed to server the backend functionalities for a note taking application using Node.js. It is suitable for Web apps, Mobile apps and Api services.
I Piyush Sharma have create this project as a part of MLH prep and fellowship program. I've experience with both backend and full stack developement but don't have experience working in the industry. Through this program I want to learn and enhance my developemt skills.
I designed this project using Node.js. The main focus is to create a maintainable application with proper error handling.
Following are the project details and instructions:-
- The backend is written in javascript. The framework used in backend (Express). Express is a Node.js back-end web application framework, also known as Express.js. It has many features that make developing web applications easier and faster than using Node.js
- Centralised Error handling: I have created a framework where all the errors are handled centrally. This reduces the ambiguity in the development when the project grows larger.
- Mongodb is used through Mongoose: Mongodb fits very well to the node.js application. Being NoSQL, fast, and scalable makes it ideal for modern web applications.
- A pure backend project: I have experienced that when a backend is developed clubbed with a frontend then in the future it becomes really difficult to scale. We would want to create a separate backend project that servers many websites and mobile apps.
3-tier Architecture: A 3-tier architecture is a web app architecture that is widely used around the world. It basically contains 3 tiers: Client, Server, and Database
The Business Logic Tier (Controller) is written using NodeJs and ExpressJS, and this tier represents the Application Server that will act as a bridge of communication for the Client Tier and Database Tier. This tier will serve HTML pages to the user’s device and accept HTTP requests from the user and follow with the appropriate response.
THe Database Tier (Model) will be hosting MongoDB. This is where we will store all of the crucial data our application needs to function.
- Login Method and Headers
- Forgot Password Method and Headers
- Create Note Method and Headers
- Update Note Method and Headers
- Remove Note Method and Headers
POST /slashNotes/user/login
Host: localhost:4000
Request Body
{
"username": "",
"password": ""
}
POST /slashNotes/user/password/forgot
Host: localhost:4000
Request Body
{
"email": ""
}
POST /slashNotes/notes/new
Host: localhost:4000
Request Body
{
"title": "",
"content": "",
"category": ""
}
PUT /slashNotes/notes/:id
Host: localhost:4000
Request Body
{
"title": "",
"content": "",
"category": ""
}
DEL /slashNotes/notes/:id
Host: localhost:4000
Request Body
{
}