Skip to content

MasterCloudApps-Projects/RUP-Arquitecturas-Agiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCA-TFM-Sharethings

Índice

  1. Introducción
  2. Modelo del dominio
  3. Stack Tecnológico
  4. Descripción técnica del proyecto
  5. Metodología RUP
  6. Sharethings

Introducción

El objetivo de este proyecto es afianzar todo lo aprendido durante el curso y aunar todos los conceptos en un mínimo producto viable.

Para ello hemos aplicado los conceptos de las siguientes asignaturas,

  • Diseño y calidad software
  • Patrones y arquitectura software
  • Pruebas software
  • Seguridad por cultura
  • Pruebas de servicios de Internet
  • Arquitecturas de servicios de Internet
  • Persistencia y análisis de datos
  • Computación en la nube
  • Contenedores y orquestadores
  • DevOps
  • Repositorios y modelos de desarrollo
  • Integración y entrega continua
  • Despliegue continuo

Nos hemos apoyado como metodología principal de desarrollo en Rational Unified Process. Usando como tecnología principal Net 5 y lenguaje mayoritario C#, además de otros como Javascript, Razor y Bootstrap y SQL Server apoyado sobre el ORM Entity Framework Core para la capa de persistencia.

Para proveer una red de seguridad a nuestro proyecto nos hemos apoyado en el framework xUnit para pruebas unitarias y funcionales.

La aplicación web desarrollada se llama ShareThings. La cual consiste en dar a las personas una herramienta para compartir productos que no utilicen en un periodo de tiempo pactado, es decir, realizar prestamos de productos entre personas de forma desinteresada.

Modelo del dominio

viewer

Stack Tecnologico

  • BackEnd Framework: .Net 5
  • FrontEnd Framework:
    • Razor
    • BootStrap
    • Javascript
  • BBDD: SQL Server 2019
    • ORM: Entitty Framework Core
    • CodeFisrt Mode
  • Authorization management: Identity service
  • Source Control: GitHub
  • Testing Framework:
    • xUnit
    • Moq
    • TestHostServer
  • Quality tool: SonarQube
  • Continuous Integration: GitHub Actions
  • Continuous Deployment: GitHub Actions
  • Cloud Infrastructure: Azure
    • Blob Storage
    • App Service
    • SQL Database service
  • Local infrastructure:
    • Docker Compose
    • IIS Express
  • Third party tools: Sendgrid

Descripción técnica del proyecto

ShareThings es una aplicación construida con .Net 5 y Entity Framework Core sobre base de datos Microsoft SQL Server. Se automatizan los flujos de trabajo sobre GitActions y se despliegue sobre Azure Cloud.

Arranque del proyecto

Una vez descargado el código del repositorio existen las siguientes opciones de arranque local:

  • Recursos instalados localmente
  • Despliegue mediante Docker

Recursos instalados localmente

  • Es necesario instalar el motor de base de datos Microsft SQL Server desde el siguiente enlace

  • Instalación de .Net 5 desde el siguiente enlace

  • Instalación del cliente Entity Framework Core

dotnet tool install --global dotnet-ef
  • Ejecutar los siguientes comandos para la preparación del modelo de base de datos desde la carpeta raíz
dotnet ef migrations add InitialCreate --project .\ShareThings\ShareThings.csproj --context ShareThingsIdentityContext
dotnet ef --startup-project .\ShareThings\ migrations add InitialCreate --project .\ShareThings.Data\ShareThings.Data.csproj --context ShareThingsDbContext
dotnet ef database update -c ShareThingsIdentityContext
dotnet ef database update -c ShareThingsDbContext
  • Abrir el fichero ShareThings.sln desde Visual Studio y ejecutar la aplicación en IIS Express

Despliegue mediante Docker

  • Instalación de Docker desde el siguiente enlace

  • Ejecutar el siguiente comando desde el raíz para arrancarlo

docker-compose -f "docker-compose.yml" up -d --build
  • Ejecutar el siguiente comando desde el raíz para pararlo
docker-compose -f "docker-compose.yml" down

Recursos de Azure

A continuación se muestra la infraestructura desplegada en Azure Cloudd

Resource Group

viewer

Web

viewer

BBDD

viewer

Blob Storage

viewer viewer

viewer

Quality

viewer

GitHub Actions

Este sistema funciona mediante la parametrización de pasos ejecutados secuencialmente, para la parte de integración continua (CI) estos son los pasos que hemos definido:

viewer

Para la sustitución de password del entorno producción se han utilizado las Secrets de Github.

En la parte de entrega continua (CD) los definidos son estos:

viewer

Cada ocurrencia está descrita en el fichero dotnet.yaml que contiene la aplicación dentro del directorio .github/workflows.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages