operacion-fuego-quazar

command module
v0.0.0-...-ee2f979 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 13, 2020 License: MIT Imports: 1 Imported by: 0

README

POD POD POD GoMod compatible codecov

Operacion Fuego de Quasar

Han Solo ha sido recientemente nombrado General de la Alianza Rebelde y busca dar un gran golpe contra el Imperio Galáctico para reavivar la llama de la resistencia.

El servicio de inteligencia rebelde ha detectado un llamado de auxilio de una nave portacarga imperial a la deriva en un campo de asteroides. El manifiesto de la nave es ultra clasificado, pero se rumorea que transporta raciones y armamento para una legión entera.

Definición del problema aquí: Problema

Mínimos requirimientos

Technology Version
GoLang 1.14

Cómo ejecutar el programa

Para ejecutar , use go run:

go run main.go

El servidor empezará a escuchar request en los siguientes endpoints:

LOCAL MODE

[POST] localhost:8080/api/v1/topsecret
[GET]  localhost:8080/api/v1/topsecret_split
[POST] localhost:8080/api/v1/topsecret_split/{satellite_name}

Google Cloud Platform

[POST] http://fuego-quazar.rj.r.appspot.com/api/v1/topsecret
[GET]  http://fuego-quazar.rj.r.appspot.com/api/v1/topsecret_split
[POST] http://fuego-quazar.rj.r.appspot.com/api/v1/topsecret_split/{satellite_name}

Swagger

http://localhost:8080/swagger/index.html

Acerca de la solución

// input: distancia al emisor tal cual se recibe en cada satélite
// output: las coordenadas ‘x’ e ‘y’ del emisor del mensaje
func GetLocation(distances ...float32) (x, y float32)

Para obtener la localicazión se uso el algoritmo de Trileteración 2D

Se puede acceder a una implementación de dicho algoritmo en Programming with Java: A Multimedia Approach

// input: el mensaje tal cual es recibido en cada satélite
// output: el mensaje tal cual lo genera el emisor del mensaje
func GetMessage(messages ...[]string) (msg string)

Para obtener el mensaje se asumen los siguientes criterios dado las consideraciones

  • Un defasaje de 0, es válido (todos los mensajes son del mismo tamaño)
  • El defasaje se encuentra al principio del mensaje

La solución se basa en la búsqueda y eliminación del defasaje, y el encuentro con la primera palabra válida en la misma posición entre los tres satélites

Code coverage

Para actualizar el report de coverage ejecutar desde la carpeta raiz del proyecto

go test -coverprofile=coverage.txt -covermode=atomic ./...

Y para subir el reporte

bash <(curl -s https://codecov.io/bash) -t [iamatoken-nousar-...]

Documentation

Overview

main package para el servidor Topsecret.

Directories

Path Synopsis
api
server
Package server provee las funcionas para levantar el servidor basado en el framework web gin-gonic
Package server provee las funcionas para levantar el servidor basado en el framework web gin-gonic
server/controllers
Package controllers provee los handlers de cada controlador Package controllers provee los handlers de cada controlador
Package controllers provee los handlers de cada controlador Package controllers provee los handlers de cada controlador
internal
topsecret
Package topsecret provee los dto de comunicación entre los satélites y el servicio topsecret Package topsecret provee los dto de comunicación entre los satélites y el servicio topsecret
Package topsecret provee los dto de comunicación entre los satélites y el servicio topsecret Package topsecret provee los dto de comunicación entre los satélites y el servicio topsecret
topsecretsplit
Package topsecretsplit provee los dto de comunicación entre los satélites y el servicio topsecret_split Package topsecretsplit provee los dto de comunicación entre los satélites y el servicio topsecret_split Package topsecretsplit provee los dto de comunicación entre los satélites y el servicio topsecret_split
Package topsecretsplit provee los dto de comunicación entre los satélites y el servicio topsecret_split Package topsecretsplit provee los dto de comunicación entre los satélites y el servicio topsecret_split Package topsecretsplit provee los dto de comunicación entre los satélites y el servicio topsecret_split
pkg
decoder
Package decoder provee funciones para obtener el mensaje escondido dentro de un arreglo de mensajes que tienen un defasaje y palabras irreconocibles que serán representadas como espacios en blanco
Package decoder provee funciones para obtener el mensaje escondido dentro de un arreglo de mensajes que tienen un defasaje y palabras irreconocibles que serán representadas como espacios en blanco
locator
Package locator provee funciones para obtener la posición de un punto desconocido en un eje de coordenadas (x, y), teniendo como información la distancia de dicho punto con al menos tres puntos conocidos Package locator provee funciones para obtener la posición de un punto desconocido en un eje de coordenadas (x, y), teniendo como información la distancia de dicho punto con al menos tres puntos conocidos
Package locator provee funciones para obtener la posición de un punto desconocido en un eje de coordenadas (x, y), teniendo como información la distancia de dicho punto con al menos tres puntos conocidos Package locator provee funciones para obtener la posición de un punto desconocido en un eje de coordenadas (x, y), teniendo como información la distancia de dicho punto con al menos tres puntos conocidos

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL