Desarrollar una aplicación completa utilizando Node.js, Express, Firebase y React Native.
Construir una API REST utilizando Node.js y Express, integrar Firebase Firestore como base de datos, y desarrollar una aplicación móvil utilizando React Native para consumir y mostrar los datos de la API.
Crear un proyecto en Firebase y configurar Firebase Firestore como base de datos. crear una API REST utilizando Node.js y Express. La API debe tener los siguientes endpoints:
- GET /books: Devuelve una lista de todos los libros almacenados en Firebase Firestore.
- GET /books/{id}: Devuelve los detalles de un libro específico según su ID.
- POST /books: Crea un nuevo libro con la información proporcionada en la solicitud.
- PUT /books/{id}: Actualiza la información de un libro existente según su ID.
- DELETE /books/{id}: Elimina un libro específico según su ID.
Utilizar la biblioteca firebase-admin de Node.js para interactuar con Firebase Firestore y realizar las operaciones CRUD necesarias.
Crear una interfaz de usuario en la aplicación móvil utilizando componentes de React Native. La interfaz de usuario debe mostrar los libros obtenidos de la API REST desarrollada en el back.
Mostrar la lista de libros en una pantalla principal.
- Permitir al usuario ver los detalles de un libro al hacer clic en él.
- Proporcionar la funcionalidad para agregar un nuevo libro.
- Permitir al usuario editar y eliminar libros existentes.
-
Clonar el repositorio
git clone git@github.com:Nannitta/BookLog.git -
Cambiar a la carpeta
servere instalar las dependencias necesariascd server/ npm install -
Arrancar el servidor
npm run dev -
En otra terminal cambiamos a la carpeta
cliente instalamos las dependencias necesariascd client/ npm install -
Arrancar el servidor
expo start
| METHOD | URL | DESCRIPCIÓN |
| GET | books/ | Obtener todos los libros |
| GET | books/:idBook | Obtener un libro según su ID |
| POST | books/addBook | Añadir un libro |
| PUT | books/edit/:idBook | Editar un libro existente |
| DELETE | books/:idBook | Borrar un libro |
[
{
"id": "p5UQvaTsksyjdNA8rMiL",
"title": "El pozo de la ascensión",
"author": "Brandon Sanderson",
"yearRelease": "2007",
"editorial": "Nova",
"resume": "Durante mil años nada ha cambiado: han caído las cenizas...",
"cover": "pNkEgHrMzYqUfWv.webp",
"createdAt": {
"_seconds": 1705014000,
"_nanoseconds": 429000000
},
"modifiedAt": {
"_seconds": 1705014000,
"_nanoseconds": 710000000
}
},
{
"id": "wYETLakGFpugtRcYEaiM",
"title": "El señor de los anillos: La comunidad del anillo",
"author": "J. R. R. Tolkien",
"yearRelease": "2001",
"editorial": "Minotauro",
"resume": "En la adormecida e idílica Comarca, un joven hobbit...",
"cover": "lTjMvRzNkQwXsH.webp",
"createdAt": {
"_seconds": 1705014000,
"_nanoseconds": 335000000
},
"modifiedAt": {
"_seconds": 1705014000,
"_nanoseconds": 490000000
}
}
]{
"editorial": "Plaza y Jane Editores",
"resume": "Un cometa del color de la sangre hiende el cielo cargado...",
"cover": "NVedyWWRAKXcOrN.webp",
"yearRelease": "2003",
"author": "George R. R. Martin",
"createdAt": {
"_seconds": 1705421219,
"_nanoseconds": 589000000
},
"title": "Choque de reyes"
}"body": {
"mode": "formdata",
"formdata": [
{
"key": "title",
"value": "Los pilares de la tierra",
"type": "text"
},
{
"key": "author",
"value": "Ken Follett",
"type": "text"
},
{
"key": "yearRelease",
"value": "1989",
"type": "text"
},
{
"key": "resume",
"value": "El gran maestro de la narrativa de acción...",
"type": "text"
},
{
"key": "editorial",
"value": "Plaza y Janes Editores",
"type": "text"
},
{
"key": "cover",
"type": "file",
"src": "/C:/Users/User/Images/9788401328510.webp"
}
]
}"request": {
"method": "PUT",
"header": [],
"body": {
"mode": "formdata",
"formdata": [
{
"key": "cover",
"type": "file",
"src": "/C:/Users/nanaa/Downloads/9788401032431.webp",
"disabled": true
},
{
"key": "title",
"value": "bbbbbb",
"type": "text"
}
]
}
}
