Professional Documents
Culture Documents
CHAPTER 1
INTRODUCTION
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.
CHAPTER 2
LITRATURE REVIEW
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.
No active responses to the circular and demands more time to know it in detail.
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
CHAPTER 3
REQUIREMENT SPECIFICATION
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).
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.
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.
Authentication
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.
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.
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.
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.
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.
System Processor
System RAM
:
:
Monitor
15 COLOR
Hard Disk
40 GB
Motorola G2 ( XT1068 )
Mobile Processor
Mobile RAM
1 GB RAM
Mobile Display
Mobile Dimensions
141.5 x 70.11 x 11 mm
Mobile Camera
Operating system
: Windows 08/07/ XP
: Android XML
Client Side
: Java
: Node.js, sails.js
Database
: MongoDB
IDE Used
10
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.
Low-power sensors
11
SMS provider
Transitions framework
Screen recording
IR Blasters
Security enhancements
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.
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
12
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.
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.
13
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 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.
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
15
Document Database
o
High Performance
High Availability
o
Easy Scalability
o
Advanced Operations
o
16
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
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
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
21
Client side
UI
Node ConnectApp
Request
Server Side
MongoDB Database
Response
22
Settings Module
Login Module
The brief description about all the modules are explained below.
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.
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
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.
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.
Value
Type
Id
ObjectId(5501af3ba36ahvc7853)
ObjectId
Fname
Dinesh
String
Lname
String
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
25
CHAPTER 5
SYSTEM IMPLEMENTATION
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.
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.
26
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.
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
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.
Functional test provide systematic demonstrations that functions tested are available as
specified by the technical requirements, system documentation, and user manuals.
Invalid Input
Functions
Output
29
Test Results: All the test cases mentioned above passed successfully. No defects encountered.
30
CHAPTER 6
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.
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.