You are on page 1of 8

Software Project Management | TYBSCIT |Saurabh Jadhav

Chapter 2: System Analysis

Existing System:

Cordova:
Cordova is a platform for building hybrid mobile applications using HTML, CSS and JavaScript.
The official documentation gives us the definition of the Cordova −
"Apache Cordova is an open-source mobile development framework. It allows you to
use standard web technologies such as HTML5, CSS3, and JavaScript for crossplatform
development, avoiding each mobile platform native development language.
Applications execute within wrappers targeted to each platform, and rely on standards-
compliant API bindings to access each device's sensors, data, and network status."

Cordova Features
Let us now understand the features of Cordova in brief.

Command Line Interface (Cordova CLI)


This tool can be used for starting projects, building processes for different platforms, installing
plugins and lot of other useful things that make the development process easier. You will learn how
to use the Command Line Interface in the subsequent chapters.

Cordova Core Components


Cordova offers a set of core components that every mobile application needs. These components
will be used for creating base of the app so we can spend more time to implement our own logic.

Cordova Plugins
Cordova offers API that will be used for implementing native mobile functions to our JavaScript
app.

License
Cordova is licensed under the Apache License, Version 2.0. Apache and the Apache feather logos
are trademarks of The Apache Software Foundation.

Cordova Advantages
We will now discuss the advantages of Cordova.
 Cordova offers one platform for building hybrid mobile apps so we can develop one app that
will be used on different mobile platforms – IOS, Android, Windows Phone, Amazon-fireos,
blackberry, Firefox OS, Ubuntu and tizien.
Software Project Management | TYBSCIT |Saurabh Jadhav

 It is faster to develop hybrid app then native app so Cordova can save on the development
time.
 Since we are using JavaScript when working with Cordova, we don't need to learn platform
specific programming languages.
 There are many community add-ons that can be used with Cordova, these have several
libraries and frameworks, which are optimized for working with it.

Cordova Limitations
Following are the limitations of Cordova.
 Hybrid apps are slower than native ones so it is not optimal to use Cordova for large apps
that require lots of data and functionality.
 Cross browser compatibility can create lots of issues. Most of the time we are building apps
for different platforms so the testing and optimizing can be time consuming since we need to
cover large number of devices and operating systems.
 Some plugins have compatibility issues with different devices and platforms. There are also
some native APIs that are not yet supported by Cordova.

Android

Android Studio is the official Integrated Development Environment (IDE) for Android
app development, based on IntelliJ IDEA. On top of IntelliJ's powerful code editor and
developer tools, Android Studio offers even more features that enhance your productivity when
building Android apps, such as:
• A flexible Gradle-based build system
• A fast and feature-rich emulator
• A unified environment where you can develop for all Android devices
• Instant Run to push changes to your running app without building a new APK
Code templates and GitHub integration to help you build common app features and
import sample code
• Extensive testing tools and frameworks
• Lint tools to catch performance, usability, version compatibility, and other problems
• C++ and NDK support
• Built-in support for Google Cloud Platform, making it easy to integrate Google Cloud
Messaging and App Engine

Each project in Android Studio contains one or more modules with source code files
and resource files. By default, Android Studio displays your project files in the Android project
view, as shown in figure 1. This view is organized by modules to provide quick access to your
project's key source files.
All the build files are visible at the top level under Gradle Scripts and each app module
Software Project Management | TYBSCIT |Saurabh Jadhav

contains the following folders:


• manifests: Contains the AndroidManifest.xml file.
• java: Contains the Java source code files, including JUnit test code.
• res: Contains all non-code resources, such as XML layouts, UI strings, and bitmap
images.

FIREBASE :
Firebase can power your app's backend, including data storage, user authentication,
static hosting, and more. Focus on creating extraordinary user experiences. We will take care
of the rest. Build cross-platform native mobile and web apps with our Android, iOS, and
JavaScript SDKs. You can also connect Firebase to your existing backend using our server side
libraries or our REST API.
Firebase Features:
• Real-time Database − Firebase supports JSON data and all users connected to it
receive live updates after every change.
• Authentication − We can use anonymous, password or different social authentications.
• Hosting − The applications can be deployed over secured connection to Firebase
servers.

