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.