- Project overview
- Functionality
- Technical details
- Technologies
- Installation guide
- Contributing
The goal of the project is to create a library web application.
Demo app available at: https://nokia-library-client.herokuapp.com
YouTube channel with demo videos: https://www.youtube.com/channel/UCMjGWoNeU5F-XZO6ejpe5Fw/videos
For all users:
- Borrowing and reserving books,
- cancelling borrowings and reservations,
- prolongation of borrowed books,
- requesting new books,
- subscribing (or unsubscribing) to existing book requests,
- history of user's borrowings,
- contact with developers (report a bug, request new feature, etc.),
- user accounts,
- night theme,
- editing user account data,
- email notifications in following situations:
- borrowing a book - info where to pick it up,
- reminder about upcoming return date,
- notification about not returning a book in time,
- reservation is ready to accept/reject,
- requested book is available in the library,
- requested book was rejected and never will be added to the library,
For admins only:
- Books management (add, edit, remove),
- semi-automated book details completion,
- authors and categories management,
- handing over books to users,
- returning books,
- list of requested books,
- history of the borrowings of all the admin's books,
- promoting users to new admins,
- demoting existing admins to regular users,
- sharing books with another admin,
- transferring books to different admin.
The business logic of main features which are borrowing and reserving books (and everything related to them) are explained on below flowchart:
5 big rectangles are different states of book: available, awaiting, borrowed, reserved, unavailable. For every action taken by user or admin, estimated availability date could be changed by days or month, or it can reset back to default (small rectangles).
Below you can see database schema used in the project.
- Backend
- Frontend
- Other
- Install docker on your local machine.
- In a project's source folder execute:
docker-compose up
Students:
Nokia supervisors:
- Mateusz Płuciennik
- Adam Dyngosz
- Mateusz Wierzbicki