Skip to content

Features

Ahan Bhargava edited this page May 15, 2024 · 2 revisions

1) Login and Registration

Users can log in with an existing account or can register a new one by clicking the “Don’t have an account” button. When a user registers, the system ensures that the email they enter is unique (ie. not found in our system) and valid using the EmailValidator class. This class uses a regular expression to ensure the input follows the format of “name@domain.extension”. The registration system also checks for a strong password by ensuring it contains at least 1 uppercase, 1 lowercase, 1 digit, and 1 symbol. This is done through a series of if statements that raise a flag when they have detected the type of character they are looking for, then anding the results (ie. all flags raised). Finally, the user can select the type of account they are trying to register (Student, Faculty, Non-Faculty, Visitor) and informs the user after completing registration that their account requires validation from management when selecting a type other than visitor.

2) Renting an Item

The library system maintains a list of all physical items available for rent and/or purchase including books, magazines and DVDs with a starting quantity of 20 for every item. This ensures that no more than the available copies are rented/purchased. The system tracks rent and due dates and applies penalties to users for overdue items at $0.5 per day per item. If the item is not returned within 15 days of the due date, it will be considered lost and the system will charge the user the penalty for each day plus the price of the lost item. The system has multiple checks in place for the user. For example, the system has conditional checks to invoke borrowing limitations so that a user can only rent 10 items at a time for a maximum of one month. Also, the system revokes the borrowing privileges of a user if more than 3 items on their account are past their due dates. The system also checks if an item is rentable or purchasable and it has a quantity greater than 0 (available at the library) and then only gives the available options to the user. To rent a specific item, the user can search for an item in the home page, then open the item they searched for (by double clicking on the item) and then click on the rent or buy option to acquire the item.

3) Returns and Overdue items

The homepage of library system shows the list of currently rented items by the user. The system maintains a database of all rentals for each user which includes the title, ISBN of each item, rent date and due date. Once the user rents an item and goes back to the home page they can click on the ‘Refresh’ button to see the updated rented items table. The system checks the current date against the due date of the rented items. If an item is approaching its due date, it is overdue or it is considered lost the system invokes the conditional checks in place to display warnings to the user on the homepage.

For any of the rented items, the user can choose to return the item when they want to by clicking on the ‘Return’ button which is under the rented items table on the homepage of the user. If the user doesn’t have any overdue charges / lost charges on the item they are returning they can return it without any issues but if they have any charges on the rented item they are returning they will have to go through the payment process to pay the pending amount and after that they can proceed with the return process.

4) Subscribing and Reading a Newsletter

To subscribe to a newsletter that the university provides, the user can search for a newsletter using the search feature of the app and select the desired newsletter from the list of results. Once the newsletter view is open, the user has three options, ‘Read’, ‘Subscribe’ and ‘Unsubscribe’. For every newsletter that is not subscribed, only the ‘Subscribe’ button will be active and the other buttons will be disabled. Upon clicking on the subscribe button, the system will ask for confirmation and show the price, if a user confirms it, they will be redirected to the payment gateway. On a successful payment, the ‘Subscribe’ button will be deactivated and the ‘Read’ and ‘Unsubscribe’ buttons will be activated. On clicking ‘Read’, a new window will open with the newsletter that was chosen. Clicking on ‘Unsubscribe’ will cause the newsletter to be removed from the users active subscriptions. The user can then choose to resubscribe at any time. All the subscriptions are valid for one month, and are removed by the system after a month.

5) Search and Recommendations

To search for a specific item, the user can go to the search bar, select the item type from the dropdown menu (Books, DVD, Newsletter, Magazine) and then search by the title of the desired item. For example, if the user searches for “introduction” the system will display the results of all the items of the selected item type which have the word “introduction” in their title. If the user selects a book from the search results, the system will show recommendations for that specific book based on the similarity of the book's titles. If there are no books found, then it will display recommendations based on the author, then based on the genre of the book, then the publisher of the book and finally, the year the book was published.

6) Faculty Dashboard

