10-Nodejs Course 2023: Application Module Structure
Tags: node, typescript, mongodb, fastify
Published: 2022-10-29 14:21:02

---
title: 10-Nodejs Course 2023: Application Module Structure
published: true
description: 
series: Nodejs Course 2023
tags: nodejs, typescript, mongodb, fastify
#cover_image: 
# Use a ratio of 100:42 for best results.
---

Now we're ready to move to our next step, which is to start manage our application and split it into different parts, but we will group all related ones under one directory, which we'll call it a `module`.

## Modules

Modules are the main building blocks of our application, they are the main part of our application, and they are the ones that will be responsible for handling requests, responses, validation and database as well.

The module structure that we're going to use is the following:

```bash

src
├── app
│   ├── modules
│   │   ├── users
│   │   │   ├── controllers
│   │   │   │   ├── user.controller.ts
│   │   │   ├── validators
│   │   │   │   ├── create-user.validator.ts
│   │   │   ├── models
│   │   │   │   ├── user.model.ts
│   │   │   ├── middleware
│   │   │   │   ├── auth.middleware.ts
│   │   │   ├── responses
│   │   │   │   ├── user.response.ts
│   │   │   ├── utils
│   │   │   │   ├── user.locales.ts
│   │   │   ├── routes.ts
```

So in our previous schema, we'll have a directory called `app` which will be in the `src` directory, inside it there will be the `modules` directory, and inside it there will be a directory for each module, and inside it there will be the `controllers`, `validators`, `models`, `middleware`, `responses`, `utils` and `routes.ts` files and so on for each module we need.

> PLease note that this structure can be used all of it or some of it based on the module requirements and size.

## 🎨 Project Repository

You can find the latest updates of this project on [Github](https://github.com/hassanzohdy/nodejs-2023)

## 😍 Join our community

Join our community on [Discord](https://discord.gg/vtZE9YzaFz) to get help and support (Node Js 2023 Channel).

## 🎞️ Video Course (Arabic Voice)

If you want to learn this course in video format, you can find it on [Youtube](https://www.youtube.com/playlist?list=PLGO8ntvxgiZMJc7RN2lIq9WmMOlWZGzmz), the course is in Arabic language.

## 💰 Bonus Content 💰

You may have a look at these articles, it will definitely boost your knowledge and productivity.

General Topics

- [Event Driven Architecture: A Practical Guide in Javascript](https://dev.to/hassanzohdy/event-driven-architecture-the-best-paradigm-that-i-love-to-work-with-in-javascript-and-node-js-1gnk)
- [Best Practices For Case Styles: Camel, Pascal, Snake, and Kebab Case In Node And Javascript](https://dev.to/hassanzohdy/best-practices-for-case-styles-camel-pascal-snake-and-kebab-case-in-node-and-javascript-55oi)
- [After 6 years of practicing MongoDB, Here are my thoughts on MongoDB vs MySQL
](https://dev.to/hassanzohdy/after-6-years-of-practicing-mongodb-here-are-my-thoughts-on-mongodb-vs-mysql-574b)
-

Packages & Libraries

- [Collections: Your ultimate Javascript Arrays Manager](https://dev.to/hassanzohdy/collections-your-ultimate-javascript-array-handler-3o15)
- [Supportive Is: an elegant utility to check types of values in JavaScript](https://dev.to/hassanzohdy/supportive-is-an-elegant-utility-to-check-types-of-values-in-javascript-1b3e)
- [Localization: An agnostic i18n package to manage localization in your project](https://dev.to/hassanzohdy/mongez-localization-the-simplest-way-to-translate-your-website-regardless-your-favorite-framework-4gi3)

 React Js Packages

- [useFetcher: easiest way to fetch data in React Js](https://dev.to/hassanzohdy/usefetcher-the-easiest-way-to-fetch-data-in-react-45o9)

Courses (Articles)

- [React Js: Let's Create File Manager With React Js and Node Js](https://dev.to/hassanzohdy/lets-create-a-file-manager-from-scratch-with-react-and-typescript-chapter-i-a-good-way-to-expand-your-experience-5g4k)