A full-stack web application that helps readers store, search, and revisit insights from books they have finished reading.
Users can maintain a private digital library where they add books, write notes in Markdown, and quickly search or sort their reading history.
Readers often forget the key ideas from non-fiction books after some time. Notes are usually scattered across notebooks, apps, or bookmarks.
This application provides a centralized personal knowledge base where users can store insights and easily revisit them later.
- User authentication with JWT
- Personal book library for each user
- Add, edit, and delete books
- Markdown support for writing structured notes
- Automatic book cover fetching using external APIs
- Search books by title
- Sort books by finished date
- Responsive dashboard for viewing all books
- Vue 3
- Vue Router
- Axios
- Markdown rendering library
- FastAPI
- SQLAlchemy ORM
- JWT Authentication
- bcrypt for password hashing
- SQLite (can be replaced with PostgreSQL)
- Google Books API (book metadata and cover images)
- OpenLibrary Covers API (fallback cover images)
Frontend (Vue) ↓ REST API (FastAPI) ↓ Database (SQLAlchemy + SQLite) ↓ External APIs (Google Books / OpenLibrary)
Backend
backend/
└── app/
├── main.py
├── database.py
├── models.py
├── schemas.py
├── routes/
│ ├── auth_routes.py
│ └── book_routes.py
└── utils/
├── auth.py
└── security.py
Frontend
frontend/
└── src/
├── views/
│ ├── BookList.vue
│ ├── AddBook.vue
│ ├── EditBook.vue
│ ├── BookDetail.vue
│ ├── Login.vue
│ └── Register.vue
├── services/
│ └── api.js
└── router/
└── index.js
git clone <repo-url>
cd book-tracker
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload
Backend will run at:
http://localhost:8000
Swagger API docs:
http://localhost:8000/docs
cd frontend
npm install
npm run dev
Frontend will run at:
http://localhost:5173
- Register a new account
- Login to receive authentication token
- Add a book with title, author, and notes
- Book cover is automatically fetched from external API
- Notes are rendered in Markdown format
- Books can be searched or sorted by finished date
- Users can edit or delete books anytime
- AI generated summaries of book notes
- Semantic search using embeddings
- Tags for organizing books
- Reading statistics dashboard
- Export notes to PDF
- Anand Yelloju
- Durga Narasaiah Naidu Kilaru
This project is for educational purposes.