Skip to content

Commit fdc2e8f

Browse files
authored
Update README.md
1 parent 3d06fab commit fdc2e8f

File tree

1 file changed

+48
-2
lines changed

1 file changed

+48
-2
lines changed

README.md

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,49 @@
1-
# Under Development
1+
# NodeJs Backend Architecture Typescript Project
2+
Learn to build a Blogging platform like Medium, MindOrks, and FreeCodeCamp - Open-Source Project By AfterAcademy
23

3-
Use latest version of node on local machine
4+
[![AfterAcademy](https://img.shields.io/badge/AfterAcademy-opensource-blue.svg)](https://afteracademy.com)
5+
6+
<p align="center">
7+
<img src="https://raw.githubusercontent.com/afteracademy/nodejs-backend-architecture-typescript/master/addons/github_assets/cover-nodejs-backend.png">
8+
</p>
9+
<br>
10+
11+
## About this Open Source Project
12+
This open-source project is for you(community). Our Team at [AfterAcademy](https://afteracademy.com) has taken this initiative to promote Backend Learning in the best possible way. We are determined to provide quality content for everyone. Let's do it together by learning from this project.
13+
14+
## We will learn and build the backend application for a blogging platform.
15+
The main focus will be to create a maintainable and highly testable architecture.
16+
<br>
17+
Following are the features of this project:
18+
* **This backend in written in Typescript**: The type safety at build time and having intellisense for it in the IDE like vscode is unparallel to productivity. We have found production bug reduced to significant amount, since most of the code vulnarabilties are identified during the build phase itself.
19+
* **Separation of concern principle is applied**: Each component has been given a particular role. The role of the components are mutually excllusive. This makes the project easy to be unit tested.
20+
* **Feature enpasulation is adopted**: The files or components those are related to a particular feature has been grouped together unless that components is required in multiple features.This enhances the ability to share code across projects.
21+
* **Centralised Error handling is done**: We have created a framework where all the error is handled centrally. This reduces the abiguity in the developement when the project grows larger.
22+
* **Centralised Response handling is done**: Similar to Error handling we have response handling framework. This makes it very convinient to apply a common API response pattern.
23+
* **Mongodb is used through Mongoose**: Mongodb really fits very well to the nodejs application. Being nosql, fast, and scalable makes it ideal for the modern web applications.
24+
* **Async execution is adopted**: We have used async/await for the promises and made sure to use non blocking version of all the functions with few exceptions.
25+
* **Docker compose has been configured**: We Dockerfile has been created to assist in easy deployability without setup and much configurations.
26+
* **Unit test is favoured**: The tests has been written to test the functions and routes without the need of the database server. Integration tests has also been done but unit test is favoured.
27+
28+
## 3RE Architecture: Router, RouteHandler, ResponseHandler, ErrorHandler
29+
<p align="center">
30+
<img src="https://raw.githubusercontent.com/afteracademy/nodejs-backend-architecture-typescript/master/addons/github_assets/3RE.png">
31+
</p>
32+
<br>
33+
34+
## Project Outline: Blogging Platform
35+
<p align="center">
36+
<img src="https://raw.githubusercontent.com/afteracademy/nodejs-backend-architecture-typescript/master/addons/github_assets/project-outline.png">
37+
</p>
38+
<br>
39+
40+
## Request-Response Handling Schematic Diagram
41+
<p align="center">
42+
<img src="https://raw.githubusercontent.com/afteracademy/nodejs-backend-architecture-typescript/master/addons/github_assets/api-structure.png">
43+
</p>
44+
<br>
45+
46+
47+
48+
### Important
49+
Use latest version of node on local machine

0 commit comments

Comments
 (0)