Readify is a full-stack web application built with React and Node.js server that enables users to manage, visualize, and track their personal book collections. The application provides interactive bookshelves, persistent user data management, and book discovery features powered by the OpenLibrary API.
readify.mp4
- Create and manage custom bookshelves.
- Discover and search books via the
OpenLibrary API. - Add books directly to your library.
- Drag and drop books between shelves.
- Create, rename, and delete bookshelves.
- Track reading status, progress, and ratings.
- Search books and bookshelves.
- View detailed book and author information.
- Persist library data with a
Node.jsbackend.
app/
├── docs/
│ ├── design.png - Figma design
│ ├── wireframe.png - Excalidraw wireframe
│ └── use-case.svg - Use case diagram
│
├── resources/ - Documentation resources
│ ├── screens/ - UI screenshots
│ └── readify.png - Application logo
│
├── src/
│ ├── api/ - API communication
│ ├── assets/ - Static assets
│ ├── components/ - Reusable UI components (24 components)
│ ├── context/ - State management contexts (5 contexts)
│ ├── hooks/ - Custom React hooks (3 hooks)
│ ├── pages/ - Page components (7 pages)
│ ├── services/ - Business logic services (5 services)
│ ├── app.css - Global styles
│ ├── App.jsx - Root component
│ └── main.jsx - App entry point
│
├── package.json - Project dependencies and metadata
├── package-lock.json - Locked dependency versions
├── vite.config.js - Vite build configuration
├── eslint.config.js - ESLint rules configuration
├── index.html - Main HTML entry point
├── Dockerfile - Docker container setup
├── docker-compose.yml - Docker compose configuration
├── README.md - Project documentation
└── LICENSE - License file
- Node.js (v16 or higher)
npmoryarnpackage manager- Modern web browser (Chrome, Firefox, Safari, Edge)
- Docker and Docker Compose (optional, for containerized setup)
- React (v19.1.1) – UI library
- React DOM (v19.1.1) – React rendering for web
- React Router DOM (v7.9.5) – Client-side routing
- Vite (v7.1.7) - Build tool and dev server
- Axios (v1.13.1) - HTTP client for API calls
- Tailwind CSS (v4.1.16) - Styling framework
- DnD Kit (v6.3.1) - Drag and drop library
- Lucide React (v0.552.0) - Icon library
- OpenLibrary API - For book discovery and metadata
- Node.js server for data persistence
- MySQL Database support
git clone git@github.com:ppatrik-dev/readify.git && cd readifynpm installor
yarn installnpm run devhttp://localhost:8080
docker compose up --buildThe Home screen includes sections for recommended books, continue reading, trending titles, and unfinished books, helping users easily navigate their reading activity.
The Library screen allows users to manage their personal shelves, including searching for shelves and organizing books via drag-and-drop between shelves.
This screen displays a specific shelf from the user’s library and supports searching books within the shelf, showing reading progress and book status.
This screen provides a real-time search interface and displays books that are already added to the user’s library, allowing users to quickly find and manage their existing collection.
This screen contains predefined book categories that allow users to filter and automatically search books based on the selected category, making it easier to browse books by specific interests.
The Book Detail screen provides comprehensive information about the selected book and its author, including reading progress, reading status, and star rating.
This project uses JSDoc annotations to improve code readability, maintainability, and IDE support.
During the development process, the following artifacts were created in sequence:
- Use Case diagram – Shows the main system interactions between users and the application.
- Wireframe – Low-fidelity layout illustrating the structure of the application screens.
- Design – Final UI design showcasing the visual style and component structure.
This project does not include automated tests. All functionality was verified through manual testing during development.
Manual testing focused on:
- Core user flows (creating and managing bookshelves)
- Drag and drop interactions between shelves
- Book search and addition via OpenLibrary API
- Updating reading status, progress, and ratings
- UI responsiveness and component behavior across views
This project is licensed under the MIT License. See the LICENCE file for details.






