Video Demo: https://youtu.be/EZHdi7Y-xWQ
Pixel Pages is an online ebook library application that allows users to read ebooks, navigate through chapters, and manage their own ebook uploads. It aims to provide a seamless reading experience with features like navigation, image handling, and book search.
- User Authentication: Users can register, log in, and log out.
- Ebook Reader: Read and navigate through chapters of EPUB files.
- Dynamic Image Handling: Automatically extract and display images from EPUB files.
- Book Upload: Authenticated users can upload their own EPUB files.
- Book Description: Fetch the book description from google books api and display the information.
-
Front-End:
- HTML/CSS: Structure and styling of web pages.
- JavaScript: Handling dynamic content.
- Jinja2: Templating engine for rendering dynamic content.
-
Back-End:
- Flask: Web framework for building the application.
- Flask-Login: User session management.
- SQLAlchemy: ORM for database interactions.
- EbookLib: Library for working with EPUB files.
- BeautifulSoup: Library for parsing HTML content.
- Google Books API: Fetch book details.
blueprints/
: Directory for flask blueprintsblueprints/auth.py
: blueprint for authentication scriptsblueprints/books.py
: blueprint for book renderingblueprints/chapters.py
: blueprint for saving and loading the chaptersinstance/users.fb
: database to store books and user information and authenticationapp.py
: Main Flask application file.models.py
: Defines database models (User
,Book
,UserBook
) using SQLAlchemy.reader.py
: Manages ebook images.api_service.py
: Fetch book details from Google Books API.config.py
: for flask configurations.ebooks/
: Directory for storing EPUB files.ebook_images/
: Directory for extracted ebook images.static/style.css
: path for the stylesheet.static/js/view_ebook.js
: JavaScript file for handling dynamic content.static/js/index.js
: JavaScript for index and deleting books.static/js/book_details.js
: JavaScript for loading details of books.static/img
: directory for images used.templates/
: Directory for HTML templates.base.html
: Base template for the application.index.html
: Home page template.login.html
: Login page template.register.html
: Registration page template.book_details.html
: Book details page template.upload.html
: Uploading books page template.
-
Clone the Repository
git clone https://github.com/yourusername/pixel-pages.git cd pixel-pages
-
Install Dependencies Ensure you have Python installed. Then, create a virtual environment (recommended) and install packages from requirements.txt.
python -m venv venv
source venv/bin/activate
venv\Scripts\activate
pip install -r requirements.txt
Future Enhancements Support for multiple ebook formats. Improved image handling and resizing. Additional features like bookmarks and notes. Enhanced search functionality with more filters.