This is a repository for Ethiopian digital library
# 📚 EtLib – Ethiopian Digital Library API
EtLib is a RESTful API built with **Django REST Framework** and **MySQL**, designed to serve as a digital library system for Ethiopian institutions, schools, and communities.
It allows **librarians** to manage book inventories and **users** to borrow and return books.
The goal is to improve access to books and learning materials digitally.
---
## 🌐 Live Demo
- 🔗 Backend API
---
## 🧰 Tech Stack
- Django + Django REST Framework
- MySQL (Relational Database)
- JWT Authentication (`djangorestframework-simplejwt`)
- RESTful API
---
## 📂 Project Structure
```
etlib/
├── books/ # Book management (CRUD + Borrow/Return)
│ ├── models.py
│ ├── serializers.py
│ ├── views.py
│ └── urls.py
├── users/ # User management + authentication
│ ├── models.py
│ ├── serializers.py
│ ├── views.py
│ └── urls.py
├── etlib/ # Main Django configuration
│ ├── settings.py
│ └── urls.py
├── manage.py
├── requirements.txt
└── README.md
```
---
## 🚀 Getting Started
```bash
# Clone the repo
git clone
github.com
# Navigate to the project directory
cd EtLib
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Apply migrations
python manage.py migrate
# Create a superuser for admin access
python manage.py createsuperuser
# Run the development server
python manage.py runserver
```
Open
127.0.0.1 with your browser or test endpoints in **Postman**.
---
## 🔐 Environment Variables
Create a `.env` file and configure your database + secret key:
```
SECRET_KEY=your_django_secret_key
DEBUG=True
DB_NAME=etlib_db
DB_USER=etlib_user
DB_PASSWORD=abc123
DB_HOST=localhost
DB_PORT=3306
```
---
## 🧪 Testing with Postman
- ✅ Register → Login → Get JWT token
- ✅ Add Book (Librarian only)
- ✅ List/Search Books (All users)
- ✅ Checkout B …