Biblioverse is a modern, community-driven web application for discovering, reading, and sharing books. Built with Django and modern web technologies, it allows users to post their favorite reads, browse by genre, rate books, and download them in various formats like PDF, ePUB, and DOCX.
- User Accounts: Custom profile system with avatars, sign-up, login, and personalized user dashboard.
- Book Discovery: Browse featured books, explore by genres, and search seamlessly for authors and titles.
- File Distribution: Integrated with Firebase Cloud Storage for secure and scalable hosting of book files (PDF, ePUB, DOCX) and cover images.
- Community Ratings: An interactive, AJAX-powered 5-star rating system.
- Modern UI: Built with Vanilla CSS, responsive design, glassmorphism aesthetics, and micro-animations for a premium feel.
- Dynamic Routing: Beautiful vanity URLs (
/username/) for user profiles.
- Backend: Django 5.x, Python 3
- Database: PostgreSQL (Production/Local), SQLite (Testing)
- Storage: Firebase Cloud Storage (Admin SDK)
- Frontend: HTML5, Vanilla CSS3 (Custom Design System), Vanilla JS, Lucide Icons
- Python 3.10+
- PostgreSQL
- Firebase Account (for Cloud Storage)
git clone <your-repo-url>
cd django-book-store
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
pip install -r requirements.txtCreate a .env file in the root directory based on the following template:
SECRET_KEY=your_django_secret_key
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
DB_NAME=bookstore_db
DB_USER=bookstore_user
DB_PASSWORD=your_db_password
DB_HOST=localhost
DB_PORT=5432
# Firebase Web SDK config
FIREBASE_API_KEY="your_api_key"
FIREBASE_AUTH_DOMAIN="your_project_id.firebaseapp.com"
FIREBASE_PROJECT_ID="your_project_id"
FIREBASE_MESSAGING_SENDER_ID="your_sender_id"
FIREBASE_APP_ID="your_app_id"
FIREBASE_STORAGE_BUCKET="your_project_id.appspot.com"- Go to the Firebase Console -> Project Settings -> Service Accounts.
- Generate a new private key.
- Save the downloaded JSON file as
secrets/firebase-adminsdk.jsonin the root of the project.
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuserpython manage.py runserverVisit http://127.0.0.1:8000 to start exploring Biblioverse!
MIT License


