You are on page 1of 30

1

CHAPTER 1

INTRODUCTION

Android platform and use of it in the Smartphones is the growing


technology in the modern world. Communication plays an important role in
connecting people from different parts of the world. This has given way for new
service providers to provide call and data service to the users. Cost of using the
services has been increased in recent days. Mobile data service anticipated to
enjoy a bright future. Android platform gives user a user friendly UI and a vast
way to use a wide variety of different protocols. This makes the device a powerful
tool among the people.

Node.js is an open source, cross-platform runtime environment for serverside networking applications. Node.js applications are written in JavaScript and
can be run within the Node.js runtime on OS X, Microsoft Windows, Linux,
FreeBSD and IBM.Node.js provides an event-driven architecture and a nonblocking I/O API that optimizes an application's throughput and scalability. These
technologies are commonly used for real-time web applications.

Node.js uses the Google V8 JavaScript engine to execute code, and a large
percentage of the basic modules are written in JavaScript. Node.js contains a builtin library to allow applications to act as a Web server without software such
as Apache HTTP Server or IIS.

Use of Wi-Fi technology in the Smartphone helps people in sharing content


at high speed rate without any charges to a long distance. Using the Node.js server
coding and the android platform the communication can be made better in the
institution between staff and students.

CHAPTER 2

LITRATURE REVIEW

2.1 EXISTING SYSTEM

Client uses manual records in the college to give circular to staffs and students in the
college. Each circular are to be verified by higher officials and distributed every day. If any of
the officials denies the request, it has to be corrected and the previous procedure has to be
followed. If anyone of those officials are not present at the time, the procedures are paused till
their arrival. Till date client uses computerised (email) and mobilized mechanisms to maintain
official records.

Client performs all the paper work manually regarding the circular preparation,
correction. The important job of the client is to make sure that the circular reaches every staff
and students on time. The circulars has to be got signed to make sure that the information in
the circular has reached everyone in the college.

DISADVANTAGES OF EXISTING SYSTEM

Every circular should be maintained in hard copies.


Existing system is not user interactive .
Back up of circular is only in the form of hardcopy in the existing system.

Fails to reach everyone in the college.

No active responses to the circular and demands more time to know it in detail.

2.2 PROPOSED SYSTEM

The proposed system utilizes an Android based client in the front end and Node.js
server running sails.js as web services accessing MongoDB database in the back end without
the need of a service provider. The system facilitates multiple user login for both staff and the
students. All the login details are stored in the database. The data that are sent are stored in the
centralized database whose data will be frequently backed up by scripts in the from of word
files for easy restore in case of disaster. The advantage of this system is that it is very user
friendly and it is compatible with Android 2.2(Froyo) till Android 5.0(Lollipop) and it
provides a modern User Interface for easy navigation between various screens. Separation of
User login enables the administrator to monitor the activities of individual user.

Also there is a provision for the administrator to delete unauthorized account from the
database via Robomongo which gives a graphical view to the database. Instant clearing of
doubts in the subject can be cleared by questioning to the respective staff. It has a prioritized
way of sending messages to the staff and students. The account of the member is automatically
gets logged out when the application is closed. The member login details are secured by the
bcrypt encryption used in the server scripting.

ADVANTAGES

Service provider is not needed.


User Friendliness.
Data is easily accessible on the go via an Android Mobile.

Backup and recovery of crucial data is possible.

Login management and Individual activity can be tracked.

Low investment and easy maintenance of application.

CHAPTER 3

REQUIREMENT SPECIFICATION

3.1 FUNCTIONAL REQUIREMENTS

A functional requirement defines a function of a software system or its component. A


function is described as a set of inputs, the behavior, and outputs. Functional requirements
may be calculations, technical details, data manipulation processing and other specific
functionality that define what a system is supposed to accomplish.Functional requirements are
as follows:
1. A Signup Screen should be present for registration purpose, the Email Id and password
should be used as the signup details.
2. A Login Screen should be used for Authentication purpose, the Email Id and password
are validated using the data from the MongoDB.
3. The user can choose either chat or group chat for communication along Wi-Fi.

3.2 NON FUNCTIONAL REQUIREMENTS

