A full-featured library management system built with Nette Framework.
Supports user registration/login, book catalog management, loan tracking, and RESTful APIs for external integrations.
- Features
- Tech Stack
- Installation
- Running the Project
- API Documentation
- User Roles & Permissions
- Testing & Debugging
- License
- Author
- Authentication & Roles – Secure registration and login with role-based access (Guest, User, Admin).
- Book Management – Add, edit, delete books with cover images, search, and filters by author, year, or keyword.
- Loan System – Admins can manage loans, send email notifications for due books, and mark returns.
- REST API – CRUD endpoints for books and loans, secured with API keys.
- Pagination & Filtering – Optimized for large datasets using
Nette\Utils\Paginator. - Latte Templates – Clean and maintainable frontend with Latte templates.
- Developer Tools – Tracy debugger, PhpStan static analysis, Nette Tester, Faker seed data, and console commands.
- Search – Optional Contributte Elasticsearch integration for full-text search.
| Layer | Technology |
|---|---|
| Backend | Nette Framework (DI, Forms, Security, Database, HTTP, Mail) |
| ORM & Database | Nettrine ORM (Doctrine ORM + DBAL) |
| Templating | Latte |
| Caching | Nette Caching |
| Assets | Nette Assets |
| Search | Contributte Elasticsearch |
| Debugging | Tracy Debugger |
| Testing | Nette Tester, PhpStan, Mockery |
| Data Seeding | FakerPHP |
| Console & CLI | Contributte Console |
git clone https://github.com/cesarjakub/library-system.git
cd library-system composer install php -S localhost:8000 -t www- Visit http://localhost:8000
php bin/console listAll API requests require an API key header:
Books
X-API-KEY: tajny-apikey-123
Loans
X-API-KEY: tajny-apikey-124| Method | Endpoint | Description |
|---|---|---|
| GET | /api/books |
List all books |
| GET | /api/books/{id} |
Get book detail |
| POST | /api/books |
Create a book |
| PUT | /api/books/{id} |
Update book |
| DELETE | /api/books/{id} |
Delete book |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/loans |
List all loans |
| GET | /api/loans/{id} |
Loan detail |
| POST | /api/loans |
Create new loan |
| PUT | /api/loans/{id} |
Mark loan returned |
- Guest – Can register or log in.
- User – Can view books and their loan history.
- Admin – Full access: manage books, loans, and users.
php vendor/bin/tester testsTracy panel enabled in development mode for errors, logs, and database queries.
This project is licensed under MIT.
Jakub César
GitHub: https://github.com/cesarjakub