0 READ THIS FIRSTThe real-life projects that you will face in Industry never come with crystal clear, direct list ofinstructions in a linear manner. In fact, the reality is far from that, the project requirements oftencome in bits and pieces from often a confused client who thinks that they know everything.It is the job of requirement engineers to elicit the requirements. Business Analysts then spend goodamount of time clarifying these requirements and creating more sensible, doable and negotiable listof deliverables.When you read the specifications for this assignment, you will realise that some of the ones mayhave multiple ways of implementing them (just like in real life software development). So instead ofblaming it on the specifications, clarify the requirement(s) either- via emailing to the lecturer or the head tutor (not your tutors) or,- posting in discussion board for assignment 2Do not start this assignment late, you have six weeks to complete it which is more thanenough time to do well and make sure that you use this time judiciously. Starting work at thelast minute will only lead to poor outcome(s).There are certain specifications which will push you out of the comfort zone. This has beendone on purpose. There are certain parts of the assignment where you will need to do selfresearchas you will not find answers in lectures, tute/labs.If you do a good job of this assignment, you can choose to add it as a part of portfolio forfuture employers. You are being prepared for potential employability prospects.School of Science / CS & ITPage 2 of 81 ScenarioYour team has been contacted by the local council library to automate the Library ManagementSystem (LMS). This system will be used to borrow, return and maintain the backend information.You have been tasked create an application for two types of users: library user and library admin.The details of LMS are mentioned later in this document.For this assignment, you will be making extensive use of the Google Calendar API(https://developers.google.com/calendar/v3/reference/) to work with your Raspberry Pi.You will also be using Google Cloud IoT Platform (https://cloud.google.com/solutions/iot/).In summary, the implementation of this assignment involves the following components:• Python documentation tools such as Sphinx• Unit testing in Python• Socket Programming• Writing your own API using Python’s microframework Flask• AI features such as facial recognition, object detection and Voice detection• Programming with Cloud databases and,• Selected Software Engineering Project Management/ToolsAs you can see and were told in advance, that this is a longer assignment.The tasks will be divided into four parts: Pass (PA), Credit (CR), Distinction (DI) and HighDistinction (HD). Decide how much of the assignment you want to attempt, plan accordinglyand do a great job of it.Remember to start earlier rather than later.2 ImportantYou must adhere to the following requirements:a. Only Raspberry Pi model 3 should be usedb. You must use Python 3.* to complete the tasks. Older versions must not be used.c. You must use a version control system of some sorts such as GitHub, Bitbucket, etc. Aprivate repository is to be used ONLY.d. You must stick to the standard style guide for your Python code:(https://www.python.org/dev/peps/pep-0008/)e. You must attend a 20 minutes demo session to get the assignment 2 marked during week12. A schedule and a booking document will be drafted later. You must submit theassignment prior to demo. No submission ? No demo ? No marks.