Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Assignment

Design a Library Management System


A library management system is an automation system used to manage a library
such as check out and return of books and calculating any fines for any late returns

Requirements
1. Allow a user to borrow a book , this should return a due date
2. Allow a user to return a book, calculate fine if any i. Fines should be
calculated based on the number of days beyond the due date the customer
has returned the book. (ex Number of Day * Fine per day)

Instructions
1. Database usage is not a P0 requirement. You can choose to simplify data
injection to expedite development time. For e.g., in-memory data structures
can be used as a datastore. Do however ensure that this layer is optimised for
the use case.
2. There is no need to write data onboarding flows. Assume the data is already
present in the datastore. (Like Users , Groups and user group mappings)

Evaluations Criteria
1. It must be a WORKING Java Spring Boot app
2. You should be able to demo at least the primary features
○ Additional points if you are able to demo the secondary features.
3. Code-quality, your component breakdown, and the quality of your
workflow.
4. Code should be modular
5. The code should be extensible, if any additional functionality needs to be
added, it should be easily incorporated. It should not need a rework of the
code.
6. Code should easily accommodate new requirements and minimal changes
7. Add a README file that states your
○ high-level assumptions or any important assumptions
○ steps or commands on setting up the datastore (if any) with some
sample data
○ building and running the code
○ curl commands to test API

Submission details
Please share your final submission in a zip file format

You might also like