Non Functional Requirements describe user-visible aspects of the system that are not
directly related with the functional behavior of the system. Non-Functional requirements
include quantitative constraints, such as response time (i.e. how fast the system reacts to user
commands.) or accuracy (i.e. how precise are the systems numerical answers).

3.2.1 Performance Requirements

Recommended Android 2.3 (Ginger Bread) and above for better rendering of features like WiFi support. A minimum RAM of 512 MB and 1GHz processor.

3.2.2 Operational Requirements

This application follows two tier architecture. The communication between client and
server is through Sails. The RoboMongo is used as user interface for MongoDB. The client
sends the message to the server, the server forwards the message to the appropriate client.

3.2.3 Security Requirements

Authentication

Since work flow involves approvals and decision-making in an institution, it is very


important to authenticate the users in the workflow. Only those individuals who are designated
to perform tasks must be allowed to participate at any step of the workflow process.
Authentication is performed through Email Id and password in the database.

Confidentiality

The privacy of information entered by users must be respected. The information should
not be accessible to unauthorized users. Confidentiality is provided through bcrypt encryption.

Integrity

The information should not be manipulated or changed in anyway, so that its integrity
is maintained.

Non-Repudiation

Since workflow involves crucial activities, users should not be able to disown their
action.

Access rights

The users would be able to access and work on the information. As per the defined
rights user can communicate with each other.

3.3 FEASIBILITY STUDY

The feasibility of the project is analyzed in this phase and proposal is put forth with a
very general plan for the project and some cost estimates. During system analysis the
feasibility study of the proposed system is to be carried out. This is to ensure that the proposed
system is not a burden to the institution. For feasibility analysis, some understanding of the
major requirements for the system is essential.

Three key considerations involved in the feasibility analysis are


ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY

3.3.1 ECONOMICAL FEASIBILITY

This study is carried out to check the economic impact that the system will have on the
organization. Earlier system constitutes more human work and paper work. The expenditures
must be justified. Thus the developed system as well within the budget and this is achieved
because most of the technologies used are freely available.

3.3.2 TECHNICAL FEASIBILITY

This study is carried out to check the technical feasibility, (i.e.) the technical
requirements of the system. Any system developed must not have a high demand on the
available technical resources. This will lead to high demands on the available technical
resources. This will lead to high demands being placed on the client. The developed system
must have a modest requirement, as only minimal or no changes are required for
implementing this system.

3.3.3 SOCIAL FEASIBILITY

The aspect of study is to check the level of acceptance of the system by the user. This
includes the process of training the user to use the system efficiently. The user must not feel
threatened by the system, instead must accept it as a necessity. The level of acceptance by the
users solely depends on the methods that are employed to educate the user about the system
and to make them familiar with it.

3.4 HARDWARE REQUIREMENTS

System Processor
System RAM

:
:

Intel Core 2 Duo.


2 GB DD RAM

Monitor

15 COLOR

Hard Disk

40 GB

Mobile Model Number

Motorola G2 ( XT1068 )

Mobile Operating System

Android OS, v5.0.2 (Lollipop)

Mobile Processor

Quad-core 1.2 GHz

Mobile RAM

1 GB RAM

Mobile Display

480 x 1280 pixels, 5.0 inches

Mobile Dimensions

141.5 x 70.11 x 11 mm

Mobile Internal Memory

16 GB (12.9 GB user available)

Mobile Camera

8MP Primary, LED flash


2MP Secondary

3.5 SOFTWARE REQUIREMENTS

Operating system

: Windows 08/07/ XP

Front End Design

: Android XML

Client Side

: Java

Server Side Scripting

: Node.js, sails.js

Database

: MongoDB

IDE Used

: Eclipse Kepler with ADT plug-in

10

3.6 SOFTWARE DESCRIPTIONS

3.6.1 Front End/ Client Side

Client-side refers to operations that are performed by the client in a clientserver


relationship in a computer network. Typically, a client is a computer application, such as a
web browser or a mobile phone that runs on a user's local computer or workstation and
connects to a server as necessary. In our case the client side is an Android based mobile
phones running Android 2.2 (Froyo) till Android 4.4 (Lollipop)

