/happytravel

Proyecto colaborativo realizado en bootcamp femCoders

Primary LanguagePHP

Grupo Contento: Happy Travel

Transformación de Proyecto Monolítico a Arquitectura de API con Autenticación y CRUD

Proyecto de Mejora del Bootcamp FemCoders - Grupo Contento

En el marco del bootcamp de desarrollo fullstack de FemCoders, se ha abordado la tarea de optimizar y reestructurar un proyecto previamente creado por:

Objetivo del Proyecto:

El objetivo central de esta mejora es evolucionar el proyecto monolítico existente hacia una arquitectura de API más flexible y eficiente. Para lograrlo, se han realizado cambios sustanciales tanto en el backend como en el frontend del sistema, con un enfoque en la modularidad, la seguridad y la usabilidad.

Cambios Realizados:

Backend:

  • La arquitectura monolítica basada en el patrón MVC ha sido reemplazada por una API RESTful implementada en Laravel.
  • Se ha incorporado un sólido sistema de autenticación utilizando tokens, garantizando la seguridad de las interacciones entre los usuarios y la aplicación.
  • La funcionalidad CRUD (Crear, Leer, Actualizar, Eliminar) se ha rediseñado y reconfigurado en endpoints de la API, permitiendo una gestión más eficaz de los destinos.
  • Se ha implementado el manejo de roles con las bibliotecas Sanctum y Spatie, optimizando la gestión de permisos y accesos.
  • Se ha priorizado la creación de un perfil de usuario como tarea de máxima prioridad, donde se puede cambiar la imagen del perfil. Esto garantiza un enfoque claro en las funcionalidades más importantes del sistema.
  • Aún en progreso el tema favoritos y la implementación de una galeria donde el usuario puede ver todo lo que el ha cargado y sus favoritos.

Frontend:

  • El frontend original ha sido reescrito en React, proporcionando una experiencia de usuario más fluida e interactiva.
  • Se ha establecido la comunicación con la API a través de solicitudes HTTP, permitiendo el consumo y manipulación de datos de destino de manera dinámica.

🛠 Tecnologías Utilizadas

html5 CSS3 react php react Laravel React JavaScript

🛠 Herramientas Utilizadas

figma vscode trello git github xampp mamp postman insonnia
### 🛠 Otros paquetes utilizados
Sanctum spatie

Instrucciones de Uso

Para utilizar esta nueva versión del proyecto , sigue las instrucciones, para ejecutarlo necesitas tener conocimientos previos sobre como funciona Mamp/Xamp y tener instalado composer.

Instalación del Proyecto Backend Laravel

  1. Clona el repositorio de Laravel desde GitHut https://github.com/mgblanco10/happytravel.git
  2. Abre el proyecto en tu editor de código y en la terminal ingresa al directorio del proyecto cd laravel
  3. Instala las dependencias de Composer composer install
  4. Crea un archivo .env a partir del archivo .env.example.
  5. Configura tu base de datos en el archivo .env con la información adecuada, donde debes poner el nombre de tu base de datos previamente creada en mysql y tener claro cual es tu sistema operativo para la instalación.Ejemplo: DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=nombre_base_de_datos DB_USERNAME=nombre_usuario DB_PASSWORD=contraseña
  6. Ejecuta las migraciones para crear las tablas de la base de datos php artisan migrate
  • Si deseas ya tener información en tu base de datos te recomendamos hacer uso de los seeders, para eso debes ejecutar el comando php artisan db:seed
  1. Inicia el servidor de desarrollo php artisan serve

Instalación del Proyecto Frontend React

  1. ingresa al directorio del proyecto cd react-app
  2. Instala las dependencias de npm npm install
  3. Inicia el proyecto npm start
  4. El frontend de React ahora está en funcionamiento y se ejecuta en http://localhost:3000

Mockups

Atomic Design

Versión Desktop

Versión Mobile

Contribuciones y Feedback

Este proyecto es una muestra del proceso de aprendizaje y mejora continua. Si tienes sugerencias para mejoras adicionales o encuentras problemas, no dudes en abrir un issue o enviar una pull request. Tu contribución es valiosa para nosotros.


Developers


Yana Tolstobrova

Rosa Pedret

Cindy Leiva

Neema Shedevops

Mónica Blanco

Génesis Núñez

Recursos