Skip to content

Latest commit

 

History

History
312 lines (214 loc) · 8.1 KB

README.md

File metadata and controls

312 lines (214 loc) · 8.1 KB

LFG Backend

Contenido 📝
  1. Objetivo🎯
  2. Sobre el proyecto 📰
  3. Stack ✨
  4. Diagrama BD 🌐
  5. Instalación en local 💻
  6. Endpoints 🎢
  7. Futuras funcionalidades ✅
  8. Webgrafia 👓
  9. Compañeros de equipo 🐱‍👤:

Objetivo🎯

Este proyecto requería una API funcional conectada a una base de datos en la que simula una aplicación web que permite a los usuarios contactar con otros usuarios a través de salas de videojuegos con la tecnología PHP Laravel. Además, este proyecto se ha realizado en grupo para así poder trabajar herramientas de gestión de tickets (organización de tareas a través de una plataforma como trello), trabajo en equipo y gestión del tiempo de forma eficiente.

Sobre el proyecto 📰

LFG Backend es una aplicación web dónde los usuarios podrán registrarse e iniciar sesión para así poder crear salas en función a una lista de videojuegos para que otros usuarios puedan unirse para conversar en dichas salas.

Stack ✨

Tecnologías utilizadas:

Diagrama BD 🌐

Instalación en local 💻

Nota: para este proyecto será necesario tener instalado en local PHP y Composer

Descarga PHP

Descarga Composer

  1. Clonar el repositorio
  2. Instalamos dependencias $ composer install
  3. Conectamos nuestro repositorio con la base de datos, para ello creamos el archivo .env copiando los datos de .env.example y rellenamos los campos con la conexión a nuestra base de datos en local.
  4. Ejecutamos las migraciones $ php artisan migrate
  5. Ejecutamos los seeders $ php artisan db:seed
  6. Iniciamos el servidor $ php artisan serve
  7. ...

Endpoints

Endpoints Credenciales SuperAdmin:
    ``` js
        {
            "email": "super_admin@super_admin.com",
            "password": "123456"
        }
    ```
  • AUTH

    -   REGISTER
    
              POST http://localhost:3000/api/register
    
            POST localhost:8000/api/auth/register
        body:
    
        ```js
            {
                "nickName": "Datata",
                "fullName": "Dani Apellido",
                "email": "[email protected]",
                "password": "princess",
            }
        ```
    
    -   LOGIN
    
              POST http://localhost:3000/api/login
    
            POST localhost:8000/api/auth/login
    

    body:

        ```js
            {
                "email": "super_admin@super_admin.com",
                "password": "123456"
            }
        ```
    
  • USERS

    • UPDATE PROFILE

        PUT localhost:8000/api/users/profile
      

      Auth: token usuario logeado body:

          {
              "fullname": "Fnatic",
          }
    • DELETE PROFILE

        DELETE localhost:8000/api/users/profile
      

      Auth: token usuario logeado

    • GET PROFILE

      GET localhost:8000/api/users/profile Auth: token usuario logeado

    • GET ALL USERS

      GET localhost:8000/api/users Auth: token super_admin

  • GAMES

    • CREATE GAME

        POST localhost:8000/api/games
      

      Auth: token SuperAdmin body:

          {
              "game_name": "Genshin Impact",
              "description": "Gachapon mundo abierto"
              "game_image": "https://preview.redd.it/ntccsv49x1a51.png?auto=webp&s=defee6ae55163ba253a3a7fa9007e584d5087bac"
          }
    • GET GAMES

        GET localhost:8000/api/games
      
    • UPDATE GAME

        PUT localhost:8000/api/games/{id}
      

      Auth: token SuperAdmin body:

          {
              "description": "Descripción editada"
          }
    • DELETE GAME

        DELETE localhost:8000/api/games/{id}
      

      Auth: token SuperAdmin

  • MESSAGES

    • CREATE MESSAGE

        POST localhost:8000/api/messages/{id}
      

      Auth: token usuario logeado body:

          {
              "message": "Hola a todos",
          }
    • GET ROOM MESSAGES

      GET localhost:8000/api/messages
      
    • UPDATE MESSAGE

        PUT localhost:8000/api/messages/{id}
      

      Auth: token usuario logeado body:

          {
              "message": "Adiós a todos",
          }
  • DELETE MESSAGE

       DELETE localhost:8000/api/messages/{id}
    

    Auth: token super_admin

  • ROOMS

    • CREATE ROOM

        POST localhost:8000/api/rooms
      

      Auth: token usuario logeado body:

          {
              "room_name": "TOP Tier",
              "room_description" : "equipo competitivo",
              "game_id":"1"
          }
    • UPDATE ROOM

        PUT localhost:8000/api/rooms/{id}
      

      Auth: token usuario logeado body:

          {
              "room_name": "Fnatic",
          }
    • DELETE ROOM

        DELETE localhost:8000/api/rooms/{id}
      

      Auth: token usuario logeado

    • GET GAMEROOM

      GET localhost:8000/api/rooms/{game_id} Auth: token usuario logeado

    • JOIN ROOM

      POST localhost:8000/api/rooms/{room_id}/join Auth: token usuario logeado

    • LEAVE ROOM

      DELETE localhost:8000/api/rooms/{room_id}/leave Auth: token usuario logeado

Futuras funcionalidades ✅

[✔] Aplicación de validaciones [ ] Endpoint traer usuarios de una sala

Webgrafia 👓

Para conseguir mi objetivo he recopilado información de:

Compañeros de equipo 🐱‍👤:

  • Fernando

  • Miguel

  • Antonio

  • Ana