Skip to content

yamesyung/SoloScribe

Repository files navigation

A personal library based on Goodreads data.

Installation

If you used a pre v1.0.0 version, I added additional steps in release notes.

Linux

  • Have Docker installed
  • Clone this repo locally or Download zip and extract
  • Open a terminal and change directory to SoloScribe-main
  • Run
    docker compose up -d
    
  • Open a browser and go to http://127.0.0.1:8000/

Windows

 git clone https://github.com/yamesyung/SoloScribe.git
  • If you don't have git locally installed you can download the source code from Code -> Download ZIP and extract to your preferred location
  • Open Docker Desktop and make sure docker engine is running
  • Go inside to extracted folder, open a console (Shift + Right click -> Open powershell) and type
    docker compose up -d
    
  • Open a browser and go to http://127.0.0.1:8000/
  • To close the app you can type
    docker compose down
    
    in the same powershell and close the docker engine from Docker Desktop

Running the app on the local network

  • Get the IP address of the host machine. you can use ipconfig (Windows) or ip addr (Linux). Look for something like 192.168.1.x or 10.0.0.x.
  • Add the IP address to ALLOWED_HOSTS in django_project/settings.py: `
    ALLOWED_HOSTS = ['localhost', '127.0.0.1', '192.168.1.*']
    
  • On other devices on the same network, access: http://192.168.1.x:8000

Adding Data

There are 2 ways to add books in the library:

  • Profile -> Settings -> Import data -> Goodreads file (can use the Goodreads export library file and is compatible with library export csv file)
  • Profile -> Add new book (which adds a singular book, based on its url, to one of the predefined shelves)

I also included in the demo directory an export file to get started with the project.

Features

  • List of books and authors from Goodreads library
  • Quotes page, where you can search, filter and mark quotes as favorite
  • Book gallery (an interactive page where you can search, filter, rate and review shelved books)
  • Advanced stats for books and authors
  • Map view (using the Setting/Places field in book data; Named Entity Recognition for Geo Political Entity based on author's description)
  • Word cloud based on books' descriptions grouped in genres (books with language = "English")
  • Timeline view for authors with known birth/death date
  • Influence graph for authors
  • Export function: csv file
  • Export function: zip file structured as Obsidian vault
  • Theme support

Notes:

  • You can customize the Obsidian .md file templates in /books/export_obsidian_vault.py

Themes

There are 4 "official" themes. The "custom" theme allows for more customization options.

If these are not enough you can create your own theme in the static/themes folder. Django sends the html and htmx interactions with the backend and loads the static files from the selected theme folder. This means you have a lot of freedom to style this library with your own static files and share them with the community. Keep in mind that the app is still in development so html structure might change.

Screenshots

book-list

book-detail

gallery

quotes

Custom theme

themes-1

Mobile theme

Screenshot_20251124_180002_org mozilla firefox5