Skip to content

philcifone/libaraxia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

205 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Libaraxia

(New screenshots coming soon!)

Libaraxia Sidebar Book Details Rate & Review Book Details

πŸ“š Project Overview

Libaraxia is a modern web application designed to help you catalog and manage your personal library with style and efficiency. Built with Flask and SQLite, it offers a seamless interface for organizing your book collection, tracking your reading progress, and maintaining your literary life away from the prying eyes of corporations and AI.

What started as a hobbyist project has evolved into a feature-rich library management system. While it's still growing and improving, it's already a robust and portable solution for personal library organization.

πŸ› οΈ Installation

Currently, Libaraxia is in active development, not stable, and not recommended for production use. However, if you're feeling adventurous and want to help me beta test; the below instructions should, in theory, work. You can now install using docker if you know your way around it!

Docker install:

  1. git clone the repository and cd into it
git clone https://github.com/philcifone/libaraxia

cd libaraxia
  1. Create a Google Books API Key from https://console.cloud.google.com and add it to the .env.example file (.env.example included) while you also change SECRET_KEY and then run:
mv .env.example .env

mv docker-compose.yml.example docker-compose.yml # you shouldn't need to update this
  1. Build
sudo docker compose build --no-cache

# -d for detached mode or keep it off to watch the console
sudo docker compose up -d 
  1. Access via the browser at localhost:5000 (local ip can be accessed after it is accessed from local host, no idea why yet.)

If needed (i.e running headless on the same network) you can use the docker container IP

Run:

sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' libaraxia-web-1

and copy and paste the ip address followed by :5000 in your browser.

  1. Register admin account upon initial startup.

  2. Use the Add Book button in the bottom right to start adding books via search or ISBN (no barcode scanner yet) and start tracking your own digital library!

If you want to build it from the repo directly it should also be pretty easy:

  1. git clone the repository and cd into it
git clone https://github.com/philcifone/libaraxia

cd libaraxia
  1. Install required packages with the requirements.txt
pip install -r requirements.txt
  1. To initialize SQLite database with the provided create_database.sql file run the following command:
sqlite3 your_database.db < create_database.sql
  1. Configure your environment variables:
### EXAMPLE ###

SECRET_KEY=your_secret_key

DATABASE_URI=sqlite:///library.db

FLASK_APP=app:create_app

GOOGLE_BOOKS_API_KEY=get_yours_at_https://console.cloud.google.com
  1. Run in project root with flask/gunicorn/python, whichever. python3 is easiest for a development server, for a production server I use gunicorn as a systemd service in an LXC container. So this will depend on your use-case I think. Happy to help if needed.
python3 app.py
  1. Access via the browser at localhost:5000 (local ip can be accessed after it is accessed from local host, no idea why yet.)

✨ Features

  • Tiled library view
  • Add/edit/delete book
  • ISBN fetch auto fill
  • Book title and author search & autofill
  • Catalog search
  • Catalog sort
  • Catalog filter
  • User cover upload
  • Account register (admin only)
  • Multi-user login & authentication
  • Email and Password update
  • Library & user stats
  • csv export
  • Custom book tags per user
  • Custom collections per user
  • Rating & comment system per user

🚧 Future Feature Ideas

  • Barcode scanner - still in development
  • Admin & user settings
  • Library Activity Feed

πŸ’‘ Contributing

