Libraro Library App

Libraro was designed to make reading more advanced with features such as offline access to purchased books, uploading and reading PDF documents, and personal notifications for reminding when it’s time to read. The proposed application tries to ensure that users can get easy access to their reading habits with ease by the help of a user-friendly interface, secure authentication, and progress tracking.

The next sections detail the major features that form the requirement specification, wireframe design, database schema structure, use case diagram, class diagram, and detailed test plan representatives-all purposeful and well-thought-through plans and technical element contributions towards the making of Libraro, the Library App.

Project Proposal

Project Proposal: Libraro Library App

Prepared by: Osman Adam
Email: contact.namso@gmail.com
Start Date: 29/09/2024

for the PDF Document Link click here


Introduction

Libraro is a library app that offers many useful features, including:

  • Buying Books: Users can purchase their favorite books.
  • Uploading PDFs: Users can upload PDF documents to read.
  • Offline Reading: Once a book is purchased and downloaded, it can be read offline without internet access.
  • Notifications: Users receive reminders about reading schedules and new book releases.
  • User Authentication: Users can log in to their accounts to find their favorite books and pre-purchases.
  • Reading Progress Tracking: This feature allows users to keep track of their progress in a specific book.

Purpose

The primary purpose of the Libraro Library App is to provide users with a reliable way to read and store their favorite books, track their progress, and receive reminders whenever needed, all in one place.

 

Objectives

  • Allow users to read and buy books.
  • Enable reading of PDF files by uploading them to the app.
  • Save books to a wishlist for future purchases.
  • Provide a platform for reviewing and rating books.
  • Enable notifications for reading reminders.
  • Facilitate progress tracking, allowing users to continue reading where they left off.
  • Ensure data security and privacy.
  • Provide analytics for users to see a report of their interactions with the app, including reading hours.
  • Incorporate accessibility features, such as text scaling and eye-friendly colors.

Target Audience

  • Book Enthusiasts: Individuals who enjoy reading books from any genre.
  • Professionals: Users who wish to read PDF documents with better accessibility features.
  • Students: From primary school to postgraduate level, Libraro serves as a learning app, allowing students to upload and read their books or enjoy the available titles.

Features

  • Search Functionality: Users can search for their favorite books.
  • User Authentication: Allows users to log in to access their pre-bought books.
  • Book Filtering and Sorting: Users can sort books by category, price, or author.
  • Reading Progress Tracking: Users can bookmark their reading progress.
  • Offline Support: Users can read pre-uploaded and purchased books offline.
  • Book Reviews: Users can leave ratings for books they have read or purchased.
  • Notifications: Users receive notifications for new book releases and reading reminders.
  • Wishlist Feature: Users can save books to a wishlist to track future purchases.
  • Analytics: Provides basic analytics reports on user interactions within the app.

Technical Overview

Development Environment

  • Primary IDE: Android Studio
  • Language: Kotlin
  • Layout Language: XML

Architecture

  • Design Structure: Model-View-ViewModel (MVVM)
  • Components: Fragments, Services, Packages, Activities, and XML Layouts

Data Management

  • Room Database: To store all book names, descriptions, and authors.
  • LiveData and ViewModel: For displaying real-time data and managing UI-related data.
  • Repository Patterns.

File Attachments

  • Integration: With Android’s file system.

Security

  • Encryption Utilities: For protecting sensitive user data.
  • Android Keystore System: For secure key storage.

Notifications

  • Firebase Cloud Messaging (FCM): For push notifications.
  • NotificationsCompat: For creating and managing notifications.

Performance Optimizations

  • RecyclerView: With efficient view holders for smooth scrolling and navigation.

Libraro Development Timeline

See attached: Libraro_Timeline.pdf


Expected Outcomes

  1. User Adoption:

    • Achieve 100+ downloads within 6 months of launch.
    • Reach at least 200 active users by the end of the year.
    • Attain an average daily user to monthly active users’ ratio of 20%.
    • Achieve a total of 50 completed books by the end of the first 6 months.
  2. User Satisfaction:

    • Achieve at least a rating of 3.0+ stars on Google Play Store.
  3. Accessibility:

    • Meet the WCAG 2.1 AA standards for accessibility.
    • Provide support for at least 2 languages by the end of the second year.
Requirements Specification

Libraro Requirement Specification

Download the Requirement Specification PDF File: Download