3.6.1.1 Android 5.0 (Lollipop) SDK

Android Lollipop brings all of Android's most innovative, most beautiful, and most
useful features to more devices everywhere. Android 5.0 is designed to run fast, smooth, and
responsively on a much broader range of devices than ever before including on millions of
entry-level devices around the world that have as little as 512MBRAM. Android 5.0 brings
Material design to android and gives an expanded UI toolkit for integrating the new design
pattern easily in the application. Lollipop streamlines every major component to reduce
memory use and introduces new APIs and tools to help you create innovative, responsive,
memory-efficient applications.

3.6.1.2 Features of Lollipop SDK

The features of lollipop SDK are:

Host Card Emulation


Printing framework

Storage access framework

Low-power sensors

11

SMS provider

Full-screen Immersive mode

Transitions framework

Chromium Web View

Screen recording

Render Script NDK

Bluetooth HOGP and MAP

IR Blasters

Closed captioning settings

Security enhancements

Tools for analysing memory use

3.6.1.3 Developing in Eclipse with ADT

The Android Development Tools (ADT) plug-in for Eclipse adds potent extensions to
the Eclipse integrated development environment (IDE). It allows the developer to create and
debug Android applications easier and faster. The Eclipse ADT plug-in gives some additional
capabilities to help in developing Android applications.

3.6.1.4 Android Development Tools

The Android SDK is a set of development tools used to develop applications for Android
platform. The Android SDK includes the following:

Required libraries

Debugger

An emulator

Relevant documentation for the Android application program interfaces (APIs)

12

Sample source code

Tutorials for the Android OS

Although the SDK can be used to write Android programs in the command prompt, the
most common method is by using an IDE. The recommended IDE is Eclipse with the ADT
plug-in.

The Android SDK consists of several tools and utilities to assist users create, test and
debug their projects. The ADT plug-in easily integrates most of these tools into the Eclipse
IDE, where one can access them from the DDMS perspective. These include the following:

The Android SDK and Virtual Device Manager: Used to create and manage Android
Virtual Devices (AVD) and SDK packages.

The Android Emulator: An implementation of the Android virtual machine designed to


run within a virtual device on your development computer. One can use the emulator to
test and debug the Android applications.

Dalvik Debug Monitoring Service (DDMS): Can use the DDMS perspective to
monitor and control the Dalvik virtual machines on which one is debugging their
application.

Android Asset Packaging Tool (AAPT): Constructs the Android package file which is
recognized by the .apk string of characters attached to the package name.

Android Debug Bridge (ADB): A client-server application that gives a link to a


running emulator. It lets the developer copy files, install compiled application packages
and run shell commands.

13

3.6.2 Back End/ Server Side

Server-side refers to the operations that are performed by the server in a clientserver
relationship in computer networking. Typically, a server is a computer program, such as a web
server, that runs on a remote server, reachable from a user's local computer or workstation.
Operations may be performed server-side because they require access to information or
functionality that is not available on the client, or require typical behavior that is unreliable
when it is done client-side. Server-side operations also include processing and storage of data
from a client to a server, which can be viewed by a group of clients. Examples of server-side
processing include the creation and adaptation of a database using MongoDB.

3.6.2.1 Node.js

Node.js is an open source, cross-platformruntime environment for server-side and


networking applications. Node.js applications are written in JavaScript, and can be run within
the Node.js runtime on OS X, Microsoft Windows, Linux, FreeBSD and IBM.

Node.js provides an event-driven architecture and a non-blocking I/O API that


optimizes an application's throughput and scalability. These technologies are commonly used
for real-time web applications. Node.js uses the Google V8 JavaScript engine to execute code,
and a large percentage of the basic modules are written in JavaScript. Node.js contains a builtin library to allow applications to act as a Web server without software such as Apache HTTP
Server or IIS. Node.js is gaining adoption as a server-side platform and is used by Microsoft.
Features include:

Node.js operates on a single thread, using non-blocking I/O calls, allowing it to support
tens of thousands of concurrent connections, without worrying about the cost of
context-switching between threads.

14

The design of sharing a single thread between all the requests means it can be used to
build highly concurrent applications.

The design goal of a Node.js application is that any function performing I/O must use a
callback.

