FreeSpot-Coworking-Search / Cowork-project

Central repository of Cowork project
1 stars 2 forks source link

DESCRIPCION:

El proyecto aquí presentado despliega una web app donde publicar espacios de coworking, reservar y gestionar cada espacio.

Consta de una APP creada a partir de ReactJS para el frontEnd y una APIrest en NodeJS + Base de datos en MySQL que conforman el backend del proyecto.

Las características mínimas que el proyecto debe cumplir son las enumeradas debajo:

Usuario Anónimo:

Usuario Registrado:

Usuario Administrador:

REQUISITOS

Para poder ejecutar correctamente la web app que contiene este repositorio (APP + API), necesitas lo siguientes programas:

A su vez es recomendable tengas cuentas creadas en los siguientes servicios, para un funcionamiento completo del proyecto:

INSTALACION

  1. Clona el repositorio completo en tu ordenador local.

    Mediante SSH

    git@github.com:rzarroca/coworking_HAB.git

    Mediante HTTP

    https://github.com/rzarroca/coworking_HAB.git
  2. Ve a la carpeta back-end e instala las dependencias del proyecto las dependencias del proyecto:

        npm install
  3. Ve a la carpeta front-end y repita el proceso de instalacion de dependencias para esta parte:

    Nota: Las 2 partes del proyecto funcionan con dependencias diferentes y de manera independiente una de la otra. Debes instalar las dependencias necesarias en cada proyecto.

  4. Crea una nueva Base de Datos con tu usuario de MySQL con el nombre que desees.

  5. Configura los .env de la APP y la API respectivamente.

    • Backend:

      • Debes tener MySQL instalado para poder completar con tus datos de usuario y la información de la DB creada.

      • Elije el SERVER_HOST y SERVER_PORT que desees. Ten cuidado con elegir como puerto 3000 o 5000 ya que esos valores los toma por defecto React.

      • Setea el FRONT_ORIGIN para no tener problemas de CORS (debe ser el que genere la APP de front)

      • Puedes cambiar los valores por defecto que hemos dejado en el .env a tu comodidad.

      • Completa tu información de usuario de SENGRID (en caso de no tenerlo Crea un Usuario Sengrid aquí)

    • Frontend:

      • Elije el REACT_APP_API_LOCAL_SERVER_HOST y REACT_APP_API_LOCAL_SERVER_PORT que hayas elegido para tu API.

      • Te recomendamos no cambiar el valor de REACT_APP_MIN_WIDTH_FULL_VIEW_MAIN_SECTION ya este es el valor que reconfigura la visualización de movil a portatil y al modificarlo puede que ciertos elementos no queden bien alineados.

      • Completa tu API KEY de Google (en caso de no tenerlo infórmate en el siguiente enlace: Using API Keys)

USO

Si quieres probar las funcionalidades de este proyecto, hemos dejado un poblador incluido para facilitar tus tests :bowtie:.

  1. Levanta el servidor backend. Dentro de su carpeta ejecuta:

    npm run dev
  2. Haz una petición HTTP GET para resetear la base de datos a:

    http://[SERVER_HOST]:[SERVER_PORT]/api/reset/

    Esto borrará los datos del servidor.

Puedes utilizar el navegador o bien algún programa como Postman

  1. Haz una petición HTTP POST para poblar la base de datos a:

    http://[SERVER_HOST]:[SERVER_PORT]/api/reset/

    Esto repoblará la base de datos.

    NOTA: En la carpeta static del backend verás que hemos dejado varias imágenes precargadas, para que al poblar la base de datos los espacios y centros tengan alguna imagen que mostrar.

    Puedes utilizar el navegador o bien algún programa como Postman

  2. Levanta la APP frontend. Dentro de su carpeta ejecuta:

    npm start

    Listo! A testear!

  3. Si quieres puede probar la APP frontend en modo de producción. Para ello ejecuta:

    npm run build

    Y luego

    npx serve

    Eso es todo!

NOTA: Los pasos 2 y 3 sólo tienes que hacerlo al comenzar a usar el proyecto o cuando desees reiniciar la base de datos para testear de otra forma

CREDITOS

Este desarrollo fue realizado para ser presentada como proyecto final en el bootcamp fullstack web development realizado con Hack a Boss. Los responsables de este proyecto son:

Recuerda entrar a las páginas de documentación del frontend y backend respectivamente para conocer mejor las funcionalidades de cada helper / middleware / hook / etc...