Skip to content

aipacheco/Proyecto4-tatuajes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proyecto Backend sistema de gestión de citas para un estudio de tatuajes.

Contenido 📝
  1. Sobre el proyecto
  2. Objetivo
  3. Diagrama
  4. Instalación
  5. Endpoints
  6. Stack
  7. Creación del proyecto
  8. Contacto

Sobre el proyecto

Los usuarios podrán registrarse en la aplicación, iniciar sesión y acceder a su área personal. Dentro de su área, podrán visualizar una lista de las citas programadas para servicios de tatuajes y piercing, así como crear nuevas citas para diversos servicios que ofrece el estudio.

El backend de esta API está desplegado en Enlace a Zeabur

Objetivo

Este proyecto requería una API funcional conectada a una base de datos con cuatro tablas relacionales para Roles, Usuarios, Servicios y Citas

Diagrama BD

'imagen-db'

Instalación en local

  1. Clonar el repositorio
  2. Instalamos las dependencias $ npm install
  3. Conectamos nuestro repositorio con la base de datos
  4. Ejecutamos las migraciones $ npm run migrations
  5. Ejecutamos los seeders $ npm run seeder
  6. Ponemos en funcionamiento el servidor $ npm run dev

Endpoints

Endpoints
  • AUTH

    • REGISTER

          POST http://localhost:4000/api/auth/register
      

      body:

          {
              "first_name": "example",
              "last_name": "example",
              "email": "[email protected]",
              "password": "princess"
          }
    • LOGIN

        POST http://localhost:4000/api/auth/login
      

      body:

          {
              "email": "[email protected]",
              "password": "princess"
          }
  • USERS

    • GET

          GET http://localhost:4000/api/users
      

      El usuario tiene que ser super_admin para ver todos los usuarios

    • GET BY EMAIL

          GET http://localhost:4000/api/[email protected]
      

      El usuario tiene que ser super_admin para ver todos los usuarios y la búsqueda le devolverá el usuario por email

          {
              "success": true,
              "message": "User by email",
              "data": [
      	    {
      		"id": 35,
      		"first_name": "Ralph",
      		"last_name": "Marquardt",
      		"email": "[email protected]"
      	    }
              ]
          }
    • GET PROFILE

      GET http://localhost:4000/api/users/profile
      

      El usuario podrá ver su propio perfil

         {
             "success": true,
             "message": "Your profile",
             "data": {
                 "id": 35,
                 "first_name": "Ralph",
                 "last_name": "Marquardt",
                 "email": "[email protected]"
      }
         }
    • UPDATE PROFILE

      PUT http://localhost:4000/api/users/profile
      

      El usuario podrá modificar su propio perfil, cambiando los campos que considere necesario (excepto el email)

         {
         "first_name":"example",
         "last_name": "example",
         "password": "123456789"
         }
  • SERVICES

    • GET

          GET http://localhost:4000/api/services
      
    • POST SERVICES

          POST http://localhost:4000/api/services
      

      El usuario tiene que ser super_admin para crear servicios del estudio

      body:

          {
          "serviceName": "Blackout",
          "description": "Servicio de tatuaje en negro sobre tatuaje existente"
          }
  • APPOINTMENTS

    • GET MY APPOINTMENTS

          GET http://localhost:4000/api/appointments
      

      El usuario puede ver todas las citas que tiene creadas

    • GET SINGLE APPOINTMENT

        GET http://localhost:4000/api/appointments/id
      

      El usuario puede ver una cita en concreto

    • CREATE APPOINTMENT

        POST http://localhost:4000/api/appointments
      

      El usuario puede crear una cita en una fecha y para un servicio concreto

      body:

          {
          "appointment_date": "2024-03-24 09:00:00",
          "service_id ": 1
          }
    • UPDATE SINGLE APPOINTMENT

        PUT http://localhost:4000/api/appointments/id
      

      El usuario puede modificar la fecha de una de sus citas

      body:

          {
          "appointment_date": "2024-03-25 10:00:00"
          }

Stack

Tecnologías utilizadas:

Creación del proyecto

Pasos para la Instalación y Configuración

Para configurar un proyecto de Express con TypeScript, sigue estos pasos:

  • Crea una carpeta para tu proyecto.

  • Inicializa el archivo package.json con

npm init

  • Instala Express con

npm install express --save

  • Instala TypeScript como dependencia de desarrollo con

npm install typescript -D

  • Instala los tipos de Express y Node con

npm install @types/express @types/node -D

  • Configura el archivo tsconfig.json con

npx tsc --init

  • Instalar librería de nodemon

npm install --save-dev nodemon

Script de compilación

En el apartado de scripts de package.json:

"dev": "nodemon ./src/server.ts"

Contacto

Releases

No releases published

Packages

No packages published