https://github.com/anakloss/node-challenge
Challenge Node - Alkemy | Desarrollo de una API para explorar el mundo de Disney, la cual permite conocer y modificar los personajes que lo componen y entender en qué películas estos participaron. Por otro lado, expone la información para que cualquier frontend pueda consumirla.
https://github.com/anakloss/node-challenge
alkemychallenge express javascript nodejs postman rest-api
Last synced: 7 months ago
JSON representation
Challenge Node - Alkemy | Desarrollo de una API para explorar el mundo de Disney, la cual permite conocer y modificar los personajes que lo componen y entender en qué películas estos participaron. Por otro lado, expone la información para que cualquier frontend pueda consumirla.
- Host: GitHub
- URL: https://github.com/anakloss/node-challenge
- Owner: anakloss
- Created: 2022-08-23T12:29:47.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-17T13:46:10.000Z (over 3 years ago)
- Last Synced: 2025-07-12T15:36:35.865Z (8 months ago)
- Topics: alkemychallenge, express, javascript, nodejs, postman, rest-api
- Language: JavaScript
- Homepage:
- Size: 390 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚀 CHALLENGE BACKEND - NodeJs
## Instalación
```
git clone https://github.com/anakloss/node-challenge.git
cd disney
npm install
npm run start
```
## Documentación
Postman Doc: https://documenter.getpostman.com/view/18786036/VUxLvTNr
## Objetivo
Desarrollar una API para explorar el mundo de Disney, la cual permitirá conocer y modificar los
personajes que lo componen y entender en qué películas estos participaron. Por otro lado, deberá
exponer la información para que cualquier frontend pueda consumirla.
* 👉 Utilizar NodeJs y Express.
* 👉 No es necesario armar el Frontend.
* 👉 Las rutas deberán seguir el patrón REST.
* 👉 Utilizar la librería Sequelize.
#### ¡No es indispensable hacer todo!
Mientras más completes, mayor puntaje obtendrás, pero puedes enviar la app hasta el estadío que la
tengas en base a tu conocimiento actual. Recuerda que el objetivo del challenge es entender tu nivel
de conocimiento actual.
## Requerimientos técnicos
### 1. Modelado de Base de Datos
#### Personaje: deberá tener,
* Imagen.
* Nombre.
* Edad.
* Peso.
* Historia.
* Películas o series asociadas.
#### Película o Serie: deberá tener,
* Imagen.
* Título.
* Fecha de creación.
* Calificación (del 1 al 5).
* Personajes asociados.
#### Género: deberá tener,
* Nombre.
* Imagen.
* Películas o series asociadas.
### 2. Autenticación de Usuarios
Para realizar peticiones a los endpoints subsiguientes el usuario deberá contar con un token que
obtendrá al autenticarse. Para ello, deberán desarrollarse los endpoints de registro y login, que
permitan obtener el token.
Los endpoints encargados de la autenticación deberán ser:
* /auth/login
* /auth/register
### 3. Listado de Personajes
El listado deberá mostrar:
* Imagen.
* Nombre.
El endpoint deberá ser:
* /characters
### 4. Creación, Edición y Eliminación de Personajes (CRUD)
Deberán existir las operaciones básicas de creación, edición y eliminación de personajes.
### 5. Detalle de Personaje
En el detalle deberán listarse todos los atributos del personaje, como así también sus películas o
series relacionadas.
### 6. Búsqueda de Personajes
Deberá permitir buscar por nombre, y filtrar por edad, peso o películas/series en las que participó.
Para especificar el término de búsqueda o filtros se deberán enviar como parámetros de query:●
* GET /characters?name=nombre
* GET /characters?age=edad
* GET /characters?movies=idMovie
### 7. Listado de Películas
Deberá mostrar solamente los campos imagen, título y fecha de creación.
El endpoint deberá ser:
* GET /movies
### 8. Detalle de Película / Serie con sus personajes
Devolverá todos los campos de la película o serie junto a los personajes asociados a la misma
### 9. Creación, Edición y Eliminación de Película / Serie
Deberán existir las operaciones básicas de creación, edición y eliminación de películas o series.
### 10. Búsqueda de Películas o Series
Deberá permitir buscar por título, y filtrar por género. Además, permitir ordenar los resultados
por fecha de creación de forma ascendiente o descendiente.
El término de búsqueda, filtro u ordenación se deberán especificar como parámetros de query:
* GET /movies?name=nombre
* GET /movies?genre=idGenero
* GET /movies?order=ASC | DESC
### 11. Envío de emails
Al registrarse en el sitio, el usuario deberá recibir un email de bienvenida. Es recomendable, la
utilización de algún servicio de terceros como SendGrid.
## Documentación
Es deseable documentar los endpoints utilizando alguna herramienta como Postman o Swagger.
## Tests
De forma opcional, se podrán agregar tests de los diferentes endpoints de la APP, verificando
posibles escenarios de error:
* Campos faltantes o con un formato inválido en BODY de las peticiones
* Acceso a recursos inexistentes en endpoints de detalle
Los tests pueden realizarse utilizando Mocha + Chai.