V8 is the JavaScript execution engine built for Google Chrome, open-sourced by


Google in 200.Written in C++, V8 compiles JavaScript source code just-in-time to
machine code instead of interpreting it in real time.

Npm package is used in node.jsnpm is a package manager for JavaScript, and is the
default for Node.js. As of Node.js version 0.6.3, npm is bundled and installed automatically
with the environment.Npm runs through the command line and manages dependencies for an
application. It also allows users to install Node.js applications that are available on the npm
registry. Npm is written entirely in JavaScript and was developed by Isaac Z. Schlueter as a
result of the frustrations he had experienced while working with CommonJS, and with
inspiration from similar projects for PHP (PEAR) and Perl (CPAN).

3.6.2.2 MongoDB

MongoDB is one of many cross-platform document-oriented database. MongoDB is


the traditional table-based relational database structure in favor of JSON-like documents with
dynamic schemas (MongoDB calls the format BSON), making the integration of data in
certain types of applications easier and faster. Released under a combination of the GNU
Affero General Public License and the Apache License, MongoDB is free and open-source
software.MongoDB is a document database that provides high performance, high availability,
and easy scalability.

15

Document Database
o

Documents (objects) map nicely to programming language data types.

Embedded documents and arrays reduce need for joins.

Dynamic schema makes polymorphism easier.

High Performance

Embedding makes read and write fast.

Indexes can include keys from embedded documents and arrays.

Optional streaming writes (no acknowledgments).

High Availability
o

Replicated servers with automatic master failover.

Easy Scalability
o

Automatic sharding distributes collection data across machines.

Eventually-consistent reads can be distributed over replicated servers.

Advanced Operations
o

With MongoDB Management Service (MMS)MongoDB supports a complete


backup solution and full deployment monitoring.

16

3.6.2.3 MongoDB Data Model

A MongoDB deployment hosts a number of databases. A database holds a set of


collections. A collection holds a set of documents. A document is a set of key-value pairs.
Documents have dynamic schema. Dynamic schema means that documents in the same
collection do not need to have the same set of fields or structure, and common fields in a
collections documents may hold different types of data.

3.6.2.4 Sails.js Framework

Sails makes it easy to build custom, enterprise-grade Node.js apps. It is designed to


emulate the familiar MVC pattern of frameworks like Ruby on Rails, but with support for the
requirements of modern apps: data-driven APIs with a scalable, service-oriented architecture.
It's especially good for building chat, real time dashboards, or multiplayer games; but the user
can use it for any web application project - top to bottom.
Features of sails.js are:

100% JavaScript - Building on top of Sails means your app is written entirely in
JavaScript, the language you and your team are already using in the browser.

Any database- Sails bundles a powerful ORM, Waterline, which provides a simple data
access layer that just works, no matter what database you're using.

Auto-generate REST APIs - Sails comes with blueprints that help jumpstart your app's
backend without writing any code.

Easy Web Socket Support - Sails translates incoming socket messages for you, they're
automatically compatible with every route in your Sails app.

Reusable security policies - Sails provides basic security and role-based access control
by default.

17

Front-end agnostic - Sails is designed to be compatible with any front-end strategy;


whether it's Angular, Backbone, iOS/ObjC, Android/Java, Windows Phone, or
something else entirely.

Flexible asset pipeline - Sails ships with Grunt- which means your entire front-end
asset workflow is completely customizable, and supports all of the great Grunt
modules which are already out there.

Rock-solid foundation - Sails is built on Node.js, uses Express for handling HTTP
requests, and wraps socket.io for managing Web Sockets.

18

CHAPTER 4

PROPOSED SYSTEM

4.1 OVERVIEW

The primary motto of the project is to create a mobile application to send circular in
the college. The main process that are usually involved in a application
1. Setting up Wi-Fi connection
2. Updating IP address
3. Collecting user information in sign-up

All the process mentioned above are used to setup the chatting environment before
starting of the process to the user. To overcome all these drawbacks we have proposed a
mobile based system to manage the entire process just from the users mobile. Mobility is the
recent trend of I.T industry, the same application can be made more effectively from as a
Desktop application but the advantages of using a mobile app over a desktop application is
that the data can be read, updated, deleted on the go from the mobile through intranet
connectivity in the campus. Moreover connecting to intranet via Wi-Fi makes the
communication cheap in the cost without the need for a service provider.In our system,
collection of user details is to track the user activities and to report about the user if any false
information is passed.