If the user logs in as a faculty member a new button called “Faculty View” appears in the bottom right corner. Clicking this button brings the user to a page where they can view a list of all the courses they have taught as well as their associated textbook and the edition of the textbook used. When entering the page, the user will also be prompted with a notification if a newer edition of one of the textbooks they are using has been detected. They will also receive a warning if one of the textbooks they are using is not available and will be asked if they wish to notify the management team of this. Choosing to notify the management team will cause a notification to appear on the “Notifications” tab of the management dashboard. This notification includes a message containing the name of the unavailable textbook and the name of the professor who wishes to speak with them.

7) Manager Dashboard

If a user logs in as a manager of the system, a different view opens for them, that we refer to as ‘manager dashboard’. Using the manager dashboard, the user can perform five functions. First, a manager can validate users using the ‘Validate User’ button. Clicking this button will open the validate user interface, which is also the default interface for the manager. In the validate user interface, there is a table giving all the necessary details of all the users in the system, each user has a checkbox associated with them that shows if a user is valid or not, clicking on the checkbox, a dropdown menu opens with options true and false. To validate a user the true option has to be selected and the ‘Update Users’ button pressed. Second, similarly managers can enable and disable items from being rented on the “Manage Item” tab. There are different panels for each of the three types of items.

Third, managers can add items to the system. Using the ‘Add Item’ button, the user can go to the add an item interface, there are three buttons for each type of item, each type of item has different details and the number and type of field differ for each item. After choosing the type of item, the manager has to enter valid information for all the fields and press the add button, which will add that item to the database.

Fourth, the managers can view book requests by the user, upon clicking the ‘Requests’ button, the manager can view all the books requested by all the users. The textbook has higher priority and is displayed on top of the table. Finally, managers can view all the notifications from faculty by navigating to the notification page by clicking the ‘Notifications’ button, here the manager can view all the information and has the option to delete the request once it has been acknowledged.

8) Student Dashboard

If the user logs in as a student a new button called “Student View” appears in the bottom right corner. Clicking this button brings the user to a page where they can view a list of all virtual textbooks currently loaned to them. Each one displays: the name of the textbook, the name of the course using the textbook, the name of the professor teaching the course, and the end date of the course. Once the end date of the course is reached the virtual textbook is removed from the list of available textbooks.

9) Requesting new Books with Priority

Using this systems, user can request new books these requests are categorized into two types: textbooks for course teaching and self-improvement books. Upon submitting a request, the application prioritises the requests based on their type, with textbooks for course teaching receiving higher priority. This prioritisation is implemented by adding textbooks to the highPriorityRequests list, while self-improvement books are added to the lowPriorityRequests list. Additionally, the application notifies the user of the priority assigned to their request through pop-up messages, indicating whether it is a high or low priority request. This prioritisation and notification mechanism ensures that requests for textbooks, crucial for academic purposes, are handled promptly and with greater attention as they are seen by managers first, meeting the requirement for prioritising textbook requests over self-improvement books.

Error handling is implemented in the addRequest() method of the MaintainRequests class. If a user attempts to request a book that already exists in the library, the application detects this duplicate request and displays an error message using a pop-up dialog, informing the user that the book request already exists. This prevents redundant requests for the same book and avoids cluttering the system with duplicate entries. Additionally, robust error handling mechanisms are in place to validate user input when submitting a book request. The system checks whether the title field, author field, or edition field are empty, and that the ISBN field contains at least 10 characters, indicating a valid ISBN. If any of these fields are not properly filled, appropriate error messages are displayed using dialogs, guiding the user to correct their input. If all conditions are met, indicating a valid request, the code proceeds to create a new BookRequest entry in the database with the provided details and allows it to be added to the system by management through the “Requests” tab on the management dashboard.

10) Purchasing Items via the App

The system offers discounts to a user trying to purchase a book or DVD. If a book is above $60 and is not rentable, then through a special agreement, a discount of 20% is applied. For DVD’s the condition is the price should be above $6.5 and the DVD is not rentable. To facilitate the payment, the system has its own payment gateway which is used to perform any required payments. Users are provided with four payment types, that are credit card, debit card, mobile wallet and PayPal. Each payment mode has its own validator that helps in validating the payment details.