Firebase Advantages:
• It is simple and user friendly. No need for complicated configuration.
• The data is real-time, which means that every change will automatically update
connected clients.
• Firebase offers simple control dashboard.
• There are a number of useful services to choose.
Firebase Limitations:
• Firebase free plan is limited to 50 Connections and 100 MB of storage.

JAVA

Java is a general-purpose computer-programming language that is concurrent, class-based,


object-oriented, and specifically designed to have as few implementation dependencies as
possible.

Java offers higher cross- functionality and portability as programs written in one
platform can run across desktops, mobiles, embedded systems.

Java is free, simple, object-oriented, distributed, supports multithreading and offers


multimedia and network support.

Java is a mature language, therefore more stable and predictable. The Java Class
Library enables cross-platform development.

Being highly popular at enterprise, embedded and network level, Java has a large
active user community and support available.

Unlike C and C++, Java programs are compiled independent of platform


in bytecode language which allows the same program to run on any machine that
has a JVM installed.
Software Project Management | TYBSCIT |Saurabh Jadhav

Java has powerful development tools like Eclipse SDK and NetBeans which have
debugging capability and offer integrated development environment.

Relatively seamless forward compatibility from one version to the next.

Requirement Analysis

A meditation app consist of Mediative guide for calming the mind.


Functional Requirements:

- act as a timer
-play guided meditation as music player but online
-upload section for admin
-sending to admin section
-feed for motivation post like instagram
-follow categories
-acess notification panel

Non-functional Requirements:
I.
Security:
The application is secure enough, so as not to compromise any data in the database.
The patient and administrator accounts are duly password protected in order to ensure
security of each account and also to maintain integrity of the information it holds.

The privileges attached to each account are strictly adhered to and are not vulnerable to
any kind of circumvention.
II.

Speed & Performance:


The application which includes sending of messages/reports in the consultancies panel
is fairly quick in execution. The response time is not too slow.
The query and processing time of the said interface are reasonably fast.
Any number of victim are able to place appointment and access their respective account
at a time.
III.

Integrity:
Data Integrity and referential integrity are maintained in the database tables and
interfaces.

IV.

Input-Output fault trapping and bad fault trapping, both are handled immediately.
Software Project Management | TYBSCIT |Saurabh Jadhav

Usability:
Look and feel of the screen elements on the interface, their density, layout, flow,
colours, keyboard shortcuts, are simple and easy to follow and use.

Hardware and Software Requirements:

The software specifications for the system are listed below:

CODING LANGUAGE: Java


DATABASE: Firebase, SQLite
OPERATING SYSTEM: Windows 7 or higher or linux Distro (Eg. Ubuntu)

Hardware Requirements
PROCESSOR : i3 processor based computer minimum
RAM : 4GB or more
HDD : 500GB Hard Disk
PERIPHERAL DEVICES
:
Mouse,keyboard,LAN

Justification of Platform:
How firebase will benefit to project:
1. Real-time Database Helps to Store and Synchronize Data
The cloud-hosted NoSQL database is offered by Firebase real-time database that helps you store
and synchronize data between the clients. This indeed makes it easier for the developers to access
the data using any of the devices and helps developing collaborative feature.
Another advantage of a real-time database for the developers is that they do not need the support of
backend to build apps as it comes with SDKs for various platforms, including Android, iOS and
Web. It assists in the execution of backend code responding to events activated by databases.
Furthermore, it is optimized for offline use too.

2. Firebase has Become Smarter with Google Analytics


Now you can easily track down your user’s journey on a number of devices. It means you would
know whether he is using a smartphone, tablet or laptop. You can also export your mobile app data
to BigQuery with the help of Google Analytics. It can further support in engaging more users once
you match the UX based on user id.
Software Project Management | TYBSCIT |Saurabh Jadhav

