Skip to content

A full-stack web application for managing your personal book collection. Built with Ruby on Rails backend and React frontend, featuring real-time Rails processing visualization.

Notifications You must be signed in to change notification settings

devonjhills/ruby-book-wishlist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’Ž Ruby Library

A sophisticated full-stack book collection management system built with Ruby on Rails and React

Ruby Rails React TypeScript PostgreSQL Tailwind CSS

Screenshot 2025-07-31 at 3 41 41β€―PM

🌟 Overview

Ruby Library is a modern, full-stack web application designed for book enthusiasts and Ruby developers. It combines elegant book collection management with educational insights into Ruby on Rails architecture, making it perfect for both personal use and learning Rails development patterns.

✨ Key Features

  • πŸ“š Smart Book Management - Track reading progress, ratings, and personal notes
  • πŸ” Intelligent Search - Find books with covers and descriptions via Open Library API
  • 🎯 Reading Status Tracking - Organize books by want-to-read, currently-reading, and completed
  • πŸ” Secure Authentication - JWT-based user authentication with demo account
  • πŸ“Š Educational Rails Insights - Real-time visualization of Rails processing (unique feature!)
  • 🎨 Ruby-Themed Design - Beautiful dark theme with ruby red accents
  • πŸ“± Responsive Design - Works seamlessly on desktop and mobile devices

πŸŽ“ Educational Value

This project serves as an excellent portfolio piece and learning resource for:

  • Full-stack Ruby on Rails development
  • Modern React frontend architecture
  • API design and integration
  • Database optimization and indexing
  • Authentication and security best practices
  • Real-time backend processing visualization

πŸš€ Live Demo

Demo Credentials:

🎯 Portfolio Note: This application showcases advanced full-stack development skills with Ruby on Rails backend, React frontend, PostgreSQL database, and modern web development practices.


⚑ Quick Start

Prerequisites

Ensure you have the following installed:

🎯 One-Command Start (Recommended)

# Clone the repository
git clone https://github.com/your-username/ruby-library.git
cd ruby-library

# macOS/Linux
./start.sh

# Windows
start.bat

πŸ”§ Manual Setup

Click to expand manual setup instructions
# 1. Backend Setup (Terminal 1)
cd wishlist_backend
bundle install
rails db:create db:migrate db:seed
rails server -p 3001

# 2. Frontend Setup (Terminal 2)
cd wishlist_frontend
npm install
npm run dev

🌐 Access Points


πŸ—οΈ Architecture

ruby-library/
β”œβ”€β”€ πŸš‚ wishlist_backend/         # Ruby on Rails 8 API
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ controllers/api/     # API endpoints
β”‚   β”‚   β”œβ”€β”€ models/              # Active Record models
β”‚   β”‚   └── services/            # Business logic
β”‚   β”œβ”€β”€ config/                  # Rails configuration
β”‚   └── db/                      # Database migrations & seeds
β”‚
β”œβ”€β”€ βš›οΈ wishlist_frontend/        # React + Vite Frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/          # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/               # Route components
β”‚   β”‚   β”œβ”€β”€ contexts/            # React Context providers
β”‚   β”‚   └── services/            # API integration
β”‚   └── public/                  # Static assets
β”‚
└── πŸ“‹ Configuration Files
    β”œβ”€β”€ CLAUDE.md               # AI development guidelines
    β”œβ”€β”€ start.sh / start.bat    # Quick start scripts
    └── README.md              # This file

πŸ”§ Tech Stack

Backend (Ruby on Rails)

  • Framework: Ruby on Rails 8.0 (API-only)
  • Database: PostgreSQL with optimized indexing
  • Authentication: JWT tokens with 24-hour expiration
  • External APIs: Open Library for book metadata
  • Testing: Rails built-in test suite

Frontend (React)

  • Framework: React 18 with Vite build tool
  • Routing: React Router v6
  • Styling: Tailwind CSS with custom Ruby theme
  • UI Components: shadcn/ui component library
  • HTTP Client: Axios with interceptors
  • Typography: Crimson Text (serif) + IBM Plex Sans

Database Schema

  • Users: Authentication and profile management
  • Items: Book records with metadata and user associations
  • Optimized Indexes: Strategic indexing for performance

🎯 Core Features Deep Dive

πŸ“– Book Management

  • CRUD Operations: Full create, read, update, delete functionality
  • Status Tracking: Want to read β†’ Currently reading β†’ Completed
  • Rich Metadata: Covers, descriptions, authors, genres, release years
  • Personal Notes: Add private notes and ratings (1-5 stars)

πŸ” Smart Search Integration

  • Open Library API: Real-time book search with cover images
  • Auto-complete: Intelligent search suggestions
  • Metadata Enrichment: Automatically fetch book descriptions and covers

πŸ›‘οΈ Security & Authentication

  • JWT Authentication: Secure token-based authentication
  • Password Hashing: bcrypt for secure password storage
  • CORS Configuration: Proper cross-origin resource sharing
  • Input Validation: Comprehensive server-side validation

πŸ“Š Educational Rails Visualization

Unique feature that sets this project apart:

  • Request Lifecycle: Visualize Rails request processing pipeline
  • Database Queries: Real-time SQL query monitoring and optimization
  • Active Record Operations: See ORM operations in action
  • Performance Metrics: Query timing and performance analysis

πŸš€ API Reference

Authentication Endpoints

POST /api/auth/register    # User registration
POST /api/auth/login       # User login
GET  /api/auth/me          # Get current user

Book Management Endpoints

GET    /api/items          # List user's books
POST   /api/items          # Create new book
GET    /api/items/:id      # Get specific book
PUT    /api/items/:id      # Update book
DELETE /api/items/:id      # Delete book

Search Endpoints

GET /api/search/books?q=query    # Search Open Library

🎨 Ruby Library Theme

The application features a sophisticated Ruby Library theme:

  • Color Palette: Deep ruby reds with dark charcoal backgrounds
  • Typography: Crimson Text for headings, IBM Plex Sans for body text
  • Icons: Ruby gem iconography throughout the interface
  • Visual Effects: Subtle gem patterns and ruby glow effects

πŸ§ͺ Development & Testing

Running Tests

# Backend tests
cd wishlist_backend
rails test

# Frontend linting
cd wishlist_frontend
npm run lint

Development Commands

# Backend console
rails console

# Database operations
rails db:reset          # Reset database
rails db:seed           # Seed with demo data

# Frontend development
npm run dev             # Development server
npm run build           # Production build

πŸ“ˆ Performance Optimizations

  • Database Indexing: Strategic indexes on user_id, status, and search fields
  • Query Optimization: Efficient Active Record queries with includes()
  • Caching: Rails.cache for frequently accessed data
  • Frontend: Code splitting and lazy loading
  • API: Pagination and filtering support

πŸ† Portfolio Highlights

This project demonstrates:

  • Full-Stack Expertise: End-to-end application development
  • Modern Architecture: API-first design with separate frontend/backend
  • Database Design: Optimized PostgreSQL schema with proper indexing
  • Security Best Practices: JWT authentication, input validation, CORS
  • Educational Value: Unique Rails processing visualization feature
  • UI/UX Design: Custom theming with responsive design
  • API Integration: External API consumption and error handling
  • Testing: Comprehensive test coverage
  • Documentation: Clear, professional documentation

About

A full-stack web application for managing your personal book collection. Built with Ruby on Rails backend and React frontend, featuring real-time Rails processing visualization.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published