Building My Perfect Digital Library

Intro

Tired of a scattered digital library? I know I am. Trying to organize all my digital media–books, manga, textbooks, homework–between all of my various devices is a nightmare. Enter MyBookShelfApp (WIP Name). MyBookshelfApp is a self-hosted platform designed to centralize your personal collection. While the current prototype focuses on PDFs, the vision is a universal digital library accessible anywhere with an internet connection.

The Tech Stack

For this project, I decided to opt for two frameworks I’ve never worked with: React and FastAPI.

The Prototype

After days of juggling my time between swim meets and school work, I was finally able to pull together a working prototype. The features that work include:

What’s Next?

With the core functionality in place, the next phase focuses on stability, maintainability, and feature expansion:

  1. SQLAlchemy Integration: Moving from direct SQLite calls to an Object Relational Manager will abstract the database layer, making future migrations to scalable systems like Postgres seamless.
  2. Major Backend Refactoring: This is crucial for simplifying maintenance, improving the developer experience, and welcoming outside contributors (like my friend who is already hopping in!).
  3. Testing Implementations: Introducing Unit and Integration Tests to ensure stability and prevent regressions as the codebase grows.
  4. Metadata Extraction: Implementing logic to automatically pull rich information (author, publication date, etc.) from uploaded file metadata. I’ve heard that pdfminer may be just what i need.

I’m really excited about the direction this project is taking, and can’t wait to expand on the prototype.

Check out the code on GitHub right now! The repo is admittedly a bit of a mess as I begin the refactor, but I’d love to hear your outside feedback on the current state or future features!

Link to the Github