-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
17 changed files
with
644 additions
and
736 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,28 @@ | ||
# monorepo-mern-railway-starter | ||
# TOC | ||
|
||
- | ||
- [TOC](#toc) | ||
- [Breaking Down the Repo Name](#breaking-down-the-repo-name) | ||
- [monorepo](#monorepo) | ||
- [mern](#mern) | ||
- [railway](#railway) | ||
- [starter](#starter) | ||
|
||
# TOC | ||
## Breaking Down the Repo Name | ||
|
||
### monorepo | ||
|
||
- A **monorepo** refers to a single repository containing multiple codebases that might otherwise be separated into individual repositories. This approach simplifies dependency management, streamlines workflows, and enhances collaboration across different parts of an application. Our repository utilizes this structure to centralize and unify the development process, ensuring consistency and ease of maintenance. | ||
|
||
### mern | ||
|
||
- The **MERN** stack is a popular set of technologies (MongoDB, Express.js, React, and Node.js) used for full-stack development. This stack is known for its efficiency in building scalable and performance-oriented web applications. By employing the MERN stack, this repo provides a robust foundation for developing modern web applications with JavaScript and TypeScript, ensuring a seamless fullstack experience. | ||
|
||
### railway | ||
|
||
- **Railway** is a platform as a service (PaaS) that offers easy deployment, scaling, and infrastructure management for cloud applications. It's chosen for this project to simplify the deployment process and provide developers with a quick way to see their applications in production. Utilizing Railway, developers can focus more on code and less on configuring servers. | ||
|
||
### starter | ||
|
||
- A **starter** repository is designed to be a starting point for new projects. It includes essential configurations, structures, and code examples to jump-start development without having to set up everything from scratch. This repo is tailored to provide developers with a ready-to-use, comprehensive setup that embodies best practices and modern development standards. | ||
|
||
Each element of the repository name has been carefully chosen to reflect the core aspects and intended usage of the project, ensuring that developers can quickly grasp the utility and focus of this monorepo. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<h1 align="center">🚀 Monorepo MERN Railway starter 🚀</h1> | ||
|
||
<p align="center"> | ||
<img alt="TypeScript badge" src="https://img.shields.io/badge/-TypeScript-black?style=for-the-badge&logoColor=white&logo=typescript&color=2F73BF"> | ||
<img alt="React badge" src="https://img.shields.io/badge/-React-black?style=for-the-badge&logo=react&color=23272F"> | ||
<img alt="Express badge" src="https://img.shields.io/badge/-Express-black?style=for-the-badge&logoColor=black&logo=express&color=F7DF1E"> | ||
<img alt="MongoDB badge" src="https://img.shields.io/badge/-MongoDB-black?style=for-the-badge&logoColor=white&logo=mongodb&color=127237"> | ||
<img alt="Railway badge" src="https://img.shields.io/badge/-Railway-black?style=for-the-badge&logoColor=white&logo=railway&color=A11AE6"> | ||
</a> | ||
</p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,71 +1,93 @@ | ||
## Impact Legend | ||
|
||
🔴 **Critical** - Dependencies that are critical to the core functionality of the package. If these dependencies were to fail or become unavailable, it would severely impact the package's ability to function correctly. | ||
|
||
🟠 **Important** - Dependencies that are important for key features or components of the package. While not critical, their absence or failure would significantly degrade the package's functionality. | ||
|
||
🟡 **Moderate** - Dependencies that provide useful functionality or enhancements, but the package could still operate without them, albeit with reduced capabilities. | ||
|
||
🟢 **Low** - Dependencies that provide minor functionality or utilities, and their absence would have a minimal impact on the package's core operations. | ||
|
||
🔵 **Developmental** - Dependencies that are primarily used for development purposes, such as testing, linting, or build tools. They don't directly impact the package's runtime functionality. | ||
|
||
🟣 **Transitive** - Dependencies that are brought in transitively by other dependencies and are not directly used by the package itself. | ||
|
||
⚫ **Deprecated** - Dependencies that are marked as deprecated and should be considered for replacement or removal in future versions of the package. | ||
|
||
🔶 **Experimental** - Dependencies that are experimental or in an early stage of development, and their stability or long-term support is not guaranteed. | ||
|
||
🔷 **External** - Dependencies that are external to the project or organization and are not directly maintained or controlled by the development team. | ||
|
||
🔸 **Internal** - Dependencies that are internal to the project or organization and are maintained or controlled by the development team. | ||
|
||
# backend | ||
|
||
| Name | Version | Description | | ||
| ------------------------- | ------------------ | ----------- | | ||
| @anatine/zod-openapi | ^2.2.5 | Testings | | ||
| @org/shared | file:../shared/src | - | | ||
| @ts-rest/core | ^3.45.0 | - | | ||
| @ts-rest/express | ^3.45.0 | - | | ||
| @ts-rest/open-api | ^3.45.0 | - | | ||
| @tsvdec/core | ^2.0.11 | - | | ||
| @tsvdec/decorators | ^1.0.7 | - | | ||
| bcrypt | ^5.1.1 | - | | ||
| body-parser | ^1.20.2 | - | | ||
| bottlejs | ^2.0.1 | - | | ||
| compression | ^1.7.4 | - | | ||
| cookie-parser | ^1.4.6 | - | | ||
| cors | ^2.8.5 | - | | ||
| cross-dirname | ^0.1.0 | - | | ||
| dotenv | ^16.4.5 | - | | ||
| express | ^4.18.2 | - | | ||
| express-rate-limit | ^7.2.0 | - | | ||
| helmet | ^7.1.0 | - | | ||
| hpp | ^0.2.3 | - | | ||
| http-status | ^1.7.4 | - | | ||
| jsonwebtoken | ^9.0.2 | - | | ||
| mongodb | ^6.5.0 | - | | ||
| mongoose | ^8.3.2 | - | | ||
| morgan | ^1.10.0 | - | | ||
| openapi3-ts | ^4.3.1 | - | | ||
| swagger-jsdoc | ^6.2.8 | - | | ||
| swagger-ui-express | ^5.0.0 | - | | ||
| winston | ^3.11.0 | - | | ||
| winston-daily-rotate-file | ^5.0.0 | - | | ||
| zod | ^3.22.5 | - | | ||
IMPACT !!! | ||
|
||
| Name | Version | Description | | ||
| ------------------------- | ------------------ | ------------------------------------------------------------------------------- | | ||
| @anatine/zod-openapi | ^2.2.5 | Used for generating OpenAPI documentation from Zod schemas in the backend | | ||
| @org/shared | file:../shared/src | Contains shared code, models, and types used by both the backend and frontend | | ||
| @ts-rest/core | ^3.45.0 | Core library for building the TypeScript REST API in the backend | | ||
| @ts-rest/express | ^3.45.0 | Integrates the @ts-rest/core library with Express.js in the backend | | ||
| @ts-rest/open-api | ^3.45.0 | Generates OpenAPI documentation from the @ts-rest/core API in the backend | | ||
| @tsvdec/core | ^2.0.11 | Provides core functionality for using TypeScript decorators in the backend | | ||
| @tsvdec/decorators | ^1.0.7 | Collection of decorators used throughout the backend codebase | | ||
| bcrypt | ^5.1.1 | Used for hashing and verifying user passwords in the backend | | ||
| body-parser | ^1.20.2 | Parses incoming request bodies in the Express.js middleware in the backend | | ||
| bottlejs | ^2.0.1 | Inversion of Control (IoC) container for dependency injection in the backend | | ||
| compression | ^1.7.4 | Compresses responses to reduce data transfer in the backend | | ||
| cookie-parser | ^1.4.6 | Parses cookie headers in incoming requests in the backend | | ||
| cors | ^2.8.5 | Provides a middleware for enabling CORS in the Express.js app in the backend | | ||
| cross-dirname | ^0.1.0 | Utility for getting the directory path of a file in the backend | | ||
| dotenv | ^16.4.5 | Loads environment variables from .env files in the backend | | ||
| express | ^4.18.2 | The web framework used for building the backend API | | ||
| express-rate-limit | ^7.2.0 | Provides rate limiting to protect against brute force attacks in the backend | | ||
| helmet | ^7.1.0 | Collection of security middleware for Express.js in the backend | | ||
| hpp | ^0.2.3 | Protects against HTTP Parameter Pollution attacks in the backend | | ||
| http-status | ^1.7.4 | Utility for working with HTTP status codes in the backend | | ||
| jsonwebtoken | ^9.0.2 | Used for generating and verifying JSON Web Tokens (JWT) in the backend | | ||
| mongodb | ^6.5.0 | The official MongoDB driver for Node.js used in the backend | | ||
| morgan | ^1.10.0 | HTTP request logger middleware for Express.js in the backend | | ||
| openapi3-ts | ^4.3.1 | Used for generating TypeScript types from OpenAPI specifications in the backend | | ||
| swagger-jsdoc | ^6.2.8 | Generates OpenAPI documentation from JSDoc comments in the backend | | ||
| swagger-ui-express | ^5.0.0 | Renders the Swagger UI for the OpenAPI documentation in the backend | | ||
| winston | ^3.11.0 | Logging library used for application logging in the backend | | ||
| winston-daily-rotate-file | ^5.0.0 | Winston transport for logging to a rotating file in the backend | | ||
| zod | ^3.22.5 | TypeScript-first schema validation library used throughout the project | | ||
|
||
# frontend | ||
|
||
| Name | Version | Description | | ||
| -------------------------------- | ------------------ | --------------------------- | | ||
| @emotion/react | ^11.11.4 | abece iasxko asdhuashdi ash | | ||
| @emotion/styled | ^11.11.0 | - | | ||
| @mui/icons-material | ^5.15.14 | - | | ||
| @mui/lab | 5.0.0-alpha.169 | - | | ||
| @mui/material | ^5.15.14 | - | | ||
| @mui/styles | ^5.15.14 | - | | ||
| @mui/x-tree-view | ^7.0.0 | - | | ||
| @org/shared | file:../shared/src | - | | ||
| @preact/signals-react | ^2.0.1 | - | | ||
| @tanstack/react-query | ^5.32.1 | - | | ||
| @ts-rest/core | ^3.45.0 | - | | ||
| @ts-rest/react-query | ^3.45.0 | - | | ||
| @uidotdev/usehooks | ^2.4.1 | - | | ||
| axios | ^1.6.8 | - | | ||
| i18next | ^23.10.1 | - | | ||
| i18next-browser-languagedetector | ^7.2.0 | - | | ||
| i18next-http-backend | ^2.5.0 | - | | ||
| material-ui-popup-state | ^5.1.0 | - | | ||
| react | ^18.2.0 | - | | ||
| react-dom | ^18.2.0 | - | | ||
| react-i18next | ^14.1.0 | - | | ||
| react-router-dom | ^6.22.3 | - | | ||
| Name | Version | Description | | ||
| -------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------- | | ||
| @emotion/react | ^11.11.4 | Used by Material-UI for styling React components in the frontend | | ||
| @emotion/styled | ^11.11.0 | Used by Material-UI for styling React components in the frontend | | ||
| @mui/icons-material | ^5.15.14 | Provides Material Design icons for use in the frontend UI | | ||
| @mui/lab | 5.0.0-alpha.169 | Provides additional components and utilities from Material-UI for the frontend UI | | ||
| @mui/material | ^5.15.14 | The core Material-UI library for building the frontend UI | | ||
| @mui/styles | ^5.15.14 | Used by Material-UI for styling React components in the frontend | | ||
| @mui/x-tree-view | ^7.0.0 | Provides a TreeView component from Material-UI for displaying hierarchical data in the frontend | | ||
| @org/shared | file:../shared/src | Contains shared code, models, and types used by both the backend and frontend | | ||
| @preact/signals-react | ^2.0.1 | Provides a way to use Preact signals in React components for the frontend | | ||
| @tanstack/react-query | ^5.32.1 | Used for data fetching and caching in the frontend React application | | ||
| @ts-rest/core | ^3.45.0 | Core library for building the TypeScript REST API in the backend | | ||
| @ts-rest/react-query | ^3.45.0 | Integrates @tanstack/react-query with the @ts-rest/core API for the frontend | | ||
| axios | ^1.6.8 | Used for making HTTP requests in the frontend React application | | ||
| i18next | ^23.10.1 | Provides internationalization (i18n) support for the frontend UI | | ||
| i18next-browser-languagedetector | ^7.2.0 | Detects the user's language in the browser for i18n in the frontend | | ||
| i18next-http-backend | ^2.5.0 | Loads translation files from the server for i18n in the frontend | | ||
| material-ui-popup-state | ^5.1.0 | Provides a state management solution for popups and menus in the Material-UI frontend UI | | ||
| react | ^18.2.0 | The core React library used for building the frontend UI | | ||
| react-dom | ^18.2.0 | Provides DOM-specific methods for React in the frontend UI | | ||
| react-i18next | ^14.1.0 | Integrates i18next with React for internationalization in the frontend UI | | ||
| react-router-dom | ^6.22.3 | Provides routing functionality for the React frontend application | | ||
|
||
# shared | ||
|
||
| Name | Version | Description | | ||
| -------------------- | ------- | ----------- | | ||
| @anatine/zod-openapi | ^2.2.5 | Testings | | ||
| @ts-rest/core | ^3.45.0 | - | | ||
| @ts-rest/open-api | ^3.45.0 | - | | ||
| http-status | ^1.7.4 | - | | ||
| zod | ^3.22.5 | - | | ||
| Name | Version | Description | | ||
| -------------------- | ------- | ------------------------------------------------------------------------- | | ||
| @anatine/zod-openapi | ^2.2.5 | Used for generating OpenAPI documentation from Zod schemas in the backend | | ||
| @ts-rest/core | ^3.45.0 | Core library for building the TypeScript REST API in the backend | | ||
| @ts-rest/open-api | ^3.45.0 | Generates OpenAPI documentation from the @ts-rest/core API in the backend | | ||
| http-status | ^1.7.4 | Utility for working with HTTP status codes in the backend | | ||
| zod | ^3.22.5 | TypeScript-first schema validation library used throughout the project | |
Oops, something went wrong.