Found a bug? Have a feature idea? Contributions are welcome! While this started as a personal project, I believe in the power of community-driven development, and I am not a trained developer. This has been the product of a lot of AI collaboration, and I'd love for experienced human eyes to check this out. PLEASE feel free to:

  • Open issues for bugs or feature requests
  • Submit pull requests (I've never made it this far with github so bear with me as I learn to do more than commit/push/pull)
  • Share your ideas and feedback
  • Help with documentation

πŸ“ To Do:

  • Backup project files!!
  • Have fun!!!!!

Frontend

  • Fix tile text alignment
  • Add Author to tile
  • Add better back to list on search page inside search container
  • Fix add book button
  • Style main page search bar add sort
  • Heading on Add Book page
  • Update book details style to match
  • Hamburger menu and side bar
  • Add book floating button
  • View more button for description
  • Fix collections toolbar (show read state)
  • Added tailwind css
  • Better search bar functionality
  • Better back to catalog button
  • Refactor styles.css
  • Make add & edit book pages prettier!!
  • Better fonts
  • better mobile on book details page
  • Side scroll of books on collections page
  • separate recent books/reviews feed/list?
  • Test Docker packaging
  • Release docker packaging

Backend

  • Fetch book descriptions
  • Multi-user creation & login authentication
  • Sort catalog feature
  • Admin only access to CRUD functions
  • Search function
  • Version Control
  • Fix image upload in add_image route
  • Image resize/optimize during upload
  • Refactor code, add blueprints
  • secret key to server/dev env instead of codebase
  • Remove books table read column (will be a future user table column)
  • Add rating & comments
  • Improve & fix bookshelves (collections, now reading lists)
  • auto image download
  • Cover image fetch script/button (auto fetch during add but user can replace in add and edit) - revisit
  • User book details
  • User profile
  • Add "DNF" section to reading status & list
  • Genre & subtitle add to API fetch & book details
  • Filter options!!! (year read, year published, page count, genre, is_read, etc.)
  • Export to spreadsheet/csv
  • User created bookshelves/collections
  • Admin & user settings

πŸ“… 2024-12-30

Updated a lot of frontend

  • tailwind css - added but not used
  • vanishing header bar
  • hamburger menu and sidebar
  • moved "collections" to "user profile", switching name to "reading list"
  • need to create ability for users to create their own collections for collections page

πŸ“… 2025-01-01

Switched to Claude AI for troubleshooting, more frontend updates, some backend

  • Better refactoring of blueprints.books.py to utils.book_utils.py
  • Fixed cover fetch
  • Layouts for book details and rate & review are much cleaner and polished
  • More symbols/icons in use for UX/UI
  • Better sidebar features
  • User profile password and email update

πŸ“… 2025-01-05

Lots of search and filtering advancements today, plus csv export

  • Implemented title/author search functionality
  • Added CSV library & user info export
  • Enhanced book addition with auto-fill
  • Improved cover image fetching and quality
  • Refined UI/UX with smoother transitions
  • Added reading statistics dashboard
  • Enhanced filter and sort capabilities
  • Implemented tag management system
  • Created custom collections
  • Started barcode scanner feature

πŸ“… 2025-01-22

Been awhile since I updated after starting other projects. I started to rebuild this in React but realized it would be easier to simply add tailwindcss since the backend seems to function quite well here.

  • Updated tailwindcss for:
    • search/sort/filter
    • sidebar
    • add book
    • book details
    • index
  • Added google books api key to book utils and books route - unsure if working!

needs addressed:

  • better mobile style on book details - centered
  • api title search and display on add book, need to test! - javascript??
  • search bar inside top navbar, sort/filter dropdown.
    • sort reset button instead of on change?
  • untracked read status not resetting? others work, low priority

Finished with changing all the templates to tailwind css and fixed the api!

  • Commited and pulled from repo to prod server and works!
  • Tried updating search/navbar/sidebar into something more modern but couldn't get it.
  • almost forgot to add the google api key :)

πŸ“… 2025-01-23

Images werent being added from the title/author search selection

  • mostly fixed after excruciating debugging.
  • Author and genre info are not fetching from the json data, see console, utils, and books.py.
  • see diff between old and new add_books.js, and old scripts.js (comment: populate data, fillBookForm)??
  • need to add "selected" javascript to button once the book data is fetched and populated below
  • need to add "no-cover.png" to prod server, or just do text placement. JavaScript goes brrrrr looking for it if it isn't there.
  • WOOHOO fixed the search, cover fetch, and info fetch. Updated styles, working on fonts. Cant quite get it.

πŸ“… 2025-03-26

Docker packaging!

  • Been awhile since any meaningful updates! Happy to have docker packaging figured out.
  • trying to add github workflows, might be helpful.

Built with β˜• and πŸ₯ƒ by a πŸ“– lover, for πŸ“š lovers.

About

Self Hosted Library Cataloging Application

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors