Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 18

IBM INTERNSHIP

Report
Group - 2

E-book Reading App

Submitted By:

Name Roll No Branch SAP ID Contact


Jaskaran Singh R110218070 CSE-CCVT 500067148 9501953225
Mantavya Jain R164218044 CSE-IOT 500067653 9462723607
Ishan Sharma R110218067 CSE-CCVT 500067206 8360581364

Under the guidance of:

Dr. Prakash GL
Department of Virtualization
School of Computer Science

Bidholi Campus, Energy Acres


Dehradun-248007

Table of Contents
Page |2

S.No Topic Page No.


.

1. 3
Executive Summary

2. Background Aim 4
Technologies 4
Hardware Arch. 4
Software Arch. 5
3. System Requirements 6
Design & Arch. 7
Implementation 8
Testing 10
GUI Layout 14
Evaluation 15
4. Conclusions 16

5. Further Development and Research 17

6. References 18

Executive Summary
Page |3

Title

E-book Reading App

Description/Abstract

This app will allow users to read any book of their choice and of the preferred extensions.
Students mostly are in the constant need of the new textual materials and thus an e-book pdf
reader app will prove to be a frugal choice.

Objectives

1. Displays any pdf.


2. Interface is minimalistic.
3. Good User experience.
4. Compatibility among different devices.

Target Audience

Every Enthusiast who likes to read books online and prefer digital reading over classical
paperback.

Methodology

1. We’ll use flutter framework to create our app


2. Dart will be used as the programming language.
3. Our App will be deployed on AWS or Google Cloud

Risk/Opportunity

Risk: - React Native is considered to be faster and Hybrid considering it works both as web
and mobile App so using Flutter to build an app might be challenging
Opportunity: - Flutter is more responsive for complex interfaces and requirements hence is
far more optimized than any other app platforms.

1. Background
Page |4

Our app will allow users to read any book of their choice and of the preferred extensions.
Students mostly are in the constant need of the new textual materials and thus an e-book pdf
reader app will prove to be a frugal choice. There are tons of e-book reader apps already in
the market but with a bad User interface, therefore we will also focus on a nice and intuitive
interface.

We’ll use flutter framework to create our app. Dart will be used as the programming
language. Our App will be deployed on Git/GitHub or AWS or Google Cloud

1.1 Aim

1. E-book reading app which opens and displays any pdf.


2. The Interface is minimalistic.
3. User experience is not compromised.
4. Minimize any compatibility issues with the screen size and dimensions of different
devices.

1.2 Technologies

We’ll use flutter framework to create our app using dart as the programming language.

1.3 Hardware Architecture

Memory specs:
Windows: 4 GB RAM
Mac: 4 GB RAM

Hard Disk Space specs:

Windows: 2 GB of free hard disk space


Mac: 2 GB of free hard disk space

1.4 Software Architecture


Page |5

OS Requirements: -

Windows: 10, 8, 7 (Windows 10S is not a compatible operating system).


Includes x86 32 and 64bit processors and ARM 64bit processors using x86
emulation.
Mac: macOS 10.12 to 10.15
Linux: Ubuntu, RedHat 8.0

Tools:

Flutter depends on these tools being available in your environment.


Windows PowerShell 5.0 or newer (this is pre-installed with Windows 10)
Git for Windows 2.x, with the Use Git from the Windows Command Prompt
option.

If Git for Windows is already installed, make sure you can run git commands
from the command prompt or PowerShell.

2. System
Page |6

2.1 Requirements

2.1.1 Functional Requirements

 Get the Flutter SDK


 Download the following installation bundle to get the latest stable
release of the Flutter SDK
 Run flutter doctor
 Install Android Studio

2.1.2 User Requirements

 Set up your Android device


 Set up the Android emulator
 Agree to Android Licenses
 Enable desktop support

2.1.3 Environment Variables

 From the Start search bar, enter ‘env’ and select Edit environment
variables for your account.
 Under User variables check if there is an entry called Path:
1. If the entry exists, append the full path to flutter\bin using ; as a
separator from existing values.
2. If the entry doesn’t exist, create a new user variable named Path
with the full path to flutter\bin as its value.

2.2 Design and Architecture


Page |7

The design of the app was developed keeping in mind the Minimalistic UI
without compromising the User experience. Design covered
all the requirements given tried to integrate the different widgets in flutter to
provide optimistic code and efficient GUI.

Low Level Design (Data Flow Diagram)

Level 0

Level 1

2.3 Implementation
Page |8