3. Firebase Offers Facility of Crash Reporting to Fix Bugs


Quickly
It has often been seen that a lot of apps suffer due to bug issues, which tends to slow down
navigation speed and users opt out of it. The result is that rating of the app also declines.
However, you have to credit Firebase as now it is offering the facility of crash reporting to fix the
bugs at the quicker pace and with ease. The app developers and QA testers can identify the
problems in the stages, whether it is the app version, the device or the OS.
The Firebase SDK provides log crashes that ultimately save much time as you don’t have to find the
cause of the problem. The coding database is available for both native and cross-platform apps.

4. Fast and Secured Web Hosting


The benefit of Firebase Hosting allows you to set-up a single-page, a mobile landing page, web
page or progressive web page with ease. It also helps to deliver the content rapidly anywhere.
The developers can deploy the web apps as well as static content at CDN (Content Delivery
Network). The Firebase hosting also automatically configures the free SSN certificate for custom
domains. You can now deploy a local directory to the web with just a single command.

5. Firebase Authentication
Nowadays, most of the apps have the login facility and the developer aims to simplify and secure it
better. Therefore, the support of Firebase Authentication is there to do that task with an easy sign-in
process.
It also provides identity solution for the emails, passwords and other important apps such as
Facebook, Twitter or Instagram. The Firebase UI is also flexible, customized and drop-in dealing
with the UI flow of the users. There is no compromise from the security point of view.

6. Firebase Allows the Content Storage with Ease


It has become much easier to store the user-dedicated content that includes texts, images and
videos. In fact, you can also develop the final phase of your app from prototype effortlessly using
advanced technology.
The Firebase team has also provided SDK for cloud storage to link-up the mobile for users that
aren’t online. As such they can continue to automatically transfer as soon as connectivity is
established.

7. Developers have the Accessibility of Machine Learning


As we move on to discuss the advantages of Firebase, we also get familiar that it also provides
developers the facility of Machine Learning. This benefit is available for both Android and iOS
developers as well as experienced or newcomers.
Software Project Management | TYBSCIT |Saurabh Jadhav

The ML kit has ready-to-use APIs for various mobile functionalities such as detecting the face,
identifying the text, barcode scanning and labeling images etc. You have a choice between on-
device and Cloud APIs that can be selected according to your needs.

8. Send Notifications and Messages to Targeted Audiences


The Firebase Cloud Messaging offers you an opportunity to send notifications and messages to your
targeted audiences for free across all devices and platforms with the help of battery-efficient
connection. So, if you are interested in sending the push notifications to a specific group of people
based on demography and their behavior.
In addition, you can choose your own particular time for sending the message, which is more
convenient. The developers will be pleased to note that they do not require coding to send the
notifications. You can try the A/B testing for sending notifications to choose the best version that
fits your need.

Android studio benefits for project:


Faster Deployment of Fresh Builds
Bringing incremental changes to an existing app code or resource is now easier and faster. Thanks
to Instant Run. Code changes can be witnessed in the emulator or physical device on real-time
without restarting the app or building a new APK (Android Application Package file) every time.

More Accurate Programming


Featuring an intelligent Code Editor equipped with IntelliJ IDEA interface, Android Studio makes
code writing and analysis faster, easier and more accurate. The most challenging area has become a
cakewalk now.

Faster Programming and Testing


The newly introduced emulator is 3x faster in CPU, RAM, & I/O in comparison to its predecessor.
The virtual testing environment is faster than a real device and has a user-friendly UI. Sensor
controls are effective to read every move of the developers. Developers can drag and drop APKs for
quick installation, resize and rescale the window, use multi-touch actions (pinch & zoom, pan,
rotate, tilt) and much more.

Inclusive App Development


Making multiple builds is a past now. Build for one and test on multiple devices using Cloud Test
Lab Integration. Developers can check the compatibility and performance of an app on a wide range
of physical Android devices from within Android Studio.
Software Project Management | TYBSCIT |Saurabh Jadhav

You might also like