Skip to content

nicosterzer/cotizador-proyectos

Repository files navigation

Cotizador de Proyectos

Sistema web para cotizar y estimar proyectos de software usando una version simplificada del modelo COCOMO. Permite cargar los datos principales de un proyecto, calcular esfuerzo, duracion, equipo sugerido y costo estimado, y guardar cada cotizacion en PostgreSQL.

Caracteristicas

  • Alta de cotizaciones de proyectos.
  • Calculo de esfuerzo en persona-mes.
  • Estimacion de duracion del proyecto.
  • Sugerencia de tamano de equipo.
  • Calculo de costo base, reserva de riesgo y costo total.
  • Historial de cotizaciones guardadas.
  • Detalle completo de cada estimacion.
  • Creacion automatica de la base de datos y tabla si no existen.

Tecnologias

  • .NET 10
  • ASP.NET Core MVC
  • PostgreSQL
  • Npgsql
  • Bootstrap
  • Razor Views

Requisitos

  • .NET SDK 10 o superior.
  • PostgreSQL local, Neon o una instancia PostgreSQL disponible.
  • Visual Studio, Visual Studio Code o cualquier editor compatible con .NET.

Configuracion

La cadena de conexion se encuentra en appsettings.json:

"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5432;Database=cotizador_proyectos;Username=postgres;Password=postgres;SSL Mode=Disable"
}

Por defecto espera PostgreSQL local y la base cotizador_proyectos.

Si queres usar Neon o Render, configura la variable de entorno ConnectionStrings__DefaultConnection en el panel del hosting. Ejemplo:

Host=ep-xxxx.us-east-2.aws.neon.tech;Database=neondb;Username=neondb_owner;Password=TU_PASSWORD;SSL Mode=Require;Trust Server Certificate=true

Base de datos

La aplicacion crea automaticamente la tabla project_estimates al iniciar. La base de datos debe existir previamente, por ejemplo creada desde Neon.

Tambien se incluye un script manual en:

Database/schema.sql

Como ejecutar

Desde la carpeta del proyecto:

dotnet restore
dotnet build
dotnet run

Luego abrir en el navegador:

http://localhost:5298

Deploy gratis con Render + Neon

Esta version esta preparada para desplegarse gratis usando:

  • Render Free Web Service para hospedar la app.
  • Neon Free Postgres para la base de datos.
  • Dockerfile incluido en la raiz del proyecto.

Pasos:

  1. Crear una cuenta en Neon.
  2. Crear un proyecto PostgreSQL gratuito.
  3. Copiar la connection string de Neon en formato compatible con .NET/Npgsql.
  4. Crear una cuenta en Render.
  5. Crear un nuevo Web Service conectado a este repositorio de GitHub.
  6. En Render, seleccionar Docker como runtime.
  7. Agregar una variable de entorno:
ConnectionStrings__DefaultConnection=Host=...;Database=...;Username=...;Password=...;SSL Mode=Require;Trust Server Certificate=true
  1. Deploy.

Render publicara la app en una URL del estilo:

https://tu-app.onrender.com

En el plan gratuito, Render puede pausar la app cuando no recibe trafico por un rato. La primera visita despues de una pausa puede tardar mas de lo normal.

Modelo de estimacion

El sistema usa coeficientes COCOMO basicos segun el modo seleccionado:

Modo Uso sugerido
Organico Proyectos simples o conocidos
SemiAcoplado Proyectos de complejidad media
Empotrado Proyectos complejos, con restricciones fuertes

El calculo considera:

  • Lineas de codigo estimadas.
  • Modo COCOMO.
  • Multiplicador de complejidad.
  • Tarifa por hora.
  • Horas mensuales por persona.
  • Porcentaje de reserva de riesgo.

Estructura del proyecto

CotizadorProyectos/
+-- Controllers/
|   +-- EstimacionesController.cs
+-- Data/
|   +-- IProjectEstimateRepository.cs
|   +-- SqlProjectEstimateRepository.cs
+-- Database/
|   +-- schema.sql
+-- Models/
|   +-- CocomoMode.cs
|   +-- ProjectEstimate.cs
|   +-- ProjectEstimateForm.cs
+-- Services/
|   +-- CocomoCalculator.cs
|   +-- ICocomoCalculator.cs
+-- Views/
|   +-- Estimaciones/
+-- wwwroot/
+-- Program.cs
+-- appsettings.json

Notas para subir a Git

Antes de publicar el repositorio, conviene excluir archivos generados localmente:

bin/
obj/
*.log
.vs/
.dotnet/
.nuget/

Autor

Proyecto desarrollado como sistema de cotizacion y estimacion de proyectos con ASP.NET Core y PostgreSQL.

About

Sistema web de cotización y estimación de proyectos usando ASP.NET Core MVC, SQL Server y un modelo COCOMO simplificado.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors