Professional Documents
Culture Documents
BACHELORS OF TECHNOLOGY
IN
INFORMATION TECHNOLOGY
[i]
ACKNOWLEDGEMENT
The internship opportunity I had with [Name of the Company] was a great chance for
learning and professional development. Therefore, I consider myself as a very lucky
individual as I was provided with an opportunity to be a part of it. I am also grateful for
having a chance to meet so many wonderful people and professionals who led me though this
internship period.
Bearing in mind previous I am using this opportunity to express my deepest gratitude and
special thanks to Dr Mamta Khaneja who in spite of being extraordinarily busy with her
duties, took time out to hear, guide and keep me on the correct path and allowing me to carry
out my project at their esteemed organization and extending during the training.
I would like to express my gratitude towards the members of Solid State Physics Laboratory
for their kind cooperation and encouragement which helped me in the completion of the
project.
I would like to thank my HOD Mr. ML Sharma for his guidance and support. I express my
sincere thanks and gratitude to my project guide Mr. Sanjeev Bhat, Manager, Information
Services, Hindustan Petroleum Corp. Ltd. for providing me the opportunity to pursue my
training at the office.
Finally, I would like to express my deep appreciation to my family and friends who have
been a constant source of inspiration. I am extremely grateful to them for always encouraging
me wherever and whenever I needed them.
Kartik Wadehra
Enrolment No: 02996403114
Information Technology Engineering
7 IT 3
[ ii ]
Maharaja Agrasen Institute of Technology
Piyush Kakkar
Enrolment No: 02996403114
Information Technology Engineering
7 IT 3
[ iii ]
ABSTRACT
[ iv ]
Hindustan Petroleum Corporation Limited
[v]
[ vi ]
TABLE OF CONTENTS
[ vii ]
[ viii ]
INTRODUCTION
1. Introduction
Communication over a network is one field where this tool finds wide
ranging application. Chat application establishes a connection
between 2 or more systems connected over an intra-net or ad-hoc.
This tool can be used for large scale communication and conferencing
in an organization or campus of vast size, thus increasing the standard
of co-operation. In addition, it converts the complex concept of
sockets to a user-friendly environment. This application also provides
facility to share files. This application can have further potentials,
such as voice chatting and call facility options that can be worked
upon later.
[1]
3. Sockets Overview
4. Design Approach
The application has been designed using AngularJS and Bootstrap for
frontend and Express framework of NodeJS and MySQL for backend.
This application uses Socket.IO which enables real-time bidirectional
event-based communication. Socket.IO is built on top of the Web
Sockets API (Client side) and Node.js. It is one of the most depended-
upon library on npm.
[2]
SYSTEM REQUIREMENTS
1. For Development
NodeJS and NPM
MySQL
WebStorm
Any one of internet browser of or above following versions with
enabled JavaScript:
Internet Explorer 5.5+
Safari 3+
Google Chrome 4+
Firefox 3+
Opera 10.61+
[3]
LANGUAGES AND FRAMEWORKS USED
AngularJS
[4]
encountered in developing single-page applications. The JavaScript
components complement Apache Cordova, the framework used for
developing cross-platform mobile apps. It aims to simplify both the
development and the testing of such applications by providing a
framework for client-side model–view–controller (MVC) and model–
view–view-model (MVVM) architectures, along with components
commonly used in rich Internet applications
The AngularJS framework works by first reading the HTML page,
which has embedded into it additional custom tag attributes. Angular
interprets those attributes as directives to bind input or output parts of
the page to a model that is represented by
standard JavaScript variables. The values of those JavaScript
variables can be manually set within the code, or retrieved from static
or dynamic JSON resources.
AngularJS is the frontend part of the MEAN stack, consisting
of MongoDB database, Express.js web application server framework
Angular.js itself, and Node.js server runtime environment.
[5]
Bootstrap
[6]
JQuery
[7]
Socket.IO
[8]
Node.js
Node.js is an open-source, cross-platform JavaScript runtime
environment for developing a diverse variety of tools and
applications. Although Node.js is not a JavaScript framework, many
of its basic modules are written in JavaScript, and developers can
write new modules in JavaScript. The runtime environment interprets
JavaScript using Google's V8JavaScript engine.
Node.js has an event-driven architecture capable of asynchronous I/O.
These design choices aim to optimize throughput
and scalability in Web applications with many input/output
operations, as well as for real-time Web applications (e.g., real-time
communication programs and browser games).
The Node.js distributed development project, governed by the Node.js
Foundation, is facilitated by the Linux Foundation's Collaborative
Projects program. Corporate users of Node.js software
include GoDaddy, Groupon, IBM, LinkedIn, Microsoft, Netflix,
PayPal, Rakuten, SAP, Voxer, Walmart, Yahoo!, and Cisco Systems.
[9]
MySQL
MySQL is the world's most popular open source database. With its
proven performance, reliability and ease-of-use, MySQL has become
the leading database choice for web-based applications, used by high
profile web properties including Facebook, Twitter, YouTube,
Yahoo! and many more.
Oracle drives MySQL innovation, delivering new capabilities to
power next generation web, cloud, mobile and embedded
applications.
MySQL is written in C and C++. Its SQL parser is written in yacc, but
it uses a home-brewed lexical analyser. MySQL works on many
system platforms, including AIX, BSDi, FreeBSD, HP-UX,
eComStation, i5/OS, IRIX, Linux, OS X, Microsoft Windows,
NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS/2 Warp,
QNX, Oracle Solaris, Symbian, SunOS, SCO OpenServer, SCO
UnixWare, Sanos and Tru64. A port of MySQL to OpenVMS also
exists.
[ 10 ]
PROJECT ANALYSIS
1. Login Page
On this page, registered employees has the facility to login with an
existing account of the website. User need to enter their employee id
and password.
2. Sign Up Page
Here employees can create a new account for the chat application.
Employees need to provide various details like employee id, name,
designation, email id, password and a profile picture(optional) to
signup
[ 11 ]
3. Homepage
On successful login user will be landed on this page. On left side,
there will be a list of employees with whom the current employee has
already talked earlier.
[ 12 ]
4. Online Status
Online status of employees is shown by an circular indicator near
there profile picture. Green indicates that employee is online and red
indicator indicates employee is offline.
[ 13 ]
6. New Chat List
New Chat list provides the list of all the employees who are registered
in the chat application. The current logged in user can select any one
of these employees to start a new chat with them.
7. Message Pane
Message Pane displays the messages between the current logged in
employee and selected employee. Below message pane there is a
input where user can type a message and can send it.
[ 14 ]
8. Message Status
Each sent message has an indicator which indicates the status of the
sent message. There are 3 possible indicators:
Spinner : This indicates that the message has been sent but not
received by the other employee because he/she is offline.
Grey Tick : This indicates that the message has been received
by the other employee.
Blue Tick : This indicates that the message has been read the
other employee.
[ 15 ]
9. Attach Media
Media can be attached by clicking on pin icon on the task bar. User
can attach images, videos, docs, pdfs, ppts, excel sheets and text files.
[ 16 ]
11. Taskbar Menu
Taskbar menu can be open by clicking three ellipsis icon on the task
bar. The menu has two items: Broadcast message and logout.
[ 17 ]
On clicking broadcast from taskbar menu a “Select Broadcast List”
pane will open. User can select employees to whom the messages
needs to be broadcasted and then click OK.
[ 18 ]
Employees has an option to recover their password if they have forgot
it. The employee needs to enter their employee id on login page and
then click “Forgot Password?” option. After clicking this an email
with instructions will be sent to their registered email id.
[ 19 ]
16. Reset Password Page
On clicking the link in the email the user will land on this page. User
can enter a new password and submit it.
DATABASE TABLES
1. employees
This table stores the details of all the employees which are registered
on the chat application website. The structure of table is as follows:
[ 20 ]
2. chats
This table stores the chat messages, their status and the employee id
of sender and receiver. The structure of table is as follows:
3. media
This table stores the actual name of the media file which is displayed
to the user and the name of file on the disk along with the message id
which corresponds to a message in chats table. The structure of table
is as follows:
[ 21 ]
4. passwordrecovery
This table stores the employee id and a unique token generated for the
employees who have requested for password recovery. The structure
of table is as follows:
[ 22 ]
FUTURE ENHANCEMENTS
[ 23 ]
BIBLIOGRAPHY
www.google.com
www.developer.mozilla.org
www.w3schools
expressjs.com
www.nodejs.org
www.mysql.com
stackoverflow.com
fontawesome.io
angularjs.org
getbootstrap.com
socket.io
www.npmjs.com
www.iis.net
github.com
en.wikipedia.org
[ 24 ]