Skip to content

This is a Django project keeping a log of what I've learned from books over time as I have read them.

License

Notifications You must be signed in to change notification settings

clexp/Books_blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š Book Review Blog

A professional Django-based book review blog that allows users to browse books, read reviews, and explore authors. Built with modern web development practices and a clean, responsive design.

✨ Features

🎯 Core Functionality

  • Book Catalog: Browse books with detailed information including cover images, descriptions, and metadata
  • Author Profiles: Comprehensive author pages with biographies and complete book listings
  • Review System: Star-rated reviews with detailed content and user attribution
  • Search & Filter: Find books by title, author, description, or ISBN
  • Genre Filtering: Browse books by specific genres
  • Responsive Design: Mobile-friendly interface with hover effects and smooth transitions

πŸ›  Technical Features

  • Django Admin Interface: Professional admin panel for content management
  • Database Optimization: Efficient queries with select_related and prefetch_related
  • SEO-Friendly URLs: Clean slug-based URLs for books and authors
  • Pagination: Efficient content pagination for large datasets
  • Image Handling: Book cover upload and display with Pillow integration
  • Professional UI: Clean, modern design with CSS transitions and hover effects

πŸ“Š Admin Features

  • Custom Admin Interface: Enhanced admin with list displays, filters, and search
  • Bulk Actions: Mass operations for review moderation
  • Visual Ratings: Star ratings displayed in admin interface
  • Image Previews: Book cover thumbnails in admin listings
  • Advanced Filtering: Filter by genre, publication date, rating, and more

πŸš€ Quick Start

Prerequisites

  • Python 3.8+
  • pip (Python package manager)
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/book-review-blog.git
    cd book-review-blog
  2. Create and activate virtual environment

    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies

    pip install -r requirements.txt
  4. Run database migrations

    python manage.py makemigrations
    python manage.py migrate
  5. Create superuser account

    python manage.py createsuperuser
  6. Start development server

    python manage.py runserver
  7. Access the application

πŸ“– Usage

Adding Content

  1. Access the admin panel at /admin/
  2. Add authors with biographical information
  3. Add books with cover images and descriptions
  4. Create reviews with star ratings and detailed content

Navigation

  • Home Page: Browse all books with ratings and descriptions
  • Book Details: Click any book title to view full details and reviews
  • Author Pages: Click author names to view their complete bibliography
  • Reviews: Access individual reviews from book detail pages

πŸ— Project Structure

book-review-blog/
β”œβ”€β”€ blog/                   # Main Django app
β”‚   β”œβ”€β”€ models.py          # Database models (Author, Book, Review)
β”‚   β”œβ”€β”€ views.py           # Class-based views
β”‚   β”œβ”€β”€ admin.py           # Enhanced admin interface
β”‚   β”œβ”€β”€ urls.py            # URL routing
β”‚   └── templates/         # HTML templates
β”œβ”€β”€ bookblog/              # Django project settings
β”‚   β”œβ”€β”€ settings.py        # Project configuration
β”‚   β”œβ”€β”€ urls.py            # Main URL configuration
β”‚   └── wsgi.py            # WSGI configuration
β”œβ”€β”€ media/                 # Uploaded files (book covers)
β”œβ”€β”€ static/                # Static files (CSS, JS, images)
β”œβ”€β”€ requirements.txt       # Python dependencies
└── manage.py             # Django management script

🎨 Models

Author

  • Name, biography, website, birth date
  • Automatic book count calculation
  • SEO-friendly URLs

Book

  • Title, description, genre, publication details
  • Auto-generated slugs for clean URLs
  • Cover image support
  • Average rating calculation
  • ISBN and page count tracking

Review

  • Star ratings (1-5 stars)
  • Rich text content
  • Public/private visibility
  • User attribution and timestamps
  • One review per book per user constraint

πŸ”§ Technical Implementation

Backend

  • Framework: Django 5.2.4
  • Database: SQLite (development) / PostgreSQL (production ready)
  • Image Processing: Pillow for cover image handling
  • Admin Interface: Customized Django admin with enhanced features

Frontend

  • Styling: Custom CSS with modern design principles
  • Responsive Design: Mobile-first approach
  • User Experience: Hover effects, smooth transitions, intuitive navigation
  • Typography: Clean, readable fonts with proper hierarchy

Database Design

  • Normalized Structure: Proper foreign key relationships
  • Constraints: Unique constraints for data integrity
  • Indexing: Optimized for common query patterns
  • Validation: Model-level validation for data quality

πŸš€ Deployment

Production Considerations

  • Set DEBUG = False in settings
  • Configure static file serving
  • Set up proper database (PostgreSQL recommended)
  • Configure media file serving
  • Set up SSL certificates
  • Configure environment variables for sensitive settings

Recommended Stack

  • Web Server: Nginx
  • WSGI Server: Gunicorn
  • Database: PostgreSQL
  • Static Files: Nginx or CDN
  • SSL: Let's Encrypt

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Django framework for providing excellent web development tools
  • Bootstrap community for design inspiration
  • Contributors and testers who helped improve this project

πŸ“§ Contact

Your Name - [email protected]

Project Link: https://github.com/yourusername/book-review-blog


Built with ❀️ using Django

About

This is a Django project keeping a log of what I've learned from books over time as I have read them.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published