[IMPROVED] Solicitar descripción de proyecto y generar README.md profesional

This commit is contained in:
Mauro Rosero P. 2025-03-12 18:06:07 -05:00
parent 81cf86f290
commit a2e1ce6681
Signed by: mrosero
GPG key ID: 83BD2A5F674B7E26
2 changed files with 215 additions and 11 deletions

View file

@ -55,6 +55,8 @@ proj_008="Seleccione el tipo de proyecto"
proj_009="Este tipo determinará la estructura inicial del proyecto"
proj_010="El tipo de proyecto seleccionado no es válido"
proj_011="Proyecto creado exitosamente en:"
proj_012="Ingrese una descripción del proyecto"
proj_013="Breve descripción del propósito y alcance del proyecto (máximo 3 líneas)"
vldt_001="no puede estar en blanco..."
vldt_002="Contraseña incorrecta! Intente nuevamente."

View file

@ -35,6 +35,7 @@ title="${head_000} ${head_002}"
apps_title="${proj_001}"
PROJECT_FOLDER=""
PROJECT_TYPE=""
PROJECT_DESCRIPTION=""
VALID_TYPES=("ansible" "odoo" "sp32home" "nodejs" "python" "cobol" "otros")
# Verifica que dialog esté instalado
@ -135,6 +136,23 @@ function request_project_type() {
fi
}
# Función para solicitar la descripción del proyecto
function request_project_description() {
dialog_input_box "${proj_012}" "${proj_013}" ""
if [ $codex -ne 0 ]; then
echo "${head_canceled}"
exit 1
fi
PROJECT_DESCRIPTION="$value"
# Usar una descripción por defecto si está vacía
if [ -z "$PROJECT_DESCRIPTION" ]; then
PROJECT_DESCRIPTION="Proyecto de tipo $PROJECT_TYPE creado con MRDevs Tools."
fi
}
# Función para crear la estructura del proyecto
function create_project_structure() {
# Crear la carpeta del proyecto
@ -144,22 +162,203 @@ function create_project_structure() {
mkdir -p "$PROJECT_PATH/docs"
mkdir -p "$PROJECT_PATH/src"
# Crear archivo README.md básico
cat > "$PROJECT_PATH/README.md" << EOF
# Proyecto $PROJECT_NAME
# Crear archivo setup.md básico
cat > "$PROJECT_PATH/docs/setup.md" << EOF
# Configuración del Entorno de Desarrollo
## Descripción
Proyecto de tipo $PROJECT_TYPE creado con MRDevs Tools.
Este documento describe los pasos necesarios para configurar el entorno de desarrollo para el proyecto $PROJECT_NAME.
## Estructura
- docs/ - Documentación del proyecto
- src/ - Código fuente
## Requisitos Previos
- [Requisito 1]
- [Requisito 2]
- [Requisito 3]
## Instalación
1. Clone el repositorio:
\`\`\`bash
git clone [URL-del-repositorio]
cd $PROJECT_NAME
\`\`\`
2. Configure el entorno según el tipo de proyecto ($PROJECT_TYPE).
3. [Pasos adicionales específicos del proyecto]
## Configuración
Para configurar el entorno de desarrollo, siga las instrucciones en docs/setup.md.
## Licencia
Este proyecto está licenciado bajo AGPL-3.0.
[Instrucciones de configuración específicas]
## Pruebas
[Instrucciones para ejecutar pruebas]
## Solución de Problemas
[Problemas comunes y soluciones]
---
> Nota: Este es un documento de configuración inicial que debe ser completado con la información específica del proyecto.
EOF
# Obtener fecha actual
CURRENT_DATE=$(date +%Y-%m-%d)
# Crear archivo README.md mejorado
cat > "$PROJECT_PATH/README.md" << EOF
# $PROJECT_NAME
![License](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)
![Status](https://img.shields.io/badge/Status-En%20Desarrollo-yellow)
## 📋 Descripción
$PROJECT_DESCRIPTION
## 🔧 Tecnologías
\`\`\`
Tipo de Proyecto: $PROJECT_TYPE
Fecha de Creación: $CURRENT_DATE
\`\`\`
## 📁 Estructura
\`\`\`
$PROJECT_NAME/
├── docs/ # Documentación del proyecto
├── src/ # Código fuente
EOF
# Añadir estructura específica según el tipo de proyecto
case "$PROJECT_TYPE" in
"ansible")
cat >> "$PROJECT_PATH/README.md" << EOF
├── inventories/ # Inventarios de Ansible
├── roles/ # Roles de Ansible
└── playbooks/ # Playbooks de Ansible
\`\`\`
## 🚀 Uso
1. Actualice el inventario en \`inventories/\`
2. Configure los roles necesarios en \`roles/\`
3. Ejecute los playbooks mediante \`ansible-playbook playbooks/nombre-playbook.yml\`
EOF
;;
"odoo")
cat >> "$PROJECT_PATH/README.md" << EOF
├── addons/ # Módulos personalizados de Odoo
├── data/ # Archivos de datos
├── scripts/ # Scripts de utilidad
└── build/ # Configuración de construcción
\`\`\`
## 🚀 Uso
1. Configure el entorno en la carpeta \`build/\`
2. Ejecute \`scripts/start.sh\` para iniciar el entorno Odoo
3. Acceda a la aplicación en http://localhost:8069
EOF
;;
"sp32home")
cat >> "$PROJECT_PATH/README.md" << EOF
├── hardware/ # Diseños y esquemas de hardware
├── firmware/ # Código firmware ESP32
├── libraries/ # Bibliotecas personalizadas
└── build/ # Archivos de construcción
\`\`\`
## 🚀 Uso
1. Revise los esquemas en \`hardware/\`
2. Compile el firmware usando PlatformIO o Arduino IDE
3. Cargue el firmware en su dispositivo ESP32
EOF
;;
"nodejs")
cat >> "$PROJECT_PATH/README.md" << EOF
├── src/
│ ├── controllers/ # Controladores de la aplicación
│ ├── models/ # Modelos de datos
│ └── routes/ # Definición de rutas
├── public/ # Archivos estáticos
└── tests/ # Pruebas unitarias y de integración
\`\`\`
## 🚀 Uso
1. Instale las dependencias: \`npm install\`
2. Configure las variables de entorno en \`.env\`
3. Ejecute la aplicación: \`npm start\`
EOF
;;
"python")
cat >> "$PROJECT_PATH/README.md" << EOF
├── src/
│ └── $PROJECT_NAME/ # Código fuente del paquete
└── tests/ # Pruebas unitarias
\`\`\`
## 🚀 Uso
1. Cree un entorno virtual: \`python -m venv .venv\`
2. Active el entorno virtual: \`source .venv/bin/activate\`
3. Instale las dependencias: \`pip install -r requirements.txt\`
4. Instale el paquete en modo desarrollo: \`pip install -e .\`
EOF
;;
"cobol")
cat >> "$PROJECT_PATH/README.md" << EOF
├── src/
│ ├── main/ # Programas principales
│ └── copy/ # Libros de copybook
└── build/ # Archivos de compilación
\`\`\`
## 🚀 Uso
1. Configure el entorno COBOL según su implementación (GnuCOBOL, MicroFocus, etc.)
2. Compile los programas usando la configuración en \`build/\`
3. Ejecute los programas compilados
EOF
;;
"otros")
cat >> "$PROJECT_PATH/README.md" << EOF
\`\`\`
## 🚀 Uso
Consulte la documentación específica en la carpeta \`docs/\` para instrucciones de configuración y uso.
EOF
;;
esac
# Añadir secciones comunes al final
cat >> "$PROJECT_PATH/README.md" << EOF
## 🔍 Prerrequisitos
> Por definir según las necesidades específicas del proyecto
## ⚙️ Configuración
Para configurar el entorno de desarrollo, siga las instrucciones en [docs/setup.md](docs/setup.md).
## 📄 Licencia
Este proyecto está licenciado bajo la Licencia Pública General Affero de GNU (AGPL-3.0).
Ver el archivo [LICENSE](LICENSE) para más detalles.
## 👥 Autores
- [$(git config user.name)] ($(git config user.email))
---
Generado con MRDevs Tools © $(date +%Y)
EOF
# Crear estructura específica según el tipo de proyecto
@ -229,6 +428,9 @@ function main() {
# Solicitar tipo de proyecto
request_project_type
# Solicitar descripción del proyecto
request_project_description
# Crear estructura del proyecto
create_project_structure
}