1. Introduction

Purpose of Document

The following document presents the requirement specifications of the Libraro Library App. It serves as a reference for developers during the development process.

Overview of the App

Libraro is an Android Library App designed to engage users in an attractive book-reading experience. Users can:

  • Buy, read, and upload books.

  • View their reading progress and comprehensive reports.

  • Utilize an easy-to-use, intuitive interface, which works offline if books have been downloaded.

The application is tailored for avid readers and casual readers, offering convenience and flexibility.


2. Functional Requirements

User Actions:

  • Buy books using the Libraro Library App.

  • Upload PDFs to be readable as books.

  • Search the library for specific books.

  • Highlight reading progress for currently read books.

  • View basic analytics about user interaction with the application.

  • Rate books based on user experience.

  • Save books to a wishlist for future purchases.

  • Preview books before purchasing.

  • Set reminders for reading sessions.

System Behaviors:

  • Save bought books to the user’s account.

  • Sync user details to their account.

  • Display suggested books on the home page.

  • Provide offline access to all purchased books and uploaded files.

  • Authenticate users before login.

  • Track user progress in reading each book.

  • Send push notifications for user-set reminders.

  • Generate book previews before purchase.


3. Non-Functional Requirements

Performance:

  • Application startup should take less than 3 seconds on average devices.

  • Book search results should display in less than 1 second.

  • Scrolling through search results should be smooth, even on minimum device specifications.

  • The app’s installation size should not exceed 50MB.

Usability:

  • Use appropriate and readable typography.

  • Support multiple themes.

  • Provide a Material Design 3 compliant user interface.

Reliability:

  • Ensure a crash-free rate of at least 99%.

  • Implement automatic crash reporting.

  • Enable automatic backups when users buy new books.

  • Regularly back up reading time data for enhanced analytics.

Security:

  • Provide end-to-end encryption for all users’ sensitive information.

  • Ensure secure payment processing via Stripe.

  • Allow secure login through Google account integration.

  • Offer optional two-factor authentication for login.


4. Technical Requirements

Development Tools:

  • Use Android Studio Koala as the development environment.

  • Develop using Kotlin 1.5 or above.

  • Minimum SDK: API 24 (Android 7.0).

  • Preferred SDK: API 33 (Android 13).

  • Use GitHub for version control.

Libraries:

  • Utilize AndroidX libraries for modern Android development.

  • Use Firebase for data storage.

  • Implement ViewModel and LiveData to handle UI-related data.

  • Use Retrofit for network operations.

  • Leverage Firebase for storing book covers and book information.

Testing Requirements:

  • Perform unit testing for the app’s core logic.

  • Conduct UI testing with Espresso.

  • Utilize Android Profiler for performance testing.


5. Constraints

Platform Limitations:

  • The application must be an Android application.

  • Support for Android 7.0 (API 24) and above.

  • Maximum upload size for a book: 20MB.

  • Offline storage is limited by the device’s available space.

Network Constraints:

  • An internet connection is required for login, book purchases, searching for books, and sync operations.

Development Constraints:

  • The application must comply with Google Play Store policies.

  • Third-party libraries used must be widely adopted and well-maintained.

Database Schema Structure

Use Case Diagram Structure

Class Diagram Structure

Domain Model Structure Diagram

Test Plan Structure

Libraro Test Plan v1.0

Test Plan Identifier

Test Plan: Libraro v1.0 Date: 17/09/2024

Introduction

This Test Plan outlines the objectives, scope, types of testing involved, deliverables, and timelines for performing the testing tasks of the Libraro application. Libraro is designed to offer features like browsing books, reading PDFs, integration with Google authentication, and processing payments for book purchases to its users. 

 Scope

The following items are included as part of this testing scope: 

Functional Features: 

  • Sign-in through Google Authentication integration 
  • Browse books, search a book, filters 
  • Book purchasing and payment (Stripe integration) 
  • PDF view and Reading progress 
  • Profile and Statistics 
  • Notices, Wish list, favorites management 
  • Integration with database; offline support 

Non-Functional Features: 

  • How responsive the App is and fast in performance 
  • Security covering user data safety and payment processing 

 Objective of Testing

All functionalities operate correctly. Smooth and intuitive understanding by users. Performance under normal and extreme conditions Compatibility across varying Android devices and OSes Security regarding user data and protection of payment information 

  1. Test Items

