{"id":19511396,"url":"https://github.com/jamesbrel/node_mdc_and_modular_arch","last_synced_at":"2026-04-09T23:44:39.659Z","repository":{"id":241653749,"uuid":"807349421","full_name":"JamesBrel/node_mdc_and_modular_arch","owner":"JamesBrel","description":"MDC, modular architecture is a particularly interesting concept... for a project that is structured, maintainable and scalable without a hitch...","archived":false,"fork":false,"pushed_at":"2025-02-02T16:40:07.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T17:29:46.020Z","etag":null,"topics":["express","inversify","inversify-express","javascript","modularization","mvc-architecture","node","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JamesBrel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yaml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["JamesBrel"],"custom":["thecoder38@gmail.com"]}},"created_at":"2024-05-28T23:48:44.000Z","updated_at":"2025-02-02T16:40:10.000Z","dependencies_parsed_at":"2024-11-22T00:19:18.308Z","dependency_job_id":"0695a0ad-521e-48b9-a570-145ce3d7c489","html_url":"https://github.com/JamesBrel/node_mdc_and_modular_arch","commit_stats":null,"previous_names":["jamesbrel/node_mdc_and_modular_arch"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesBrel%2Fnode_mdc_and_modular_arch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesBrel%2Fnode_mdc_and_modular_arch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesBrel%2Fnode_mdc_and_modular_arch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesBrel%2Fnode_mdc_and_modular_arch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamesBrel","download_url":"https://codeload.github.com/JamesBrel/node_mdc_and_modular_arch/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240761142,"owners_count":19853256,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["express","inversify","inversify-express","javascript","modularization","mvc-architecture","node","typescript"],"created_at":"2024-11-10T23:20:51.487Z","updated_at":"2026-04-09T23:44:39.568Z","avatar_url":"https://github.com/JamesBrel.png","language":"TypeScript","funding_links":["https://github.com/sponsors/JamesBrel","thecoder38@gmail.com"],"categories":[],"sub_categories":[],"readme":"# Node Server : MDC and Modular Architecture\n\n### Author : James Brel\n\n### Contact : thecoder38@gmail.com \n---\n\n\u003cimg src=\"img/typescript.png\" alt=\"logo\" width=\"200\" height=\"200\"\u003e\n\n---\n\n## Architecture \n   the architecture of each feature is based on the MDC which is constituted mainly of 3 layers :\n   - Data\n   - Models\n   - Controllers  \n```\n📦features\n ┗ 📂say_hello_to_world\n ┃ ┣ 📂controllers\n ┃ ┣ 📂data\n ┃ ┗ 📂models\n```  \n\n## General Folder Structure Tree \n```\n📦project\n ┣ 📂.vscode\n ┃ ┗ 📜settings.json\n ┣ 📂envs\n ┃ ┣ 📜dev.env\n ┃ ┣ 📜prod.env\n ┃ ┗ 📜staging.env\n ┣ 📂lib\n ┃ ┣ 📂src\n ┃ ┃ ┣ 📂core\n ┃ ┃ ┃ ┣ 📂configs\n ┃ ┃ ┃ ┃ ┣ 📜inversify_config.ts\n ┃ ┃ ┃ ┃ ┣ 📜middle_config.ts\n ┃ ┃ ┃ ┃ ┗ 📜server_config.ts\n ┃ ┃ ┃ ┗ 📜init.ts\n ┃ ┃ ┣ 📂features\n ┃ ┃ ┃ ┣ 📂app_feats\n ┃ ┃ ┃ ┃ ┗ 📂hello_world\n ┃ ┃ ┃ ┃ ┃ ┣ 📂controllers\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜say_hello_to_world_controller.ts\n ┃ ┃ ┃ ┃ ┃ ┣ 📂data\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜hello_to_world_data.ts\n ┃ ┃ ┃ ┃ ┃ ┗ 📂models\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜user_model.ts\n ┃ ┃ ┃ ┗ 📂skeleton_feats\n ┃ ┃ ┃ ┃ ┗ 📂feature_name\n ┃ ┃ ┃ ┃ ┃ ┣ 📂controllers\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜.gitkeep\n ┃ ┃ ┃ ┃ ┃ ┣ 📂data\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜.gitkeep\n ┃ ┃ ┃ ┃ ┃ ┗ 📂models\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜.gitkeep\n ┃ ┃ ┗ 📂shared\n ┃ ┃ ┃ ┣ 📂constants\n ┃ ┃ ┃ ┃ ┣ 📜api_const.ts\n ┃ ┃ ┃ ┃ ┣ 📜number_const.ts\n ┃ ┃ ┃ ┃ ┗ 📜string_const.ts\n ┃ ┃ ┃ ┣ 📂extensions\n ┃ ┃ ┃ ┃ ┗ 📜express.d.ts\n ┃ ┃ ┃ ┣ 📂global\n ┃ ┃ ┃ ┃ ┗ 📜string_variable.ts\n ┃ ┃ ┃ ┣ 📂helpers\n ┃ ┃ ┃ ┃ ┗ 📜.gitkeep\n ┃ ┃ ┃ ┣ 📂logs\n ┃ ┃ ┃ ┃ ┗ 📜logger.ts\n ┃ ┃ ┃ ┣ 📂middlewares\n ┃ ┃ ┃ ┃ ┣ 📜token_middle.ts\n ┃ ┃ ┃ ┃ ┗ 📜uploder_middle.ts\n ┃ ┃ ┃ ┣ 📂results\n ┃ ┃ ┃ ┃ ┣ 📜result_failure.ts\n ┃ ┃ ┃ ┃ ┣ 📜result_success.ts\n ┃ ┃ ┃ ┃ ┗ 📜type.ts\n ┃ ┃ ┃ ┗ 📂services\n ┃ ┃ ┃ ┃ ┣ 📂cron_jobs\n ┃ ┃ ┃ ┃ ┃ ┣ 📂configs\n ┃ ┃ ┃ ┃ ┃ ┗ 📂requests\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜.gitkeep\n ┃ ┃ ┃ ┃ ┣ 📂jwt\n ┃ ┃ ┃ ┃ ┃ ┗ 📂requests\n ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜create_token_request.ts\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜verify_token_request.ts\n ┃ ┃ ┃ ┃ ┣ 📂mongoose\n ┃ ┃ ┃ ┃ ┃ ┣ 📂configs\n ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜index_config.ts\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜mongoose_config.ts\n ┃ ┃ ┃ ┃ ┃ ┣ 📂requests\n ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜mongoose_delete_request.ts\n ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜mongoose_get_request.ts\n ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜mongoose_insert_request.ts\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜mongoose_update_request.ts\n ┃ ┃ ┃ ┃ ┃ ┣ 📂schemas\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜user_schema.ts\n ┃ ┃ ┃ ┃ ┃ ┗ 📂utils\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜root_util.ts\n ┃ ┃ ┃ ┃ ┣ 📂security\n ┃ ┃ ┃ ┃ ┃ ┗ 📂requests\n ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜crypt_request.ts\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜verify_request.ts\n ┃ ┃ ┃ ┃ ┗ 📂sql\n ┃ ┃ ┃ ┃ ┃ ┣ 📂configs\n ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜orm_config.ts\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜sql_config.ts\n ┃ ┃ ┃ ┃ ┃ ┣ 📂entities\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜user.ts\n ┃ ┃ ┃ ┃ ┃ ┗ 📂requests\n ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜sql_delete_request.ts\n ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜sql_get_request.ts\n ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜sql_insert_request.ts\n ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜sql_update_request.ts\n ┃ ┗ 📜index.ts\n ┣ 📂test\n ┃ ┗ 📜.gitkeep\n ┣ 📜.eslintignore\n ┣ 📜.eslintrc\n ┣ 📜.gitignore\n ┣ 📜.nvmrc\n ┣ 📜.prettierignore\n ┣ 📜.prettierrc\n ┣ 📜babel.config.json\n ┣ 📜ecosystem.config.cjs\n ┣ 📜jest.config.json\n ┣ 📜nodemon.json\n ┣ 📜package.json\n ┣ 📜readme.md\n ┣ 📜tsconfig.json\n ┗ 📜typedoc.json\n```\n\n## Usage and Configuration\n\nAfter downloading or cloning the Git Repository\n\n  1. go to the **project** folder and copy all the content in your server's project\n   \n  2. go into your **package.json file**, fill the following points:\n   \n     - \"name\" : Specify the Project Name\n     - \"description\" : Specify the Project Description\n     - \"url\" : \"git+url\" (complete the url line with the git url of your repository)\n     - \"author\" : Specify the Project Author (Organisation name)\n  \n  3. and type ***npm install*** to install all packages of Dependencies and Dev_Dependencies \n\n---\n\u003cp style=\"text-align: center\"\u003e Copyright \u0026copy; 2025 James Brel All Rights Reserved\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesbrel%2Fnode_mdc_and_modular_arch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesbrel%2Fnode_mdc_and_modular_arch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesbrel%2Fnode_mdc_and_modular_arch/lists"}