Bibliotheca
Bibliotheca is a personal digital library assistant designed to help book lovers track, organize, and analyze their reading life. It serves as a beautiful, central hub where users can see their reading history, current progress, and future aspirations at a glance. Goal The primary goal of Bibliotheca is to make reading a more engaging and measurable habit. By visualizing data and providing tools to manage a personal library, it aims to motivate users to read more, explore new authors, and stay on top of their reading challenges. Usage Users log in to a personalized dashboard where they can: Track Reading: Update progress on books they are currently reading and mark them as finished. Organize Library: Manage a digital collection of books and authors. Set Goals: Create and track flexible reading goals (e.g., "Read 20 books this year" or "Read 50 pages a week"). View Statistics: Explore detailed insights and charts about their reading habits over time. Manage Wishlist: Keep a curated list of books they intend to read next.
Tech Stack
Technical Breakdown
1. Project Goal & Philosophy
Bibliotheca is a premium, personal digital library application. Unlike generic reading trackers, it is designed as a comprehensive library management system for the dedicated reader. Its goal is to replace spreadsheets and disjointed notes with a beautiful, unified interface that handles the entire lifecycle of a book—from "wishing to buy" to "tracking re-reads."
2. Core Functional Modules
🏠 The Dashboard (Command Center)
The dashboard is the landing page designed to give immediate context to the reader.
- Stats Hero: A high-level summary of the current year's performance (Books finished, pages read).
- Currently Reading: A prominent widget showing the active book, progress bar, and calculations for "pages left."
- Quick Actions: Shortcuts to log a reading session, add a book, or update a goal.
- Goal Progress: Visual rings or bars showing how close you are to your weekly/monthly/yearly targets.
- Recent Activity: A feed of books recently added or finished.
📚 Library & Book Management
The core database of the application. It goes beyond simple title/author lists:
- Detailed Metadata: Tracks language, genre, publication date, and page count.
- Reading History: Uniquely, it supports multiple readings of the same book. You can track that you read Harry Potter in 2010 and again in 2024, with separate ratings and notes for each session.
- Status Workflow: Books move through a clear lifecycle:
- To Read (In your library, waiting to be started)
- Started / Reading (Active)
- Finished (Completed)
- Abandoned (Did not finish)
- Ratings & Notes: Users can leave 1-5 star ratings and personal notes for each reading journey.
🛍️ Wishlist (Acquisition Tracking)
A distinct feature separate from the "To Read" library list.
- Purpose: Tracks books you want to acquire, not just read.
- Shopping Aid: Stores potential purchase URLs (e.g., Amazon link) and estimated prices.
- Purchase Status: Has a specific "Purchased" toggle to easily move items from Wishlist to your main Library once acquired.
🎯 Reading Goals System
A highly flexible motivation engine. Users are not limited to a single "Books per Year" goal.
- Metrics: Goals can be based on Books Finished OR Pages Read.
- Timeframes: Supports Weekly, Monthly, and Yearly goals simultaneous.
- Example: "Read 10 pages every day" AND "Read 50 books this year."
- Streaks: Encourages consistency by tracking consecutive periods of meeting goals.
📊 Deep Analytics & Statistics
A dedicated analytics suite that visualizes reading habits.
- Monthly Trends: Bar charts showing reading volume month-over-month.
- Genre Distribution: Donut charts creating a "reading DNA" profile of your favorite genres.
- Velocity Metrics: Calculates "Average Pages per Day" and "Books per Month."
- Backlog Analysis: Shows how many books are waiting in your "Want to Read" pile compared to how many you finish.
3. User Experience Features
- Adaptive Layout: The application is built to work seamlessly on desktop and mobile (Responsive Design).
- Real-time Sync: Data updates instantly across devices (using Supabase Realtime).
- Modern Aesthetics: Uses a "Luxury" design language with dark modes, gradients, and polished typography to make the app feel like a premium tool.
Engineering Highlights
Full-Stack Nuxt 3 Architecture
Leveraged the full power of Nuxt 3 with Server-Side Rendering (SSR) to build a highly performant application that features seamless client-side hydration and auto-import capabilities.
Automated SQL Triggers
Offloaded complex logic to the database layer by implementing advanced PostgreSQL triggers and functions to automatically calculate reading progress, streaks, and goal completion in real-time.
Supabase Realtime Sync
Integrated Supabase Realtime subscriptions to ensure that library updates, wishlists, and reading sessions are instantly synchronized across all user devices without refreshing.
Interactive Data Visualization
Engineered a custom analytics dashboard using ApexCharts and Vue 3 to render dynamic, interactive visualizations of reading trends, genre distributions, and yearly velocity.
Multi-Lifecycle Book Tracking
Designed a complex data model that supports multiple reading sessions for a single book, enabling users to track re-reads with separate dates, ratings, and notes for each journey.
Type-Safe "Luxury" Design System
Built a bespoke, high-end dark mode UI using Tailwind CSS and TypeScript, ensuring strict type safety while delivering a premium, responsive user experience with polished micro-interactions.
