Este proyecto consiste en crear una API que simula el funcionamiento de una aplicación similar a Instagram.
-
Instala las dependencias mediante el comando
npm install
onpm i
. -
Renombra el archivo
.env.example
a.env
y proporciona los datos necesarios. -
Ejecuta
npm run initDb
para crear las tablas necesarias en la base de datos ya creada. -
Ejecuta
npm run dev
onpm start
para iniciar el servidor.
id
email
name
lastname
phone
avatar
username
password
createdAt
modifiedAt
id
description
photo
userId
createdAt
modifiedAt
id
userId
postId
createdAt
POST [/users/register] - Registro de usuario (utilizando FormData). ✅
POST [/users/login] - Inicio de sesión de usuario (devuelve token, (emai,password)).✅
GET [/users] - Devuelve información del usuario correspondiente al id (Id).✅
POST [/posts] - Crea una nueva publicación (cuerpo en formData). TOKEN.✅
GET [/posts/home] - Lista de publicaciones ordenadas por fecha de manera descendente: ✅
GET ['/users/:userId/posts] - Devolver ordenados los posts de un usuario
- Arreglo de objetos con información de las publicaciones, incluyendo si el usuario autenticado ha dado "like" a la publicación y el número de "likes" y comentarios.
GET [/posts/:postId] - Devuelve información de una publicación según su descripción, incluyendo "likes" y comentarios.
POST [/posts/:postId/likes] - Añade o quita un "like" a una publicación y devuelve el número actualizado de "likes". TOKEN.
Campo | Tipo | Descripción |
---|---|---|
id | INT UNSIGNED | Identificador único del usuario |
VARCHAR(100) | Correo electrónico del usuario | |
name | VARCHAR(100) | Nombre del usuario |
lastname | VARCHAR(100) | Apellidos del usuario |
phone | VARCHAR(10) | Número de teléfono del usuario |
avatar | VARCHAR(200) | Nombre del avatar del usuario |
username | VARCHAR(50) | Nombre de usuario |
password | VARCHAR(100) | Contraseña del usuario (hash) |
createdAt | DATETIME | Fecha y hora de creación del usuario |
modifiedAt | DATETIME | Fecha y hora de la última modificación |
Campo | Tipo | Descripción |
---|---|---|
id | INT UNSIGNED | Identificador único de la publicación |
description | TEXT | Descripción de la publicación |
photo | VARCHAR(200) | URL de la foto de la publicación |
userId | INT UNSIGNED | ID del usuario creador de la publicación |
createdAt | DATETIME | Fecha y hora de creación de la publicación |
modifiedAt | DATETIME | Fecha y hora de la última modificación |
Campo | Tipo | Descripción |
---|---|---|
id | INT UNSIGNED | Identificador único del like |
userId | INT UNSIGNED | ID del usuario que dio el like |
postId | INT UNSIGNED | ID de la publicación que recibió el like |
createdAt | DATETIME | Fecha y hora de creación del like |