"A library is not a luxury but one of the necessities of life." – Henry Ward Beecher
Welcome to solid-octo-eureka – the Library Management System that even your librarian would high-five you for! This Django-powered project is your one-stop solution for managing books, members, borrowings, and overdue reminders, all wrapped in a modern, user-friendly dashboard. Whether you're a code newbie or a seasoned dev, this repo is here to make your life easier (and maybe a little more fun).
- 📊 Librarian Dashboard: Stats, charts, and a bird’s-eye view of your library.
- ⚡ Quick Issue/Return: No more hunting for forms – issue or return books in seconds.
- 🔔 Overdue Notifications: Never let a book go missing (or a member go un-reminded) again.
- 📧 Email Reminders: One click, and your members get a gentle nudge.
- 📤 Export Data: Download books, borrowings, and overdue lists as CSV (Excel fans, rejoice!).
- 🌑 Dark Mode: Because your eyes deserve it.
- 🕵️♂️ Activity Feed: See who borrowed what, and when.
- 🛡️ Admin Panel: Full Django admin for power users.
- Backend: Python 3.8+, Django 4.x
- Frontend: HTML5, CSS3, Bootstrap 5, JavaScript, Chart.js
- Database: SQLite (easy mode), but ready for PostgreSQL/MySQL
- Other: Django Admin, Django Templating, pip
- Python 3.8 or higher
- Git (because copy-paste is so 2005)
- (Optional) Virtualenv for a clean workspace
git clone https://github.com/yourusername/solid-octo-eureka.git
cd solid-octo-eureka
python -m venv venv
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
Visit http://127.0.0.1:8000/ and bask in your glory.
- Log in as admin to access the dashboard.
- Issue or return books with the quick panel.
- View stats, charts, and recent activity.
- Export data as CSV (for your inner spreadsheet nerd).
- Send overdue email reminders with a single click.
- Manage users, books, and borrowings via the Django admin panel.
solid-octo-eureka/
│
├── companyapp/ # Main Django app
│ ├── migrations/
│ ├── static/companyapp/ # CSS, JS, images
│ ├── templates/companyapp/ # HTML templates
│ ├── admin.py
│ ├── models.py
│ ├── views.py
│ └── ...
│
├── project/ # Django project settings
│ ├── settings.py
│ ├── urls.py
│ └── ...
│
├── db.sqlite3 # SQLite database (development)
├── requirements.txt # Python dependencies
├── manage.py # Django management script
└── README.md
- Static files: Drop your CSS/JS in
companyapp/static/companyapp/
. - Templates: Edit HTML in
companyapp/templates/companyapp/
. - Models: Your data lives in
companyapp/models.py
. - Views: Business logic in
companyapp/views.py
. - URLs: Route traffic in
companyapp/urls.py
andproject/urls.py
.
- Run tests:
python manage.py test
- Collect static files (for production):
python manage.py collectstatic
- Write tests in
companyapp/tests.py
. - Run all tests with:
python manage.py test
- For production, use PostgreSQL or MySQL (SQLite is for local heroes).
- Set
DEBUG = False
inproject/settings.py
. - Use a WSGI server (Gunicorn, uWSGI) and a web server (Nginx, Apache).
- Configure static/media file serving.
- Set up environment variables for secrets (don’t be that person who commits passwords).
- Fork the repository
- Create your feature branch (
git checkout -b feature/YourFeature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin feature/YourFeature
) - Open a Pull Request
If you make us laugh in your PR description, you get bonus points (redeemable for good vibes).
MIT. Because sharing is caring.
- Name: shaanif ahmed
- Email: [email protected]
- GitHub: shaaniffaqui
“May your code be bug-free and your books always returned on time!”