• Create Student
○ Create Card
• Delete Student
○ Deactivate Card
• Update Student Details
• Create Author
• Update Author details
• Create Book
• Get Books
○ All books written by a particular author
§ All books
§ Only Available books
○ All books for a particular genre
§ All books
§ Only Available books
○ All books for a particular genre and written by a particular author
§ All books
§ Only Available books
• Issue a book
○ Check whether book is Available or not + Is Limit reached or not
○ Mark book as Unavailable
○ Link the book with card
○ Add transaction entry in the table
• Return a book
○ Mark book as available
○ Unlink the book with card
○ Calculate fine if any
○ Add transaction entry in the table
curl -XPOST "localhost:70/createStudent" -H "Content-type: application/json" -d '{"name": "<Name>", "emailId": "<Email-Id>", "age": <Age>, "country": "<Country>"}' -v
curl -XPUT "localhost:70/updateStudent" -H "Content-type: application/json" -d '{"id": <id>, "name": "<Name>", "age":<Age>, "country": "<Country>", "emailId": "<Email-Id>"}' -v
curl -XDELETE "localhost:70/deleteStudent?id=1" -v
curl -XPOST "localhost:70/createAuthor" -H "Content-type: application/json" -d '{"name": "<Name>", "age": <Age>, "country": "<Country>", "email": "<Email-Id>"}' -v
curl -XPOST "localhost:70/createBook" -H "Content-type: application/json" -d '{"name": "<Name>", "genre": "<GENRE>", "available": <boolean>, "author": {"id": <id>}}' -v
curl -XPOST "localhost:70/issueBook?cardId=1&bookId=1" -v
curl -XPOST "localhost:70/returnBook?cardId=1&bookId=1" -v