19

4.2 SYSTEM DESIGN

In this project work, an Android application has been designed for user to work with
UI. This application makes user to get connected to the Node.js server in the backend The
flow chart of the application is shown in Figure. 4.1.

The application first opens with the menu page which consists of three buttons to help
the user in getting connected to the server. The settings button directs to the settings activity
containing

Wi-Fi setting, server address and the brightness option init. Help button gives

instructions about how to setup application to get connected to the server. Get connected
button in the menu page directs to the login page for the users account where user can login by
the user name and the password.

In case if the user is new to the application he can create an account by signing up.
Application collects user first and last name, email address, phone number and password. The
details are validated and send to the server to be updated in the database. Users password is
encrypted and stored in the database. Admin can access the database via Robomongo
application and can perform CURD (Create Read Update Delete) on the users account.

20

Figure 4.1 Flow Chart of the Application

21

Client side

UI

Node ConnectApp

Request

Server Side

Node.js web service

MongoDB Database

Figure 4.2 Architectural Diagram

Response

22

4.3 MODULES DESCRIPTION

The list of modules in the project are as follows

Settings Module

Login Module

Private chat Module

Group chat Module

The brief description about all the modules are explained below.

4.3.1 Settings Module

This lists the button for the Wi-Fi connection, EditTextbox for server address, action
bar for adjusting the brightness. When OK button is clicked the server address and the other
settings are saved to the application. After customizing the settings the user can go back to the
menu page to get connected to the server.

4.3.2 Login Module

The user must log in using the authentication credentials. Login module has a
centralized database with integration to multiple components for processing user information.
The login web service returns if the user is a student/ staff/ HOD/ principal. The next screen is
displayed as per the response.

23

4.3.3 Private chat Module

In this module the user can decide the participant to be chatted. The participants list are
provided based on priority type given during the sign-up of the user account. This module is
used to clarify doubt in subjects between staff and the students.

4.3.4 Group chat Module

This module lists the group to the user according to the priority type given during the
sign-up of the user account. This chat stores the chatted messages (Circulars) in the database,
so it can be viewed in the future purpose. Each group consists of participants of similar
priority type. Higher priority group is not shown to the lower priority user. Lower priority
groups are visible to the higher priority user.

4.4 DATABASE SCHEMA DESIGN( user detail )


Key

Value

Type

Id

ObjectId(5501af3ba36ahvc7853)

ObjectId

Fname

Dinesh

String

Lname

String

Email

dinesh@gmail.com

String

Password

$2a$10$VaTQ4SHEc9D.xagFDSnch6BOY

String

Phnum

9942074746

String

In_type

Student

String

createdAt

2015-03-12 15:22:35.618Z

Date

updatedAt

2015-03-12 15:22:35.618Z

Date

24

Table 4.4.1 Login table

25

CHAPTER 5

SYSTEM IMPLEMENTATION

5.1 INPUT DESIGN

Input design is one of the most expensive phases of the operation of mobile system and
is often the major problem of a system. A large number of problems with a system can usually
be traced back to fault input design and method needless to say, therefore that the input data is
the life block of system and has to be analysed with the most consideration.

The decisions made during the input design are:

To provide the cost effective method of input.

To achieve the highest possible level of accuracy.

To ensure that input is understood by the user.

System analyst decide the following input design like ,what data item to input , what
medium to use,how the data should be arranged or coded data items and communication needs
validation to detect errors and at last the help activity to guide users in providing input.

Input design is the process of converting user-originated inputs to a computer based


format. Input data are collected and organized into a group of data which are similar .The goal
of designing input data is to make communication more easy and makes error free as far as
possible. The proposed system used Android based Fragments for better UI design with latest
features.

26

5.2 OUTPUT DESIGN

Output design generally refers to the data reliability of the communication through WiFi, the authorized user can only be communicated, timely deliver is required and the
authentication is provided for each users. For many end-users, Output is the main reason for
developing the system and on which they evaluate the usefulness of application.

