BookLoginApp es una aplicación de biblioteca personal que permite a los usuarios buscar libros, guardar favoritos, gestionar notas y mantener un historial de búsqueda para facilitar la exploración de nuevas lecturas. La aplicación utiliza tecnología moderna como Firebase para autenticación y almacenamiento de datos.
- Buscar libros: Busca libros a través de la API de Open Library.
- Favoritos: Guarda tus libros favoritos para acceder a ellos rápidamente.
- Notas personales: Agrega notas a tus libros favoritos para recordar lo que aprendiste o lo que más te gustó.
- Historial de búsqueda: Mantén un registro de tus búsquedas recientes y accede a ellas fácilmente.
- Estado de lectura: Guarda el estado de lectura de un libro (No iniciado, Leyendo, Terminado).
- Autenticación: Inicio de sesión y cierre de sesión mediante Firebase Authentication.
- Kotlin: Lenguaje principal para el desarrollo de la aplicación.
- Jetpack Compose: Framework de UI moderno de Android.
- Firebase: Utilizado para autenticación y almacenamiento de datos en tiempo real.
- Open Library API: Fuente para obtener datos de libros.
- Coroutines y Flow: Para manejar la programación asíncrona y los estados reactivos.
El proyecto sigue el patrón MVVM (Model-View-ViewModel) para mantener una separación clara de responsabilidades:
- Model: Contiene las clases de datos y la lógica de negocio (como
BooksRepository). - ViewModel: Maneja la lógica de la UI y expone estados reactivos (como
BooksViewModel). - View: Implementada con Jetpack Compose para manejar la interfaz de usuario.
-
Clona este repositorio:
git clone https://github.com/DenovanMonroy/BookLoginApp.git cd BookLoginApp -
Configura Firebase:
- Crea un proyecto en Firebase Console.
- Descarga el archivo
google-services.jsony colócalo en el directorioapp/de tu proyecto. - Habilita la autenticación por correo electrónico y la base de datos en tiempo real.
-
Ejecuta la aplicación:
- Abre el proyecto en Android Studio.
- Conéctalo a un emulador o dispositivo físico.
- Haz clic en el botón Run.
📂 app/
├── 📂 src/
│ ├── 📂 main/
│ │ ├── 📂 java/com/example/bookloginapp/
│ │ │ ├── 📂 model/ # Modelos de datos (Book, SearchHistory, etc.)
│ │ │ ├── 📂 repository/ # Lógica de negocio y acceso a datos (BooksRepository)
│ │ │ ├── 📂 ui/ # Pantallas y componentes de la UI (HomeScreen, SearchScreen, etc.)
│ │ │ ├── 📂 viewmodel/ # Lógica de la UI y estados reactivos (BooksViewModel)
│ │ ├── 📂 res/ # Recursos como imágenes, estilos y layouts.
│ │ └── AndroidManifest.xml
└── build.gradle
La aplicación utiliza la Open Library API para buscar información sobre libros.
Ejemplo de endpoint:
https://openlibrary.org/search.json?q={query}&limit=20
- Integración con un lector de libros.
- Soporte para múltiples idiomas.
- Exportar notas y favoritos en un archivo PDF.
¡Contribuciones son bienvenidas! Si deseas colaborar:
- Haz un fork de este repositorio.
- Crea una rama nueva para tus cambios:
git checkout -b feature/nueva-funcionalidad
- Realiza tus cambios y súbelos a tu repositorio:
git add . git commit -m "Añadida nueva funcionalidad" git push origin feature/nueva-funcionalidad
- Crea un Pull Request.



