Este es un proyecto de ejemplo que demuestra cómo aplicar buenas prácticas y una arquitectura limpia en el desarrollo de software. El proyecto está construido con Node.js y TypeScript y sigue los principios SOLID, Clean Code y Clean Architecture. También incluye pruebas automatizadas con Jest.
Para clonar y ejecutar este proyecto, sigue estos pasos:
-
Clona el repositorio:
git clone https://github.com/tu-usuario/tu-proyecto.git
-
Navega al directorio del proyecto:
cd tu-proyecto
-
Instala las dependencias necesarias:
npm install
-
Construye el proyecto:
npm run build
-
Ejecuta el proyecto:
npm start
Para usar este proyecto, sigue los pasos a continuación:
- Descripción de cómo usar el proyecto.
- Ejemplos de comandos o código.
Este proyecto sigue la arquitectura limpia y se organiza de la siguiente manera:
- 🔧 config/plugins: Contiene los plugins y configuraciones.
args.plugin.ts
: Plugin para manejar argumentos.args.plugin.test.ts
: Pruebas para el plugin de argumentos.
- 📂 domain/use-cases: Contiene los casos de uso del dominio.
create-table.use-case.ts
: Caso de uso para crear una tabla.create-table.use-case.test.ts
: Pruebas para el caso de uso de crear una tabla.save-file.use-case.ts
: Caso de uso para guardar un archivo.save-file.use-case.test.ts
: Pruebas para el caso de uso de guardar un archivo.
- 🎨 presentation: Contiene los controladores y la lógica de la interfaz de usuario.
server-app.ts
: Lógica principal del servidor.server-app.test.ts
: Pruebas para la lógica del servidor.
- 📝 app.logic.ts: Lógica de la aplicación y el punto de partida del proyecto. Este archivo fue la base para aplicar código limpio y una buena arquitectura.
- 🔍 app.ts: Punto de entrada de la aplicación.
- ✅ app.test.ts: Pruebas para el punto de entrada de la aplicación.
project
├── node_modules
├── src
│ ├── config
│ │ └── plugins
│ │ ├── args.plugin.test.ts
│ │ └── args.plugin.ts
│ ├── domain
│ │ └── use-cases
│ │ ├── create-table.use-case.test.ts
│ │ ├── create-table.use-case.ts
│ │ ├── save-file.use-case.test.ts
│ │ └── save-file.use-case.ts
│ ├── presentation
│ │ ├── server-app.test.ts
│ │ └── server-app.ts
│ ├── app.logic.ts
│ ├── app.test.ts
│ └── app.ts
├── .gitignore
├── jest.config.ts
├── nodemon.json
├── package-lock.json
├── package.json
├── README.md
└── tsconfig.json