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 installonpm i. -
Renombra el archivo
.env.examplea.envy proporciona los datos necesarios. -
Ejecuta
npm run initDbpara crear las tablas necesarias en la base de datos ya creada. -
Ejecuta
npm run devonpm startpara iniciar el servidor.
idemailnamelastnamephoneavatarusernamepasswordcreatedAtmodifiedAt
iddescriptionphotouserIdcreatedAtmodifiedAt
iduserIdpostIdcreatedAt
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 |