GithubHelp home page GithubHelp logo

lorenatoloza / hexactalabs-netcore_react-initial Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lnapolihx/hexactalabs-netcore_react-initial

0.0 0.0 0.0 663 KB

License: Apache License 2.0

C# 28.59% HTML 1.36% JavaScript 60.73% CSS 9.21% Shell 0.10%

hexactalabs-netcore_react-initial's Introduction

HexactaLabs-.NETCore_React

Hexacta 2020

Bienvenidos a los Hexacta Labs

Este curso está orientado a profesionales, no profesionales y recién iniciados en el desarrollo web. Se trata de la implementación guiada de un sitio web sobre el manejo de stock de productos generales.

El curso tiene diferentes etapas y nivelaciones con este formato:

  • Initial: Presentación de la aplicación básica, pasos para correrla localmente y planteo de la primer actividad: Backend con .NetCore.
  • Level 1: Se nivelará presentando una aplicación con las actividades de la etapa inicial completas. Planteo de la segunda actividad: Frontend con ReactJS.
  • Level 2: Se presenta la aplicación con las actividades anteriores completas. Planteo de la tercera actividad: FullStack development.
  • Final: Se presenta la aplicación completa. Planteo de la actividad final.

Requisitos

  • Conocimientos básicos de HTML
  • Manejo básico de bases de datos
  • Conocimientos básicos sobre ORMs

Seguir la documentación para instalar las herramientas necesarias y comprobar que todo esté funcionando.

Actividad Inicial

Para el trabajo inicial, se necesita crear un servicio backend que se conecte a la base de datos local para obtener información y brindar operaciones CRUD de la entidad Provider.

IMPORTANTE: Al momento de crear los servicios del lado Backend es necesario descomentar en la clase Startup.cs:

//services.AddTransient<ProviderService>();

Este código permite utilizar un objeto sin instanciarlo directamente. Luego podremos usarlo en otras clases, como por ejemplo en ProductTypeController.cs se utiliza la inyección de ProductTypeService. En la introducción a NetCore hay una explicación sobre el concepto de inyección de dependencias.

Luego descomentar la configuración del mapeo para Provider en ModelProfile.cs:

//CreateMap<Provider, ProviderDTO>().ReverseMap();  

Esta línea nos permite mapear entre Provider y ProviderDTO según las convenciones de AutoMapper. Será parte de la actividad crear un ProviderDTO para enviar la información necesaria a la vista. Para más información sobre ReverseMap() aquí. En la introducción a NetCore hay información sobre automapper.

El sistema debe ser capaz de:

  • Crear, editar y eliminar un nuevo provider a través de la sección Proveedores dentro del sitio.
  • Realizar búsquedas de proveedores.
  • La interfaz swagger debe mostrar todos los servicios expuestos.
  • La web React debe conectarse con estos servicio configurando un store.

Tips

Entidad Store (Tienda)

En la web se encuentra una sección llamada Tiendas en donde se presenta una pantalla con la implementación completa sobre:

  • Búsqueda de tiendas: A través de un formulario en pantalla se envía una serie de parámetros para realizar la consulta en la base de datos.
  • Listado de tiendas: una grilla presenta el detalle de cada tienda además de los botones de acción para:
    • Ir al detalle de una tienda
    • Navegar a la pantalla de edición
    • Eliminar tienda

Se recomienda utilizar esta entidad tanto del lado frontend como backend para realizar las actividades teniendo esta sección como referencia.

Swagger

La idea de swagger es crear una interfaz para probar nuestro backend, a partir de poca información que le dejemos anotada a nuestros endpoints. Si buscamos en la carpeta Stock.Api/Controllers en la clase ProductTypeController.cs

...
/// <summary>
/// Permite recuperar una instancia mediante un identificador
/// </summary>
/// <param name="id">Identificador de la instancia a recuperar</param>
/// <returns>Una instancia</returns>
[HttpGet("{id}")]
public ActionResult<ProductTypeDTO> Get(string id)
...

Destacamos como primordial:

  • summary: da información sobre la funcionalidad de nuestro endpoint
  • param: da información sobre nuestros atributos query, param, form
  • returns: informacion sobre el tipo retornado.

Luego si nos abrimos el browser en localhost:5000/swagger nos abrirá una página con todos nuestros endpoints: swagger-ui

Para ver información más extensa de esta herramienta aquí. En la introducción a NetCore hay más información sobre Swagger.

Front end

Para correr la app, solo hace falta estar situado en la carpeta Stock.Web/client-app y ejecutar npm start en la consola.

Los request a la API se hacen a través del server de desarrollo que usa create-react-app, el cual se configura en el archivo package.json bajo la key proxy. Por defecto, se espera que la API corra en localhost:5000.

Backend

Inicialmente, debería funcionar ejecutar la siguiente instrucción en consola:

dotnet run --project Stock.Api/Stock.Api.csproj

En Docs/Prerequisitos Netcore hay una guía de como ejecutar/debuggear el backend

¿Tuviste algun problema?

hexactalabs-netcore_react-initial's People

Contributors

fdollb avatar jonathanloscalzo avatar jorgegim avatar lnapolihx avatar lorenatoloza avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.