Open Android Studio and under AVD Manager open the Emulator or you can
also use real time device by using USB debugging under developer’s option

In Visual Studio Code, under main file press ctrl+F5.

Debugging Panel will Open also with our E-Book app in the emulator

Press Start Reading, choose a book or see its details


Page |9

On Pressing Details, chapter and book summary will open.

On Pressing Read our desired book will open in the reading Panel
P a g e | 10

2.4 Testing

2.4.1 Test Plan Objectives

The main objectives of this testing are to test whether the app run-on real-time
devices. Here the real device considered is Redmi 5 A.

Dart Tools is used in this project to test on the parameters like Performance,
logs, network, Stress and Volume.

2.4.2 Data Entry

Add all the assets needed for the project in the assets folder and add them in the
pubspec.yaml file along with all the dependencies.
.

2.4.3 Test Strategy


We will open the app in the debug mode and using Dart tools check all the
following parameters.

2.4.4 System Test

In your Device, Open settings and under Developer’s option Enable


Developer’s Option, USB Debugging and Install via USB
P a g e | 11

2.4.5 Performance Test

For Testing the Performance Run the Code and Open Dart Dev tools. Under
Performance Tab we can see the Performance Analysis of the Project.

2.4.6 Stress and Volume Test


To check the volume consumption and Stress select memory tab. The Pink
triangles shows stress points and points are callbacks.
P a g e | 12

2.4.7 Log/Recovery Test

Under log section we can see each and every function and object call sot that if
an error may occur

2.4.8 Documentation Test


P a g e | 13

2.4.9 Basic Test-


Basic test made sure that the app actually does what is claims to do. Being an
eBook reading app it was our job to make sure that the app can handle some of
the most used resolutions in the phone. It also included making sure that app
runs swiftly in opening the desired extensions.

2.5 Graphical User Interface (GUI) Layout

The user interface has been designed to be as instinctive and easy to use as
Kindle, with the least number of steps for a reader to select a book. Since the
whole book selection will be from mobile or tablet, the interface is kept as
minimalistic as possible.
P a g e | 14

Interface Diagram

2.6 Evaluation

2.6.1 Static Code Analysis


Select widget Inspector from dart tools. This will show all the widgets i.e.
widget tree created from code and we can clearly analyze that what does our
code generates in our app.
P a g e | 15

2.6.2 Wireshark-

3. Conclusions

In this project, the mobile app was developed using the Flutter and Android SDK for reading
E-books. It was like a Kindle Replica. The app was evaluated to have a minimalistic User
P a g e | 16

Interface without compromising user experience. Different components were implemented in


the app. Sample Books were added along with a pdf in assets to test whether the app is
executing properly or not.

The result shows that user satisfaction is higher than the react native app. The speed of the
Flutter app was also satisfactory. Real-time devices were also used to check the compatibility
of the app. It was tested on IOS as well as Android Emulators to prove its cross-platform
eligibility.

4. Further Development or Research

The quality of cross-platform development technologies is constantly improving, and


Flutter is an interesting new alternative. It is a technology that makes it easy for developers to
create native-looking apps that can be executed on both the Android and iOS platforms.
P a g e | 17

Further improvements of the Flutter framework are therefore needed in order for the user
perception of Flutter apps to be equal to that of native Android apps.

A number of common interface components were tested in this study. Some of the
components evaluated were buttons, checkboxes, radio buttons, PDF viewer, and input fields.
This is only a fraction of all the available interface components that can be implemented in
modern apps.

Even though Flutter is a cross-platform framework, this study has focused only on
Flutter apps running on the Android operating system. Future studies should also evaluate
apps made for the iOS operating system. As this is one of the main benefits of developing
apps using Flutter, it would make sense to also gather information of the user perceptions
of Flutter apps running on the iOS operating system and evaluate if it differs from the
perception of native apps on iOS.

Finally, as Flutter apps become more prevalent an analysis of user reviews on the
Google Play and Apple App Store could be performed, as have been done with other
cross-platform apps in previous research. Such a study could focus on user reviews of apps
made using Flutter and use natural language processing to evaluate the user perception of
these apps compared to native apps.

5. References

https://flutter.dev/docs
P a g e | 18

https://pub.dev/documentation/syncfusion_flutter_pdfviewer/latest/in
dex.html

https://www.udemy.com/course/learn-flutter-dart-to-build-ios-
android-apps/

https://www.youtube.com/watch?
v=GLSG_Wh_YWc&list=PL55RiY5tL51qKxC472MY2ayxJTze5Qb
7T

https://github.com/flutter/flutter

You might also like