A comprehensive e-library web application that enables users to discover, read, upload, and manage digital books. Built with Django REST Framework and React.
- Features
- Tech Stack
- Prerequisites
- Installation
- Configuration
- Usage
- API Documentation
- Project Structure
- Contributing
- License
- Book Management: Browse, search, upload, and download books in PDF format
- User Authentication: Secure registration and login system
- Personal Library: Organize books into favorites, bookmarks, and downloads
- Reading Progress: Track reading progress with page tracking
- Reviews & Ratings: Rate and review books with 1-5 star system
- Categories: Browse books by categories (Science, Technology, Fiction, etc.)
- Search & Filter: Advanced search and filtering capabilities
- User Profiles: Customizable profiles with reading statistics
- Daily Quotes: Motivational quotes on the homepage
- Responsive Design: Mobile-friendly interface
- Framework: Django 6.0.2
- API: Django REST Framework 3.15.2
- Database: PostgreSQL
- Authentication: Token-based authentication
- File Storage: Django FileField with media storage
- CORS: django-cors-headers 4.6.0
- Framework: React 19.2.0
- Language: TypeScript 5.9.3
- Build Tool: Vite 7.2.4
- Styling: Tailwind CSS 4.1.18
- Routing: React Router DOM 7.11.0
- Animations: Framer Motion 12.34.2
- PDF Viewer: react-pdf 10.2.0
- Python 3.10+
- Node.js 18+
- PostgreSQL 14+
- npm or yarn
- Navigate to backend directory:
cd backend- Create virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Create PostgreSQL database:
createdb libronet_db- Run migrations:
python manage.py migrate- Create superuser:
python manage.py createsuperuser- Start development server:
python manage.py runserver- Navigate to client directory:
cd client- Install dependencies:
npm install- Start development server:
npm run devCreate a .env file in the backend directory:
SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
DB_ENGINE=django.db.backends.postgresql
DB_NAME=libronet_db
DB_USER=your-db-user
DB_PASSWORD=your-db-password
DB_HOST=localhost
DB_PORT=5432Update API base URL in your frontend configuration if needed (default: http://localhost:8000/api).
- Access the application at
http://localhost:5173(frontend) - Backend API available at
http://localhost:8000/api - Admin panel at
http://localhost:8000/admin
- Register: Create a new account
- Browse: Explore books by category or search
- Upload: Share books with the community
- Read: Open books in the built-in PDF reader
- Organize: Add books to your personal shelves
- Review: Rate and review books you've read
Comprehensive API documentation available in API_ENDPOINTS.md.
- Base URL:
http://localhost:8000/api - Authentication: Token-based (Header:
Authorization: Token <token>) - Public Endpoints: Books listing, categories, book details
- Protected Endpoints: Upload, reviews, shelves, reading progress
E-Library/
├── backend/ # Django backend
│ ├── api/ # API app
│ ├── core/ # Core settings
│ ├── users/ # User management
│ ├── media/ # Uploaded files
│ ├── manage.py
│ └── requirements.txt
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API services
│ │ └── App.tsx
│ ├── public/
│ └── package.json
├── API_ENDPOINTS.md # API documentation
├── backend.md # Backend architecture
└── README.md # This file
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
- Backend Architecture Documentation
- API Endpoints Reference
- Book System Implementation
- Categories Documentation
For issues and questions, please open an issue on the repository.
Made with ❤️ by the Libronet Team