The objective of a system finds its shape in term of the output. The analysis of the
objective of a system leads to determination of output. Output of a system can take various
forms. The most common are reports, screen displays, printed form, graphical drawing etc. the
output also vary in terms of their contents,frequency, timing and format.

The user of the output, its purpose and sequence of details to be printed is all
considered. The output from a system is the justification for its existence. If the output is
inadequate in any way, the system itself is inadequate. The output should be accurate, timely
and appropriate in terms of content, medium and layout for its intended purpose.

When designing output, the system analyst must accomplish things like, to determine
what information to be present, to decide whether to display or print the information and select
the output medium to distribute the output to intended recipients. External outputs are those,
whose destinations will be the organization and which require special attention. The GUI
oriented output is generated in this project.

27

5.3 TESTING

The purpose of testing is to discover errors. Testing is the process of trying to discover
every conceivable fault or weakness in a work product. It provides a way to check the
functionality of components, sub-assemblies, assemblies and/or a finished product. It is the
process of exercising software with the intent of ensuring that the Software system meets its
requirements, user expectations and does not fail in an unacceptable manner. There are various
types of test. Each test type addresses a specific testing requirement.

5.3.1 UNIT TESTING


Unit testing involves the design of test cases that validate the internal program logic is
functioning properly, and that program inputs produce valid outputs. All decision branches
and internal code flow should be validated. It is the testing of individual software units of the
application . It is done after the completion of an individual unit before integration. Unit tests
perform basic tests at component level and test a specific business process, application, and/or
system configuration. Unit tests ensure that each unique path of a business process performs
accurately to the documented specifications and contains clearly defined inputs and expected
results.

Tests were conducted separately for back end of Node.js and front end Android client.
Different test cases were prepared by the testing team for various classes and functions and a
detailed bug report was sent and the bugs were cleared.

28

5.3.2 INTEGRATION TESTING


Integration tests are designed to test integrated software components to determine if
they actually run as one program. Testing is event driven and is more concerned with the
basic outcome of screens or fields. Integration tests demonstrate that although the components
were individually satisfied, as shown by successfully unit testing, the combination of
components is correct and consistent. Integration testing is specifically aimed at exposing the
problems that arise from the combination of components.

The integration testing was performed after linking both the server side node.js and the
Android client. The interfaces were tested and a detailed bug report was collected and
rectified.

5.3.3 FUNCTIONAL TESTING

Functional test provide systematic demonstrations that functions tested are available as
specified by the technical requirements, system documentation, and user manuals.

Functional testing is centered on the following items:


Valid Input

: identified classes of valid input must be accepted.

Invalid Input

: identified classes of invalid input must be rejected.

Functions

: identified functions must be exercised.

Output

: identified classes of application outputs must be exercised.

Systems/Procedures: interfacing systems or procedures must be invoked.

29

Organization and preparation of functional tests is focused on requirements, key


functions, or special test cases. In addition, systematic coverage pertaining to identify data
fields, predefined processes and successive processes must be considered for testing. Before
functional testing is complete, additional tests are identified and the effective value of current
tests is determined.

5.3.4 ACCEPTANCE TESTING


User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional requirements.
The users were satisfied with the mobile application and has accepted it.

Test Results: All the test cases mentioned above passed successfully. No defects encountered.

30

CHAPTER 6

CONCLUSION AND FUTURE WORK

6.1 CONCLUSION

It is concluded that the application works well and satisfies the client needs. The
application is tested very well and errors are properly debugged. The mobile application can
be simultaneously accessed from more than one system. Simultaneous login from more than
one place. The mobile application works in various devices ranging from Froyo (Android 2.2)
to Lollipop (Android 5.1). Further enhancements can be made to the application, so that the
application functionalities are more attractive and useful than the present one.

6.2 FUTURE ENHANCEMENTS

Every application has its own merits and demerits. The project has covered almost all
the requirements. Future requirements and improvements can be evaluated and implemented.
In future, Developer can convert this application into a product and release the same for
iPhone, Windows phone and Blackberry platforms. Images, posters and call can be send
through Wi-Fi.

You might also like