Giter VIP home page Giter VIP logo

hack_the_ocean's Introduction

Hackita project

Ambas partes, front y back se encuentran dentro de este repositorio.

No pudimos realizar el despliegue de nuestro proyecto, se presentó un conflicto con un azure ya que no supimos estructurar los archivos y ello impedía que finalizara el proceso de carga, como se creó todo desde cero nos faltó experiencia en la implementacion. Localmente funciona nuestra solución y se pueden hacer las consultas de la API

En el siguiente enlace se puede apreciar la parte del fron-end desplegada aunque sin funcionalidad https://ocean2-c0d3d.web.app/

El presente proyecto fue concebido para la participación en el hackaton HACK THE OCEAN de LaunchX.

Nuestra tripulación consiste en estudiantes de back end NodeJs:

Tabla de Contenidos

  1. Dependencias
  2. Introducción
  3. Planteamiento del problema
  4. Maquetación y propuestas de Wireframe
  5. front end
  6. Estructura de directorios
  7. Flujo del programa

Dependencias

Este proyecto está desarrollado utilizando Node.js, por lo tanto utilizamos npm como package manager.

A continuación se muestran las dependencia utilizadas en le proyecto, para poder instalarlas utilizar npm install

  1. Jest : Dependencia necesaria para realizar y crear las pruebas de unidad.

    • Para correr las pruebas, desde la terminal ejecutar: npm test test/Directorio_de_la_prueba/prueba.test.js
    • Documentación de jest: https://jestjs.io/
  2. express: Dependencia necesaria para correr el server.

  3. Eslint: Dependencia para corregir y aggreglar nuestro codigo de JS.

4.CorsPara realizar el control de acceso, utilizando el siguiente comando npm install cors --save - Documentación de Cors:https://developer.mozilla.org/es/docs/Web/HTTP/CORS

Introducción

Se nos presentó el desafío de crear un proyecto fullstack encaminado a resolver problemas ambientales, específicamente enfocados a los oceanos mediante la aplicación de las habilidades adquiridas durante la duración de curso de LaunchX.

Las herramientas que decidimos utilizar para la realización de nuestro proyecto fueron:

  • Github
  • NodeJs
  • jQuery
  • HTML
  • CSS

Planteamiento del problema

Entre los ejes para la búsqueda de una solución se nos presentaron:

  • Especies en peligro de extensión.
  • Contaminación (acidificación, derrames petroleros, etcétera).
  • Cuidado y preservación de especies marinas.
  • Sobrepesca

Decidímos buscar una forma de concientizar y facilitar la búsqueda de informacíon sobre las especies marinas que habitan en México.

El tema elegido fue: "Especies en Peligro de Extinción". Si bien el tema es algo muy sonado, es importante seguir informando a la sociedad acerca de las causas y posibles acciones para evitar que las especies sigan extingueindose puesto que todas ellas forman parte de los ecosistemas, las cuales tienen beneficios para el medio ambiente.

Acordamos que la mejor forma de hacerlo sería mediante el desarrollo de un sitio web y una API para poder consultar la información y presentarla de una forma atractiva y fácil de utilizar

Comenzamos utilizando Miro para comenzar a organizarnos de la siguiente manera

Screen Shot 2022-05-14 at 23 29 39

Maquetación y propuestas de Wireframe

Screen Shot 2022-05-14 at 23 35 20

Screen Shot 2022-05-14 at 23 36 07

Screen Shot 2022-05-14 at 23 40 20

Front end

Front End: El proyecto fue realizado en archivo html con apoyo de CSS Y Javascript (jQuery). °HTML - Se realiza el esqueleto que sera la estructura de la pagina Web" °CSS - Se aplican el estilo que dara forma al esqueleto dicha pagina Web °Javascript - Se utiliza para dar funcioalidad a la pagina.

image

Estructura de directorios

stateDiagram-v2
[Root] --> lib
lib --> utils
lib --> services
lib --> controllers
[Root] --> src
src --> assets
[Root] --> test
test --> utils_test
test -->services_test
test --> controllers_test
Loading

En nuestra carpeta lib realizamos la separación de responsbilidades de la siguiente forma: En la carpeta Utils tenemos Reader.js para leer y transformar el archivo creatures.json en un objeto

classDiagram
    class Reader
    Reader : +readJsonFile(filePath)
Loading

En la carpeta servicestenemos el archivo creatureService para filtrar el objeto por nombres

classDiagram
    class creatureServices
    creatureServices : +getCreatures(creatures)
    creatureServices : +getCreatureByName(creatures, name)
    
Loading

Finalmente la carpeta controllers contiene el archivo creatureController con un método que nos permite obtener la información de una especie por nombre y otro que nos regresa todos los objetos

classDiagram
    class creatureController
    creatureController : +getCreatures()
    creatureController : +getCreatureByName(name)
    
Loading

En la carpeta test tenemos las pruebas de unidad que corresponden a las carpetas que comparten el respectivo nombre del directorio lib

Flujo del programa

stateDiagram-v2
creatures.json --> Reader
Reader --> creatureService
creatureService --> creatureController
creatureController --> Server
Server --> API

Loading

Una vez que tenemos nuestro API utilizamos los servicios de Azure para desplegarlo y poder hacer consultas desde nuestro sitio web

stateDiagram-v2
API --> Página_web
Página_web --> API
Loading

hack_the_ocean's People

Contributors

ubaldofmelchor avatar amendoxe avatar davidramirez5 avatar fernandomoralesh 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.