Core Functionality 

  • User sign-up, login & core authentication 
  • Books browse & search 
  • Purchasing, payment integration – Stripe 
  • Reader Read and tracking of reader’s progress 
  • User Profile Management; favourites, Wishlist, statistics 
  • Notifications and offline caching. 

Non-Functional Testing: 

  • Application responsiveness and performance 
  • Security testing for user’s data and payment handling 

 Approach

Testing Types: 

  • Unit Testing: Every different component, adapter, ViewModel and database method has to be tested. 
  • Integration Testing: Different components have to work properly – for example, Firebase Authentication and Firestore. 
  • System Testing: The whole application has to be tested for all kinds of requirements. 
  • UI/UX Testing: Design should be consistent, and accessibility of the design should be tested. 
  • Performance Testing: Loading time, responsiveness, stressful situations – like launching the application. 
  • Security Testing: Encryption of data, storing securely and payment handling. 
  • Regression Testing: New functionalities should not break the old ones. 

Tools: 

  • Unit Testing: JUnit and Mockito 
  • UI Testing: Espresso, Firebase Test Lab 
  • Performance Testing: Android Profiler and Firebase Performance Monitoring 
  • Manual Testing: Simulated Scenarios, Exploratory Testing 

 

7. Test Cases

Authentication
Book Browsing

Purchasing

Reading

Performance


8. Suspension Criteria

Testing will be stopped if:

  • Critical bugs have been detected.
  • The test environment for some reason becomes unavailable.

9. Deliverables

  • Test cases and results.
  • Final test summary document.

10. Roles and Responsibilities

  • Developer: Prepares the build, finds, & fixes the bugs.
  • Tester: Executes the test plan.
  • Project Manager: Monitors progress and ensures timelines are followed correctly.

11. Schedule

PhaseStart DateEnd Date
Test Case PreparationDecember 1, 2024December 7, 2024
Test ExecutionDecember 8, 2024December 14, 2024
Bug FixingDecember 15, 2024December 21, 2024
Regression TestingDecember 22, 2024December 28, 2024

12. Risks

  • Inconsistent behavior across Android versions.
  • Delays due to external dependencies.

13. Exit Criteria

Testing will conclude when:

  • All critical and major bugs are resolved.
  • All test cases pass, or acceptable risks are documented.
Bibliography
  1. https://www.youtube.com/watch?v=idbxxkF1l6k&ab_channel=CodingSTUFF
  2. https://developer.android.com/guide/navigation/use-graph/animate-transitions
  3. https://github.com/sachintha00/Android-Login-UI/blob/main/app/src/main/res/layout/activity_main.xml
  4. https://www.figma.com/community/file/1261742596651461425
  5. https://mir-s3-cdn-cf.behance.net/project_modules/max_1200/5cdbdf156680567.636b735cba874.jpg
  6. https://www.youtube.com/watch?v=WqIFBuWNY6o&ab_channel=Foxandroid
  7. https://firebase.google.com/docs/auth/android/start
  8. https://developer.android.com/guide/fragments
  9. https://developer.android.com/guide/navigation
  10. https://developer.android.com/topic/libraries/view-binding
  11. https://firebase.google.com/docs/auth
  12. https://firebase.google.com/docs/auth/android/start
  13. https://firebase.google.com/docs/auth/android/password-auth
  14. https://developer.android.com/courses/android-basics-kotlin/course
  15. https://developer.android.com/codelabs/android-navigation
  16. https://medium.com/firebase-developers/firebase-auth-on-android-9aeb4f968f84
  17. https://www.youtube.com/watch?v=-OkQUpwbLW4
  18. https://firebase.google.com/codelabs/firebase-android
  19. https://developer.android.com/guide/fragments/appbar
  20. https://www.youtube.com/watch?v=ahNruIZX130&ab_channel=AndroidKnowledge
  21. https://www.youtube.com/watch?v=zOsWCAsG2Xo&ab_channel=AndroidKnowledge
  22. https://www.youtube.com/watch?v=RiHGwJ_u27k&ab_channel=SmallAcademy
  23. https://stackoverflow.com/questions/9294603/how-do-i-get-the-currently-displayed-fragment
  24. https://www.youtube.com/watch?v=M3UDh9mwBd8
  25.  

One thought on “Libraro Library App

Leave a Reply

Your email address will not be published. Required fields are marked *