Contenido 📝
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
Este proyecto requería una API funcional conectada a una base de datos con cuatro tablas relacionales para Roles, Usuarios, Servicios y Citas
- Clonar el repositorio
- Instalamos las dependencias
$ npm install
- Conectamos nuestro repositorio con la base de datos
- Ejecutamos las migraciones
$ npm run migrations
- Ejecutamos los seeders
$ npm run seeder
- Ponemos en funcionamiento el servidor
$ npm run dev
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" }
-
Tecnologías utilizadas:
-
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
En el apartado de scripts de package.json:
"dev": "nodemon ./src/server.ts"