Sound Experience
Change Language
Lyra: I'm here. What do you want to discover today?

Hi, I'm Lyra, your guide through this portfolio.

Digital Library | Interactive Catalog | Next.js 15 Status: Completed (University Project)

PowerBooks

Book loan management and catalog platform with authentication, advanced search, and Firebase persistence.

Portada de PowerBooks

Project Overview

PowerBooks is a SPA (Single Page Application) developed as a final project for the Web Development course. It allows users to explore a dynamic book catalog fetched from public APIs (Google Books / Open Library), search and filter by title, author, or category, borrow books with due-date tracking, manage a wishlist, and track their reading progress. The project followed an agile methodology with sprint planning, using GitHub Projects for the backlog and pull request code reviews. Key architectural decisions were made from the start: Next.js 15 with App Router was chosen to leverage hybrid rendering (SSR + CSR) and file-based routing. Authentication was handled with NextAuth.js integrated with Firebase (Firestore Auth and a custom adapter), supporting traditional login (email/password) and Google. A Clean Architecture was implemented separating the domain (core/domain), ports (core/ports), and infrastructure (infrastructure/), making the system easier to test and maintain. Global state is managed with Zustand (stores: auth, books, loans, wishlist, notifications) with partial localStorage persistence. Loans, wishlists, and notifications are stored in Firestore with collection-level RLS security rules. Firebase Cloud Messaging was used for real-time communication (book availability notifications). The frontend is fully responsive, built with Tailwind CSS, and includes security measures like input sanitization (DOMPurify), form validation with Zod, protected routes via Next.js middleware, and optional two-factor authentication (TOTP). Deployed on Vercel with a custom domain (powerbooks.space) and configured environment variables for Firebase, Resend (email delivery), and NextAuth. The team worked with daily stand-ups, weekly sprints, and retrospectives, delivering a functional MVP in 6 weeks.

RoleFull-Stack Developer & Software Architect
ClientCapstone Project - Web Development (University)
DurationSeptember 2025 - March 2026
Year2025

Core Modules

Book Catalog & Advanced Search

Displays books from public APIs (Google Books / Open Library). Implements search by title, author, and keywords, with filters by category and sorting by popularity or date. Includes pagination and skeleton loading to improve perceived performance.

Authentication & Profile Management

Traditional login/registration (email/password) and Google sign-in using NextAuth.js + Firebase. Protected routes via middleware. User profile with sections: 'My Library' (borrowed, reading, completed books) and personal data.

Loan System & Due Dates

Allows borrowing books for a defined period (e.g. 14 days). Records loan and due dates. History stored in Firestore. Shows upcoming due-date notifications and supports automatic renewal if the book is available.

Wishlist & Reading Tracker

Users can add books to a wishlist and mark reading progress (Reading, Completed, Abandoned). Integrated with the notification system to alert users when a desired book becomes available for loan.

Security & Validation

Input sanitization with DOMPurify, form validation with Zod, XSS and CSRF protection. Routes protected by middleware verifying the active session. Firestore security rules at the document level. Optional 2FA with TOTP.

Real-Time Notifications & Emails

Push notification system (Firebase Cloud Messaging) for due-date alerts, wishlist availability, and loan confirmations. Transactional emails sent via Resend (welcome, loan confirmation, due-date reminder).

Performance Optimization & Accessibility

Images optimized with next/image and lazy loading. Lighthouse score above 90 for performance and accessibility. Keyboard navigation, ARIA roles, color contrast, and semantic HTML tags. SSR/SSG for the static catalog and CSR for dynamic sections.

Technologies Implemented

frontend

Next.js 15TypeScriptTailwind CSSSassZustandReact Hook FormZod

backend

NextAuth.jsFirebase (Auth, Firestore, FCM)Node.jsResend

ai And Storage

Google Books APIOpen Library APIFirebase Storage

tools

Biome (lint/format)Git (GitHub)VercelTurbopack

System Gallery

Captura 1 de PowerBooks
Captura 2 de PowerBooks
Captura 3 de PowerBooks
Captura 4 de PowerBooks
Captura 5 de PowerBooks
Captura 6 de PowerBooks