Git Product home page Git Product logo

technicaltest's Introduction

HyperNovaLabs Technical Test

Demostraci贸n de un Sistema Web escrito en C++ WebAssembly con Emscripten y NoesisGUI, con un Backend nativo en C++ gRPC y administrado en C# ASP .NET 5 gRPC.

Herramientas Generales

Windows

  • Instalar Visual Studio Code 馃憠 Descargar
  • Instalar CMake v3.21 o Mayor 馃憠 Descargar
  • Instalar Emscripten v2.0.0 馃憠 Descargar
  • Instalar Ninja 馃憠 Descargar
  • Instalar GNU-Make 馃憠 Descargar
  • Instalar SDK Nativo de NoesisGUI 馃憠 Descargar
    • Crear licencia de prueba 馃憠 Crear
      • Generar el binario NoesisApp.bc (WebAssembly) con la licencia de prueba 馃憠 Gu铆a
  • Instalar .Net 5: Viene integrado con Visual Studio 2019 por defecto

Ubuntu/Linux

  • Instalar GCC:latest (build-essential) 馃憠 Gu铆a
  • Instalar CMake v3.21 o Mayor 馃憠 Descargar
  • Instalar C++ gRPC v1.39.0 馃憠 Gu铆a
  • Instalar Ninja 馃憠 Descargar
  • Instalar Microsoft ODBC driver for SQL Server (Linux) 馃憠 Gu铆a

Pasos para correr el proyecto: Frontend(C++) / Backend(C#)

  • Abrir la soluci贸n de la carpeta HyperNovaLabsBackend
  • Ejecutar el proyecto: Docker-Compose
  • Abrir la consola de desarrollo de Visual Studio 2019 o Mayor
  • Ejecutar los siguentes comandos
    • dotnet tool install --global dotnet-ef
    • dotnet tool update --global dotnet-ef
    • dotnet ef database update --connection "Server=host.docker.internal,5433;Initial Catalog=HyperNovaLabs.Api.ExpenseReport.Db;User Id=sa;Password=Pass@word"
  • Probar el Backend Administrado desde la vista Swagger
  • Probar el Frontend

Nota: Los n煤meros de puertos estan en el archivo docker-compose.override.yml

Pasos para correr el proyecto: Frontend/Backend en C++

  • Ejecutar el archivo docker-compose.yml
  • Probar el Frontend

Nota: El Backend esta escrito en gRPC sin soporte a HTTP/1

Descripci贸n General Proyecto Frontend(C++)

Nota 1: Este proyecto est谩 configurado para usarse en Windows

Nota 2: El frontend aun esta en desarrollo, pronto se subir谩 la app de muestra

  • Compilador Emscripten 馃憠 Visitar
  • Lenguajes de Programaci贸n
    • C++
    • C#
  • Lenguaje de Marcado
    • Xaml
  • Editores
    • Visual Studio Code
    • Visual Studio 2019
    • Blend For Visual Studio 2019
  • Herramientas de Compilaci贸n
    • CMake
    • Ninja
  • Frameworks

Descripci贸n General Proyecto Backend(C++)

Nota: Este proyecto est谩 configurado para usarse en Linux o Windows con WSL2

  • Compilador GCC/G++
  • Lenguaje de Programaci贸n
    • C++
  • Lenguaje de Definici贸n de Interfaces
    • Protobuf
  • Librer铆as

Descripci贸n General Proyecto Backend(C#)

Nota: Este proyecto est谩 configurado para usarse en Visual Studio

  • .Net 5 馃憠 Visitar
  • Lenguaje de Programaci贸n
    • C#
  • Lenguaje de Definici贸n de Interfaces
    • Protobuf

El Backend esta realizado mediante llamadas a procedimientos remotos. Se le ha habilitado compatibilidad mediante Rest Api.

Los archivos de extensi贸n .proto especifican el modelo interno del api.

Puntos de Accesos

Vista Swagger: http://localhost:5785/swagger/index.html

Image of Yaktocat

  1. GET: /api/employee
    • Obtiene una lista de todos los empleados.
  2. POST: /api/employee
    • Crea un nuevo empleado.
  3. GET: /api/employee/{identification}
    • Obtiene un empleado mediante una identificaci贸n.
  4. DELETE: /api/employee/{identification}
    • Borra un empleado mediante su identificaci贸n.
  5. PATH: /api/employee/{employee.identification}
    • Actualiza los datos de un empleado.
  6. GET: /api/employee/{identification}/bills
    • Obtiene todas las facturas de un empleado existente.
  7. GET: /api/bill
    • Obtiene una lista de todas las facturas.
  8. GET: /api/bill/{bill_id}
    • Obtiene una factura por si Id.
  9. POST: /api/bill
    • Crea una nueva factura.

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.