Skip to content
Book catalogue system in Python 3/Django 3.0, modeled after GoodReads and Comes with a GoodReads import script.
Python HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Book catalogue system in Python/Django.


josephine is named after Jo March, my favorite bookworm, from the novel Little Women by Louisa Alcott.

Setup (Linux)

Installation prerequisites: git, python, sqlite3

  1. Cloning the repo:
git clone
cd josephine
  1. Create a virtual environment and install dependencies:
cd josephine
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
  1. Set up configfile, sqlite3 database and admin account
cp josephine/ josephine/
python makemigrations
python migrate
python createsuperuser

And follow the steps to create a superuser.

  1. Start the Django server
python runserver

Point your browser at and log in with your superuser account to view the admin panel. Josephine is not ready to be used in production in any way.

Using the GoodReads importer

scripts/ contains a python script for importing a GoodReads data export. This is a good way to quickly populate the database for development or demo purposes. You can get your own datadump from Goodreads or use the sample export csv in data/.

cd josephine
source venv/bin/activate
cd ..
from scripts import goodreads_importer


This project was inspired by GoodReads (owned by Amazon, not self-hosted), LibraryThing (not intuitive, not self-hosted), and (PHP, not opensource).

You can’t perform that action at this time.