Вы находитесь на странице: 1из 71

EZKhoj

ABSTRACT

EZKhoj is a web-based mapping service or a navigation tool which offers location including
specific information about sites (tourist destinations, local clinic, gas stations, etc.) as well as
important services (free health campaigns, updates on petroleum distribution, carpooling,
event updates). Google Map, being one of the most successful web mapping service is not
always going to come in handy based on every events and services going to be conducted in a
particular city or country. Though it has been able to come up with most of the facilities a web
mapping service can provide, a lack of completeness is still felt.

EZKhoj is looking forward to target the web mapping service for the services that make a lot
of difference based on a particular locality. We, being a landlocked country have come through
a lot of issues in the recent years which doesn’t seem to be over for quite some time. It not only
focuses on the basic needs but helps users to look for the higher perspective of what service
and events have been running throughout their locality and country as well. Working like an
informer, it looks forward for the intelligent flow of information with the help of mapping
service. Creating ease to the users by acting as a local based mapping service, it provides users
with the power to be updated as well as keep others updated.

Keywords: EZKhoj, Map, Navigation, Search, Mapping service, Google Maps

I
EZKhoj

ACKNOWLEDGEMENT

The project has been benefited from the joint efforts of many individuals. It has been a
pleasure for us to acknowledge the assistance and contributions that were very important
and supportive throughout the project. We would like to extend our sincere thanks to all of
them.

We owe special thanks to a number of people who has devoted much of their time and expertise
without which it would have been very difficult for us to complete our project entitled
“EZKhoj”.

We would like to extend our special thanks to Er. Madan Kadariya, Head of Department
of IT Engineering for his valuable guidance throughout the project development period and
for providing technical support with suggestions which helped our project to grow and foster
to a certain level we didn’t think of reaching in such a short period.

We would not forget to thank our teachers and classmates who have been knowingly or
unknowingly the part of this project and lent support and views during the entire development
time.

II
EZKhoj

LIST OF ABBREVIATIONS

API Application Programming Interface

DFD Data Flow Diagram

ER Entity Relationship

FP Function Point

LOC Lines of Code

PM Person-month

SQL Structured Query Language

SRS System Requirement Specification

III
EZKhoj

LIST OF FIGURES

Figure 6.1: Incremental Model ................................................................................................ 15

Figure 7.1: Context Diagram ................................................................................................... 20

Figure 7.2: Data Flow Diagram ............................................................................................... 21

Figure 7.3: Use Case Diagram ................................................................................................. 22

Figure 7.4: Entity-Relationship (E-R) diagram ....................................................................... 23

Figure 7.5: Sequence Diagram for Admin ............................................................................... 24

Figure 7.6: Sequence diagram for User ................................................................................... 25

Figure 9.0.1: Output: Username/password do not match message .......................................... 33

Figure 9.0.2: Output: Successfully logged in message ............................................................ 34

Figure 9.0.3: Fill out this field message (Login) ..................................................................... 35

Figure 9.0.4: Fill out this field message (Signup) .................................................................... 35

Figure 9.0.5: Successfully registered message ........................................................................ 36

Figure 9.0.6: Bad Username message ...................................................................................... 37

Figure 9.0.7: Good Username message ................................................................................... 37

Figure 9.0.8: Password do not match message ........................................................................ 38

Figure 9.0.9: Password matched message................................................................................ 38

Figure 9.0.10: Invalid Email address message......................................................................... 39

Figure 9.0.11: Valid Email Address message ........................................................................... 39

Figure 9.0.12: Fill out this field message (Events update) ...................................................... 40

Figure 9.0.13: Successfully updated the event message .......................................................... 41

Figure 9.0.14: Successfully saved changes message ............................................................... 42

Figure 10.1: Gantt Chart .......................................................................................................... 43

IV
EZKhoj

Figure 12.0.1: Login Screen...................................................................................................... X

Figure 12.0.2: Signup Screen .................................................................................................... X

Figure 12.0.3: Google Maps API, Events Newsfeed and Scraped Events Feed ..................... XI

Figure 12.0.4: Image Slider: Events Highlight ....................................................................... XI

Figure 12.0.5: Events update Form ........................................................................................ XII

Figure 12.0.6: Newsfeed ........................................................................................................ XII

Figure 12.0.7:Scraped Events Feed ....................................................................................... XII

Figure 12.0.8: User Profile.................................................................................................... XIII

Figure 12.0.9: Edit Profile Form ........................................................................................... XIII

Figure 12.0.10: Contact us Form ..........................................................................................XIV

Figure 12.0.11: About us page ..............................................................................................XIV

V
EZKhoj

LIST OF TABLES

Table 4.1 : Team Members and Divided Roles .......................................................................... 7

Table 5.1 :User Details ............................................................................................................. 11

Table 5.2: Contact us data details ............................................................................................ 11

Table 5.3: Event Details ........................................................................................................... 12

Table 5.4: Scraped Event Details ............................................................................................. 12

Table 5.5: Joined Event Details ............................................................................................... 13

Table 5.6: Interested Event Details .......................................................................................... 13

Table 5.7: Maybe Event Details ............................................................................................... 13

Table 7.1: Data Structure Table ................................................................................................ 19

Table 8.1: Function Point ......................................................................................................... 26

Table 9.1: Testing Table ........................................................................................................... 31

Table 10.1: Project Task and Schedule .................................................................................... 43

VI
EZKhoj

TABLE OF CONTENTS

Abstract ........................................................................................................................................I
Acknowledgement ...................................................................................................................... II
List Of Abbreviations ................................................................................................................ III
List Of Figures ...........................................................................................................................IV
List Of Tables ............................................................................................................................VI
1. Introduction ........................................................................................................................ 1
1.1 Problem Statement ...................................................................................................... 1
1.2 Project Overview ........................................................................................................ 1
1.3 Project Objectives ....................................................................................................... 2
1.4 Project Scope And Limitations ................................................................................... 3
1.5 Significance Of Study ................................................................................................. 3
2. Literature Review............................................................................................................... 4
2.2 Google Maps ............................................................................................................... 4
2.3 Comparision With Google Maps ................................................................................ 5
2.3.1 Features Not Provided ...................................................................................... 5
2.3.2 Solutions Offered To The Existing Deficiencies .............................................. 5
3. Proposed Results ................................................................................................................ 6
4. Team Members And Divided Roles ................................................................................... 7
5. Requirement ....................................................................................................................... 8
5.1 Requirement Analysis ................................................................................................. 8
5.2 System Requirement Specifications ........................................................................... 8
5.2.1 Functional Requirements .................................................................................. 8
5.2.2 Input Requirements ........................................................................................ 10
5.2.3 Output Requirements ...................................................................................... 14
5.2.4 Security Requirements ................................................................................... 14
5.2.5 Hardware Specifications................................................................................. 14
6. Methodology .................................................................................................................... 15
6.1 Software Development Lifecycle ............................................................................. 15
6.1.1 Analysis Phase ................................................................................................ 16
6.1.3 Coding Phase .................................................................................................. 16
6.1.4 Testing Phase .................................................................................................. 16
6.2 Technologies Used .................................................................................................... 16

VII
EZKhoj

6.3 Tools Used................................................................................................................. 18


7. System Design ................................................................................................................. 19
7.1 Data Structure Design ............................................................................................... 19
7.2 Context Diagram ....................................................................................................... 20
7.3 Data Flow Diagram ................................................................................................... 21
7.4 Use Case Diagram .................................................................................................... 22
7.5 Entity-Relationship Diagram (E-R Diagram) ........................................................... 23
7.6 Sequence Diagram .................................................................................................... 24
8. Budget .............................................................................................................................. 26
8.1 Function Point ........................................................................................................... 26
8.2 Line Of Code ............................................................................................................. 28
9. Testing ................................................................................................................................... 29
9.1 Testing Methods Used ............................................................................................... 29
9.1.1 Static Vs. Dynamic Testing ............................................................................ 29
9.2 Testing Levels ........................................................................................................... 29
9.2.1 Unit Testing .................................................................................................... 29
9.2.2 Integration Testing .......................................................................................... 30
9.2.3 Component Interface Testing ......................................................................... 30
9.2.4 System Testing................................................................................................ 30
9.3 Testing Table ............................................................................................................. 31
9.4 List Of Testing .......................................................................................................... 33
10. Project Task And Time Schedule ..................................................................................... 43
11. Conclusion And Future Extension ....................................................................................... 44
12. Bibliographical References .................................................................................................IX
Appendix A .....................................................................................................................IX
Appendix B ................................................................................................................... XV

VIII
EZKhoj

1. INTRODUCTION
Our project, EZKhoj is a web-based mapping service or a navigation tool which offers location
including specific information about sites (tourist destinations, local clinic, gas stations, etc.)
as well as important services (free health campaigns, updates on petroleum distribution,
carpooling, event updates). This document provides the scope and context of the project to be
undertaken. It also provides a schedule for the completion of the project, including a list of all
the deliverables and presentations required.

1.1 PROBLEM STATEMENT


In spite of the web services provided for the users to be able to navigate freely, it has not been
able to deliver effective mapping services to the users. Google Map, being one of the most
successful web mapping service is not always going to come in handy based on every events
and services going to be conducted in a particular city or country. Though it has been able to
come up with most of the facilities a web mapping service can provide, a lack of completeness
is still felt.

The web mapping service lacks features regarding navigation related with the important yet
unavailable searches, hence the search is not optimized. Furthermore, there is a communication
gap between service providers and users. Consequently, there is unavailability of genuine
information. We have felt that the flow of updates of services/events by the different profit and
not-profit organizations have not been effective. Hence, people are deprived of the free
availability of services. With that demanding need of efficient flow of information however
lacking in the respective areas, the services don’t create that impact which they really can. The
resources which are used, don’t get to be as effective as their potential can be.

1.2 PROJECT OVERVIEW


Our project targets for the smooth flow of information regarding the services that don’t get
highlighted in the present scenario. However people can be benefitted most out of these
services once they are aware about it. Therefore the flow of information is one of the basic
requirements for the proper use of the resources. Such events and campaigns are likely to

1
EZKhoj

increase in number when there are lots of participants as it would encourage more such
activities in the future. As this project focuses on services with the help of web-mapping, it has
higher expectations regarding the increase in number of services.

This proposal provides the scope and context of the project to be undertaken. It details the
intended user group and the value that the system will have to them. It also provides a schedule
for the completion of the project, including a list of all the deliverables and presentations
required.

1.3 PROJECT OBJECTIVES


After the investigation of the data collection process, objectives of our project EZKhoj has
been draw out. The core objectives of our web application are:

 Optimize the search so as to make ease of navigation to the people


 To enable users to view and navigate through horizontal and vertical panoramic
street level views of various sites.
 Conduct the intelligent flow of vital information and information updates to the
people
 Build a relation between service provider/ dealers and users.
 To make searching time efficient
 Provide necessary information (location, contact directories, website) of
sites(emergency health care, local clinic, tourism sites, petrol pumps, carpooling)
 Include very possible features for efficient web based navigation
 To allow authorized user to place marker on the map
 Develop an interactive web application with user friendly search interface
 Provide authenticated login system to enter into personal dashboard/ timeline
 To smartly update users about the free health campaigns and services.
 To notify users about the distribution of petroleum products
 To help boost up the events

2
EZKhoj

1.4 PROJECT SCOPE AND LIMITATIONS


The scope of this project is to provide user with all the services and facilities through a web-
based mapping service or a navigation tool. With our web app EZKhoj, users will be able to:
 Be updated/notified with the events related to free health camps, petroleum products
distribution, etc.
 View and navigate through horizontal/vertical panoramic street level views of various
sites.
 Get necessary information (location, contact directories, website) of sites(emergency
health care, local clinic, tourism sites, petrol pumps, carpooling)
 Share the events and campaign details to other users
 Search and navigate locations as well as services with ease

Although our projects seems to answer most of the recent problems regarding the flow of
information about the service, it has certain limitations that might be quite crucial at times.
Some of the limitations of our project are:

 It basically focuses on the service-mapping rather than like a overall web mapping tool.
 Possibility of flow of unauthentic information.
 Dependent upon Google Maps API.
 May not cover all the aspects of services that are being provided.

1.5 SIGNIFICANCE OF STUDY


The study investigates the need of a system , i.e. web-based mapping service or a navigation
tool which offers location including specific information about sites (tourist destinations, local
clinic, gas stations, etc.) as well as important services (free health campaigns, updates on
petroleum distribution, carpooling). In spite of the web services provided for the users to be
able to navigate freely, it has not been able to deliver effective mapping services to the users.
With the study, we encountered some lacking features regarding navigation related with the
important yet unavailable searches. There is need for a web application that can meet up to the
user’s needs. While the other mapping tool offers only the location navigation; using the
Google Maps API, we plan to develop a new search interface that will offer navigation of the
location, services, and events.

3
EZKhoj

2. LITERATURE REVIEW

This section consists the literature study on the web based mapping service. Our project is
looking forward to define all the possible services so that there is an intelligent system of web-
mapping for the required and general services.

2.1 REVIEW
With the improving devices and technology, mapping service are becoming handy day by day
which is obviously going to add more expectations to the services provided by them in the
future. Even though some services might seem overwhelming and some might seem
insufficient, there will always be some areas for improvement. Hence our project is looking
forward to define all the possible services so that there is an intelligent system of web-mapping
for the required and general services.

2.2 GOOGLE MAPS


In the existing time Google map has been providing locations to everyplace with the web
mapping service offering satellite imagery, street maps, 360° panoramic views of streets (Street
View), real-time traffic conditions (Google Traffic), and route planning for traveling by foot,
car, bicycle (in beta), or public transportation, it has been working on to facilitate the most out
of their web mapping service. And there are some projects carried out by the use of the maps
API which generally focus on the localization part whereas lack the service oriented framework
in them. Also there seem to be almost none of those services where users can themselves be a
part of the information sharing.

Google launched the Google Maps API in June 2005[1] to allow developers to integrate Google
Maps into their websites. It is a free service, and currently does not contain ads, but Google
states in their terms of use that they reserve the right to display ads in the future.[2]. By using
the Google Maps API, it is possible to embed Google Maps site into an external website, on to
which site specific data can be overlaid.[3] Although initially only a JavaScript API, the Maps
API was expanded to include an API for Adobe Flash applications (but this has been
deprecated), a service for retrieving static map images, and web services for
performing geocoding, generating driving directions, and obtaining elevation profiles. Over
1,000,000[4] web sites use the Google Maps API, making it the most heavily used web
application development API.[5]
4
EZKhoj

The Google Maps API is free for commercial use, provided that the site on which it is being
used is publicly accessible and does not charge for access, and is not generating more than 25
000 map accesses a day.[6][7] Sites that do not meet these requirements can purchase the Google
Maps API for Business.[8]

2.3 COMPARISION WITH GOOGLE MAPS


Our Project is based on proving users with the information of services so it would be easier to
acknowledge them and act upon them. Rather than just a service that localizes places, our
model works on providing users with information that can have a good impact in the time of
their need.

2.3.1 FEATURES NOT PROVIDED

Google Map, being one of the most successful web mapping service is not always going to
come in handy based on every events and services going to be conducted in a particular city or
country. Though it has been able to come up with most of the facilities a web mapping service
can provide, a lack of completeness is still felt.

2.3.2 SOLUTIONS OFFERED TO THE EXISTING DEFICIENCIES

EZKhoj is looking forward to target the web mapping service for the services that make a lot
of difference based on a particular locality. We, being a landlocked country have come through
a lot of issues in the recent years which doesn’t seem to be over for quite some time. It not only
focuses on the basic needs but helps users to look for the higher perspective of what service
and events have been running throughout their locality and country as well. Working like an
informer, it looks forward for the intelligent flow of information with the help of mapping
service. Creating ease to the users by acting as a local based mapping service, it provides users
with the power to be updated as well as keep others updated.

5
EZKhoj

3. PROPOSED RESULTS

EZKhoj will be able to provide users with the services that are essential yet not included in the
web mapping service. The end product will have the following end results:

 Users will get to be updated with the events, campaigns and services that will be running
throughout their community/locality.
 They will also have the power to promote the flow of information.
 EZKhoj will also be able to give timely notifications with its News Feed.
 Users will be able to choose services from various service providers.
 Users will also be able to create their profile and can authenticate themselves as one of
the informer for EZKhoj and update information as they go.
 The product will be able to give users with a proper UI/UX so that they can enjoy the
web-mapping service smoothly.
 Users will be able to view and navigate through horizontal and vertical panoramic street
level views of various sites.

6
EZKhoj

4. TEAM MEMBERS AND DIVIDED ROLES

Table 4.1 : Team Members and Divided Roles

Name Roles Responsibilities


 Review and approve all project deliverables
(Initiation Plan, Detailed Plan, Testing etc.)
 Day to Day responsibility to keep project on

Project Manager track for the successful delivery of EZKhoj


 Manage project level risks and issues on an
Nipesh
ongoing basis and take responsibility for a
Shrestha
project change management

 Define and execute development requirement


System Developer
 Develop User-friendly Interface and work
System/ UI Designer through design revisions
 Test System Interfaces

 Define and execute development requirement


System Developer
Saurya  Develop, maintain and implement policies and
Paudel procedures necessary to ensure the security and
Database Administrator integrity of the corporate database

 Create and maintain system security(


Security and Authorizations Authentication, User profiles, Assignment of

Expert user to profiles)

 Participate in analysis, requirement, gathering


and preparation of specifications
Department Process Experts
Bibek  Identify improvement opportunities

Kumar
End User Documentation  Participate in testing
Sardar
Expert  Develop Documentation

7
EZKhoj

5. REQUIREMENT

5.1 REQUIREMENT ANALYSIS

Requirement analysis, in software engineering encompasses those tasks that go into


determining the need and conditions to meet for a new or altered product, taking account
of possibly conflicting requirements of the various stakeholders, such as beneficiaries and
users. It is the early stage activity of requirement engineering which encompasses all
activities concerned with eliciting, analyzing, documenting, validating and managing
system requirements.

5.2 SYSTEM REQUIREMENT SPECIFICATIONS

5.2.1 Functional Requirements

 Provides user with the information regarding events(free services, health campaigns,
awareness programs) being conducted
 Provides user with the platform to share and broadcasts the events that they have
come across
 Notifies user with the events they have joined to
 Allows user to view events from the third-party website.

 Data Entry Model

The following input formats were applied:


 Automatic input:

Information generated on form during edit profile of user.


Latitude and longitude during update events.
 Direct Entry using keyboard

Sign up details, login details, update events details, contact us details

8
EZKhoj

 Backup facility

User details and records related to user for user validation purpose. This is kept in the
database.

 Output to user
 Soft Output Requirements
a. Displays the marker on the Google Maps API at the posted events location.
b. News feed with the list of crawled events from third party website and the
added events.
 Interface required

Users are provided with a web interface which includes all the information
during the events on the main page. They can choose to join the events and let
them see the notifications for the events regarding their interests. They can
also view other events from third party websites. However, users first need to
sign up so that they can be validated with their login and records of each
individual can be kept for future use by user themselves.
The user would be working with the following windows. Their functions are
also listed below:
o Login and signup Window
It will be used to let user sign up for their account if they don’t have an
account or login for the account if they already have an account

o Data viewing windows


It is used to display the information regarding the events including the
google map and newsfeed which contains all the events and their
information. User can interact with the events as well as map in this
windows.

o User profile window


It is used to display the profile of the user containing only the information
which user has shared with the system. It will also be showing which
events user have been interested as a whole.

9
EZKhoj

o About us window
It contains all the information regarding the developers and designers of
the website and is beneficial for business deals or short overview of the
creators.
o Contact us window
It will be used if there is any issue regarding the web application which
users want to report to the system managers.

5.2.2 Input Requirements

Data Required
The data to be input are:-
 User information

This contains user’s full name, username, email and password.


 Events

This contains the events details ( Title, Date, Venue, Organizer,


Category, Event Type)input by the user.

Source of data
 The information will be given by user themselves. And the events have to be
selected by user in order to be notified about the events.
 Web scraping of event details( Fetching of event data from external websites)

Input List and Validation

The user inputs, for each, are categorized on the basis of entry by the user. They are tabulated
below along with data description, validation and data length which would be helpful in Design
Phase.

10
EZKhoj

Table 5.1 :User Details

S.N. INPUT DATA TYPE LENGTH DESCRIPTION

1. Full name Character 20 characters It is the full name of the user

2. Username Character 20 characters It is the username that is addressed


by the web application

3. Email Character 20 characters It is the mailing address of the user

4. Password Character 20 characters It is the password of the user for the


system

Table 5.2: Contact us data details

S.N. INPUT DATA TYPE LENGTH DESCRIPTION

1. Name Character 20 characters It is the full name of the user

2. Email Character 20 characters It is the mailing address of the user

3. Phone Integer Standard It is the phone number of the user

4. Message Text Standard It is the message input by the user

11
EZKhoj

Table 5.3: Event Details

S.N. INPUT DATA TYPE LENGTH DESCRIPTION

1. Title Character 20 characters It is the title of the event

2. Date Character 20 characters It is the date of the event


conducted

3. Venue Integer Standard It is the venue of the event

4. Organizer Text Standard It is the event organizer description

5. Latitude Float Standard Latitude coordinate of the event


location

6. Longitude Float Standard Longitude coordinate of the event


location

7. Category Character 20 characters It is the category description of the


event

8. Event Type Character 20 characters It is the type of the event

9. Introduction Text Standard Few description about the event

Table 5.4: Scraped Event Details

S.N. INPUT DATA TYPE LENGTH DESCRIPTION

1. Title Character 40 characters It is the title of the event that is


fetched from the other sites.

12
EZKhoj

Table 5.5: Joined Event Details

S.N. INPUT DATA TYPE LENGTH DESCRIPTION

1. Title Character 20 characters It is the title of the event

2. Date Character 20 characters It is the date of the event


conducted

3. Venue Integer Standard It is the event venue

4. Organizer Text Standard It is the event organizer description

Table 5.6: Interested Event Details

S.N. INPUT DATA TYPE LENGTH DESCRIPTION

1. Title Character 20 characters It is the title of the event

2. Date Character 20 characters It is the date of the event


conducted

3. Venue Integer Standard It is the event venue

4. Organizer Text Standard It is the event organizer description

Table 5.7: Maybe Event Details

S.N. INPUT DATA TYPE LENGTH DESCRIPTION

1. Title Character 20 characters It is the title of the event

2. Date Character 20 characters It is the date of the event


conducted

3. Venue Integer Standard It is the event venue

4. Organizer Text Standard It is the event organizer description

13
EZKhoj

5.2.3 Output Requirements

Output Objectives
The user requires following output from the system:
1. Broader details of all the events in the newsfeed and map
2. Full details on the events they have joined to.
3. Acknowledgement of events going on through third party website

5.2.4 Security Requirements

Users are to sign up and then only get access to the information regarding the events so that
each user can have their separate record to the events they are interested in or joined to and
only authorized user will be able to update the events. Therefore each user have been given
their own account with username and password to login. Password are saved in database,
which are hashed using Sha-1 protocol. This will kept the information safe from intruders as
well as those who are authorized to manage database only.

5.2.5 Hardware Specifications

As this is a Web application, higher specs of hardware is not a compulsory. However having a
proper web browser which meets the latest need of web applications can be a plus point
during the use.
i. Processing Speed: 800 MHz or Higher
ii. Memory: 128MB or Higher and 10MB free space
iii. Input: Standard Keyboard, Mouse
iv. Output: Monitor
v. Display: 256 Color SVGA display

4.2.6 Software Specifications


i. Operating System: Windows/Linux/Mac
ii. Drivers: Required Drivers of the hardware parts and web browser
iii. Program: Latest browser like Google Chrome, Mozilla Firefox, etc.

These are the minimum requirements for running the Web Application in one’s personal
computer.
14
EZKhoj

6. METHODOLOGY

We have planned to work following these methodologies for the application of knowledge,
skills, tools and techniques to a broad range of activities in order to meet the requirements of
our project, EZkhoj.

6.1 SOFTWARE DEVELOPMENT LIFECYCLE


The framework we will be using for developing this project is Incremental model. This model
combines linear sequential model with the iterative prototype model. New functionalities will
be added as each increment is developed. The phases of the linear sequential model are:
Analysis, Design, Coding and Testing. The software repeatedly passes through these phase in
iteration and an increment is delivered with progressive changes. [9]

Figure 6.1: Incremental Model

15
EZKhoj

6.1.1 ANALYSIS PHASE

In this phase, analysis will be performed in order to find out the requirements of the system.
The outcome of this phase would be a SRS which is an acronym for “System Requirement
Specifications”.

6.1.2 DESIGN PHASE

In this phase the SRS would be translated into the system’s design. Context Diagram, DFD,
ER – Diagram, Use Case Diagram and Class Diagram will be developed.

6.1.3 CODING PHASE

In this phase, coding will be done according to the design and a working system will be
developed by the end of this process.

6.1.4 TESTING PHASE

In this phase, the system will be tested. With each testing a list of changes to the system
developed, is suggested and the changes will be applied to the software and the software would
be delivered as a successive increment until a satisfying system is achieved.

6.2 TECHNOLOGIES USED

 CSS and HTML to develop interactive user interfaces.


 JavaScript, for event handlers and behaviors to add user interaction
 Bootstrap, a CSS framework for further styling the application.
 PHP, for server-side validation, retrieval
 JQuery, a popular JavaScript library to further enhance user interactivity.
 MySQL for database for storing all the application data.
 Python, for web scraping (fetch event details)

16
EZKhoj

REASONS FOR CHOOSING PHP FOR WEB DEVELOPMENT


 Fast and reliable
 Platform independent
 Higher performance and more flexible
 Open source
 Supports a good number of backend-databases like MySQL, Oracle

REASONS FOR CHOOSING MYSQL AS BACKEND DATABASE


 Scalability and flexibility
 High performance
 High availability
 Strong data protection
 Comprehensive Application Development
 Management Ease
 Open source freedom and 24x7 support
 Lowest Total cost of ownership

REASONS FOR CHOSING PYTHON FOR WEBSCRAPING


 Robust
 Flexible
 Easy to learn and use
 free

17
EZKhoj

6.3 TOOLS USED


The tools used for documentation, designing and developing UI/UX, testing are listed below
in table:
TOOLS PURPOSE
Edraw Max 7.9 Design
Adobe Photoshop CS6 Designing UI/UX
Rational Rose Design
PHP, MySQL For web application development
Sublime Text/ Notepad++ Text editor for code, markup and prose
JetBrains Pycharm Community Edition 5.0.2 Python webscraping script
Xampp Testing Suite
Google Chrome Web Browser for running application
Table 6.1: Tools used

18
EZKhoj

7. SYSTEM DESIGN

Designing according to the requirement specification, we have made an attempt to make


sure that the system design actually confirms the user requirements of the system. In order
to do so, we frequently looked into the following matters:

 Verifications of input and output formats


 To make sure that the design layouts of windows are accepted by the user
 To make sure that security specifications are met

7.1 DATA STRUCTURE DESIGN


The descriptions of the data type that will be used in the new system are as below:

The data type, size and constraints for each data Entity is documented. The data types are
identified as following:-

DATA TYPES SIZE


Character varying (n), varchar Variable-length with limit
(n)
Integer 4 bytes
Float Standard
Date Standard
Text Standard

Table 7.1: Data Structure Table

19
EZKhoj

7.2 CONTEXT DIAGRAM

The context diagram represents the overall explanation of the system ‘EZKhoj’.The
system has been shown in diagrammatic process below:

-
User AGoogle Maps API
Interface (View)

Event location
User details

information
Map API
EZKhoj
User updated
event infos

Content Fetch

Event details
request

D External
sEvent Website

Figure 7.1: Context Diagram

20
EZKhoj

7.3 DATA FLOW DIAGRAM

A Data Flow Diagram (DFD) is a graphical representation of the "flow" of data


through a system.

The flow of data in our system is represented by the following Data Flow Diagram.

Top Level DFD

Figure 7.2: Data Flow Diagram

21
EZKhoj

7.4 USE CASE DIAGRAM

Use case is a list of steps, typically defining interactions between a role and a system, to
achieve a goal. The following figure shows the interactions between the roles involved and
the EZKhoj.

Figure 7.3: Use Case Diagram


22
EZKhoj

7.5 ENTITY-RELATIONSHIP DIAGRAM (E-R DIAGRAM)

An entity-relationship diagram (ERD) is a graphical representation of an information system


that shows the relationship between people, objects, places, concepts or events within that
system. An ERD is a data modeling technique that can help define business processes and can
be used as the foundation for a relational database.

Figure 7.4: Entity-Relationship (E-R) diagram

23
EZKhoj

7.6 SEQUENCE DIAGRAM

A Sequence diagram is an interaction diagram that shows how processes operate with one
another and in what order. A sequence diagram shows object interactions arranged in time
sequence. Sequence diagrams are typically associated with use case realizations in the Logical
View of the system under development. A sequence diagram shows, as parallel vertical lines
(lifelines), different processes or objects that live simultaneously, and, as horizontal arrows,
the messages exchanged between them, in the order in which they occur.

Figure 7.5: Sequence Diagram for Admin

24
EZKhoj

Figure 7.6: Sequence diagram for User

25
EZKhoj

8. BUDGET

8.1 FUNCTION POINT


Function point metric is used to collect direct measure of software engineering not only
according to size but also according to functionality. FP is derived using an empirical relationship
based on countable measures and assessment of s/w complexity.

Table 8.1: Function Point

Information Domain Values Count Weighted Value Total count

[Weight * Count]

No of User Inputs 11 4 44

No of User Outputs 6 5 30

Number of User Inquiries 2 4 8

No of Logical Files 3 10 30

No of External Interfaces 2 7 14

Count Total 126

Function Point (FP) = Count Total * Complexity Multiplier The value of Complexity
14 Multiplier ranges from 0.65
= 126* [0.65 + 0.01 *∑ fi to 1.35. Since, our project
i=1 is average, the value of the
count and the complexity
=126 * 1.17
multiplier used is average,
i.e. we have assumed an
= 147.42
average value as 1.17
≈ 147

Average productivity = 10 FP / pm

Labor Rate = Rs. 5000 per month

26
EZKhoj

FP
Effort =
Average Productivity

= 147 / 10

≈ 15

Total Project Cost = FP * Labor rate

Average Productivity

= 147 * 5000 / 10

= Rs. 73,500

The value of the count and the count multiplier used is average.
· Number of user inputs
Each user input that provides distinct application oriented data to the software is
counted.
· Number of user outputs
Each user output that provides application oriented information to the user is counted.
In this context "output" refers to reports, screens, error messages, etc. Individual data
items within a report are not counted separately.
· Number of user inquiries
An inquiry is defined as an on-line input that results in the generation of some
immediate software response in the form of an on-line output. Each distinct inquiry is
counted.
· Number of files
Each logical master file is
counted.
· Number of external interfaces
All machine-readable interfaces that are used to transmit information to another
system are counted.

27
EZKhoj

8.2 LINE OF CODE

LOC (Lines of Code) is a simple and straight forward way of counting the productivity of
a programmer in a given time period.

Using Lines of Code metric, the project size is estimated by counting the number of
source instructions in the developed program.

Estimated LOC = 1634

Average Productivity = 120 LOC/pm

Labor Rate = Rs 5000 per month

Now,

Estimated Project Cost = Estimated LOC * Cost per LOC


Labor Rate
= 1634 *
Average Productivity

= 1634 * 5000/120

≈ Rs. 68,083

28
EZKhoj

9. TESTING

We wanted to make sure that all the elements of the developed worked functioned properly.
For this, we created a test plan for our work, in which elements such as validation, reliability
and user acceptance will be tested. The system will be tested for normal condition,
primarily.

9.1 Testing Methods Used


The different testing methods used in our project development are:

9.1.1 Static vs. dynamic testing

The reviews, walkthroughs, or inspections are referred to as static testing, whereas actually
executing programmed code with a given set of test cases is referred to as dynamic testing.
Static testing is often implicit, as proofreading, plus when programming tools/text editors
check source code structure or compilers (pre-compilers) check syntax and data flow as
static program analysis. Dynamic testing takes place when the program itself is run.
Dynamic testing may begin before the program is 100% complete in order to test particular
sections of code and are applied to discrete functions or modules. Typical techniques for
this are either using stubs/drivers or execution from a debugger environment.

Static testing involves verification, whereas dynamic testing involves validation. Together
they help improve software quality. Among the techniques for static analysis, mutation
testing can be used to ensure the test-cases will detect errors which are introduced by
mutating the source code. [10]

9.2 Testing Levels


Also the testing was carried out on different levels for a proper integration and better
functionality of the product. The different testing levels used are discussed below.

9.2.1 Unit Testing

Unit testing, also known as component testing refers to tests that verify the functionality
of a specific section of code, usually at the function level. In an object-oriented
environment, this is usually at the class level, and the minimal unit tests include the
29
EZKhoj

constructors and destructors. Developers usually write these types of tests as they work on
code (white-box style), to ensure that the specific function is working as expected. One
function might have multiple tests, to catch corner cases or other branches in the code.
Unit testing alone cannot verify the functionality of a piece of software, but rather is used
to ensure that the building blocks of the software work independently from each other.

9.2.2 Integration testing

Integration testing is any type of software testing that seeks to verify the interfaces between
components against a software design. Integration testing works to expose defects in the
interfaces and interaction between integrated components (modules). Progressively larger
groups of tested software components corresponding to elements of the architectural
design are integrated and tested until the software works as a system.

9.2.3 Component interface testing

The practice of component interface testing can be used to check the handling of data
passed between various units, or subsystem components, beyond full integration testing
between those units. The data being passed and the range or data types can be checked, for
data generated from one unit, and tested for validity before being passed into another unit.
One option for interface testing is to keep a separate log file of data items being passed,
often with a timestamp logged to allow analysis of thousands of cases of data passed
between units for days or weeks. Tests can include checking the handling of some extreme
data values while other interface variables are passed as normal values. Unusual data
values in an interface can help explain unexpected performance in the next unit.
Component interface testing is a variation of black-box testing, with the focus on the data
values beyond just the related actions of a subsystem component.

9.2.4 System testing

This refers to testing for the better support of the web application to the system specified
and performance on the different systems and hardwares. This helps to get an insight on
the hardware specifications that were specified in the requirement analysis of the project.
The different testing methods and levels assure that the quality of the product is maintained
with a better performance and best level of data security and integrity.

30
EZKhoj

9.3 TESTING TABLE

Table 9.1: Testing Table

TES FOR TEST EXPECTED ACTUAL EVIDENC


T M RESULT RESULT E
NO.

1. Login Incorrect Username/passwor Username/passwor Test 1.1


Username/ d do not match d do not match
Password
Correct Successfully Successfully
2. Login Username/ logged in. logged in. Test 1.2
Password Welcome Welcome
(username) (username)
Leave one of Please fill out this Please fill out this
3. Login the required field. (Password field. (Password Test 1.3
fields empty field) field)
Leave one of Please fill out this Please fill out this
4. Signup the required field. (Password field. (Password Test 2.1
fields empty field) field)
You have been You have been
Fill all details successfully successfully Test 2.2
5. Signup correctly registered to registered to
EZKhoj. Welcome EZKhoj. Welcome
(username) (username)
Check validity
6. Signup of bad Bad Username Bad Username Test 2.3
username

Fill good Test 2.4


7. Signup username(Onl Good username Good username

31
EZKhoj

y alphabets
allowed)

8. Signup Unmatched Password do not Password do not


password in match match Test 2.5
signup form
Matched
9. Signup password in Password matched Password matched Test 2.6
signup form

10. Signup Invalid format Invalid Email Invalid Email Test 2.7
Email address Address Address

11. Signup Valid format Valid Email Valid Email Test 2.8
Email Address Address Address

12. Update Leave one of Please fill out this Please fill out this Test 3.1
Events the required field. field.
fields empty

13. Update Fill all details You have You have Test 3.2
Events correctly successfully successfully
updated the event. updated the event.
Thank you! Thank you!

14. Edit Fill all details Successfully saved Successfully saved Test 4.1
Profile correctly changes. changes

32
EZKhoj

9.4 LIST OF TESTING

All the testing is shown below:

1. Form: Login

TEST 1.1

Purpose: To know what happens if either username or password is typed

incorrectly. Input: Incorrect username/password.

Expected Output: Username/password do not match

Figure 9.0.1: Output: Username/password do not match message

33
EZKhoj

TEST 1.2

Purpose: To know what happens if either username or password is typed

correctly. Input: Correct username/password.

Expected Output: Successfully logged in. Welcome (username)

Figure 9.0.2: Output: Successfully logged in message

34
EZKhoj

TEST 1.3

Purpose : To know what happens if either field is left blank


Input : Blank password.
Expected Output : Please fill out this field. (Password field)

Figure 9.0.3: Fill out this field message (Login)

2. Form: Signup

TEST 2.1
Purpose : To know what happens if either field is left blank
Input : Blank password.
Expected Output : Please fill out this field. (Password field)

Figure 9.0.4: Fill out this field message (Signup)


35
EZKhoj

TEST 2.2

Purpose: To know what happens if all the required field/s are filled correctly

by user

Input: Full name, Username, Password, Repeat Password, Email

Expected Output: You have been successfully registered to EZKhoj. Welcome

(username)

Figure 9.0.5: Successfully registered message

36
EZKhoj

TEST 2.3
Purpose : To check the validity of username. Only alphabets are
allowed.
Input : Numbers in username
Expected Output : Bad Username

Figure 9.0.6: Bad Username message

TEST 2.4
Purpose : To check the validity of username. Only alphabets are
allowed.
Input : Alphabets in username
Expected Output : Good Username

Figure 9.0.7: Good Username message


37
EZKhoj

TEST 2.5
Purpose : To check the JavaScript for matching password and repeat
password field
Input : Unmatched passwords
Expected Output : Password do not match

Figure 9.0.8: Password do not match message

TEST 2.6

Purpose : To check the JavaScript for matching password and repeat


password field
Input : Matched passwords
Expected Output: Password matched

Figure 9.0.9: Password matched message


38
EZKhoj

TEST 2.7
Purpose : To check the validity of email expression (valid format:
xyz@abc.com)
Input : Invalid format email
Expected Output : Invalid Email Address

Figure 9.0.10: Invalid Email address message

TEST 2.8
Purpose : To check the validity of email expression (valid format:
xyz@abc.com)
Input : Valid format email
Expected Output : Valid Email Address

Figure 9.0.11: Valid Email Address message

39
EZKhoj

3. Form: Update Events

TEST 3.1

Purpose : To know what happens if either of the required fields is left


empty.
Input : Left the venue field empty.
Expected Output : Please fill out this field. (Venue Field)

Figure 9.0.12: Fill out this field message (Events update)

40
EZKhoj

TEST 3.2

Purpose : To know what happens if all the required field/s are filled
correctly by user
Input : All required fields were properly filled
Expected Output : You have successfully updated the event. Thank you!

Figure 9.0.13: Successfully updated the event message

41
EZKhoj

4. Form: Edit Profile

TEST 4.1

Purpose : To know what happens if all the required field/s are filled
correctly by user
Input : All required fields were properly filled
Expected Output : Successfully saved changes.

Figure 9.0.14: Successfully saved changes message

42
EZKhoj

10. PROJECT TASK AND TIME SCHEDULE

The project schedule has been designed as per requirements and constraints involved. This
project is scheduled to be completed in about 2 months. Requirement analysis have been given
more emphasis. Research and database management is to be done first and well documented.
Debugging and Testing is to be done prior to the completion of the project.

TASK APPROX DURATION (in days)


Requirement Analysis and Specification 8
Undertake Analysis of the System 8
Design System 15
Produce Requirement Specifications 14
Testing and Debugging 8
Test System Modules 7
Overall System Test 6
Develop Documentation 50

Table 10.1: Project Task and Schedule

Figure 10.1: Gantt Chart

43
EZKhoj

11. CONCLUSION AND FUTURE EXTENSION

EZKhoj is looking forward to target the web mapping service for the services that make a lot
of difference based on a particular locality. Working like an informer, EZKhoj has the
potential for the intelligent flow of information with the help of mapping service. Creating
ease to the users by acting as a local based mapping service, it provides users with the power
to be updated as well as keep others updated.

With some minor change to be done in the project, it will be completed in one month with
documentation and made available to the users. The future extensions for the project are:

 Users can place the markers without having to enter coordinates (latitude and
longitude) in the events update form.
 Smart events scraping from the multiple sites
 Events Notifications through SMS
 Concurrent updates from users over different networks.
 More responsive application design

44
EZKhoj

12. BIBLIOGRAPHICAL REFERENCES


[1] "Official Google Blog: The world is your JavaScript-enabled oyster".[Online]. Available
https://googleblog.blogspot.com/2005/06/world-is-your-javascript-enabled_29.html
[Accessed: 20- Dec- 2015].

[2] "Google Maps API – Terms of use". [Online]. Available


https://developers.google.com/maps/terms?csw=1 [Accessed: 20- Dec- 2015].

[3] "PHP and MySQL: Working with Google Maps". Syntaxxx. [Online]. Available
http://syntaxxx.com/php-and-mysql-working-with-google-maps/ [Accessed: 20- Dec- 2015].

[4] "A fresh new look for the Maps API, for all one million sites". [Online]. Available
http://googlegeodevelopers.blogspot.com/2013/05/a-fresh-new-look-for-maps-api-for-
all.html [Accessed: 20- Dec- 2015].

[5] "Programmable Web API dashboard". Available http://www.programmableweb.com/apis


[Accessed: 20- Dec- 2015].

[6] "Google Maps API FAQ". https: // developers . google. com / maps / faq? csw=1# tos_
commercial [Accessed: 20- Dec- 2015].

[7] "Google Maps API Usage Limits" http://developers.google.com/maps/faq? csw=1#


usagelimits [Accessed: 21- Dec- 2015].

[8] "Google Maps API for Business". Available https://www.google.com/work/mapsearth/


[Accessed: 21- Dec- 2015].

[9] Roger S. Pressman, Ph.D., Seventh Edition, Software Engineering: A Practitioner’s


Approach, McGraw Hill, 2010

[10] Alia Douglas. Software testing - Wikipedia, the free encyclopedia [Online]
Available:http://en.wikipedia.org/wiki/Software_testing

APPENDIX A
IX
EZKhoj

SYSTEM SNAPSHOT

Figure 12.0.1: Login Screen

Figure 12.0.2: Signup Screen

X
EZKhoj

Figure 12.0.3: Google Maps API, Events Newsfeed and Scraped Events Feed

Figure 12.0.4: Image Slider: Events Highlight

XI
EZKhoj

Figure 12.0.5: Events update Form


Figure 12.0.6: Newsfeed

Figure 12.0.7:Scraped Events Feed


XII
EZKhoj

Figure 12.0.8: User Profile

Figure 12.0.9: Edit Profile Form


XIII
EZKhoj

Figure 12.0.10: Contact us Form

Figure 12.0.11: About us page

XIV
EZKhoj

APPENDIX B

CODE LISTING

ADD NEW USER


<?PHP
session_start();
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("user1", $con) or die('Could not select database');
if ($_POST)
{
$fullname=$_POST['Fullname'];
$username=$_POST['Username'];
$email= $_POST['Email'];
$pass=$_POST['Password'];
$sql="INSERT INTO
user(Fullname,Username,Email,Password)VALUES('$fullname','$username','$email','$pass')"
;
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);

}
$_SESSION['username']=$username;
echo "<script type='text/javascript'>alert('You have been successfully registered to EZKhoj.
Welcome $username '); window.location.href='homepage.php';</script>";
?>
XV
EZKhoj

AUTHENTICATION CODE
<?php
session_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="user1"; // Database name
$tbl_name="user"; // Table name

// Connect to server and select databse.


mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form


$myusername=$_POST['Username'];
$mypassword=$_POST['Password'];
$sql="SELECT * FROM $tbl_name WHERE Username='$myusername' and
Password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
$_SESSION['username']=$myusername;
echo "<script type='text/javascript'>alert('Successfully logged in. Welcome
$myusername ');
window.location.href='homepage.php';</script>";
}
else {
echo "<script type='text/javascript'>alert('Username/Password do not match');
window.location.href='index.html';</script>";

?>

XVI
EZKhoj

PASSWORD VALIDATION JAVASCRIPT


function checkPassword()
{
var x=document.getElementById('pass').value;
var y=document.getElementById('reppass').value;
if(x===y)
{
document.getElementById("passwordvalidation").innerHTML = "Password
matched";
}
else
{
document.getElementById("passwordvalidation").innerHTML = "Password
do not match";
}
}
USERNAME VALIDATION JAVASCRIPT
function checkUsername()
{
var letters = /^[A-Za-z]+$/;
var uname=document.getElementById("Username");
if(uname.value.match(letters))
{
document.getElementById("uservalidation").innerHTML = "Good
Username";
}
else
{
document.getElementById("uservalidation").innerHTML = "Bad
Username";
uname.focus();
}
}
XVII
EZKhoj

EMAIL VALIDATION JAVASCRIPT

function validateEmail(emailField){
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if (reg.test(emailField.value) == false)
{
document.getElementById("emailvalidation").innerHTML = "Invalid Email
Address";
document.getElementById("Email").focus();
}
else
{
document.getElementById("emailvalidation").innerHTML = "Valid Email
Address";
}
}

NEWSFEED
<?php
// Connect to database server
mysql_connect("localhost", "root", "") or die (mysql_error ());

// Select database
mysql_select_db("eventdb") or die(mysql_error());

// SQL query
$strSQL = "SELECT * FROM eventlist";

// Execute the query (the recordset $rs contains the result)


$rs = mysql_query($strSQL);

// Loop the recordset $rs


// Each row will be made into an array ($row) using mysql_fetch_array
XVIII
EZKhoj

while($row = mysql_fetch_array($rs)) {
$title=$row['Title'];
$organizer=$row['Organizer'];
$date=$row['Date'];
$venue=$row['Venue'];
// Write the value of the column FirstName (which is now in the array $row)
echo $title ." organized by " .$organizer." on " .$date." at " .$venue . "<br /><br/>";

// Close the database connection


mysql_close();
?>

GOOGLE MAPS API CODE


<script src="http://maps.googleapis.com/maps/api/js"></script>
<?php
// Connect to database server
mysql_connect("localhost", "root", "") or die (mysql_error ());

// Select database
mysql_select_db("eventdb") or die(mysql_error());

// SQL query
$strSQL = "SELECT * FROM eventlist";

// Execute the query (the recordset $rs contains the result)


$rs = mysql_query($strSQL);
$latArray = array();
$longArray = array();
$count=0;

// Loop the recordset $rs


// Each row will be made into an array ($row) using mysql_fetch_array

XIX
EZKhoj

while($row = mysql_fetch_assoc($rs))
{
$titleArray[]=$row['Title'];
$latArray[] = $row['Latitude'];
$longArray[]=$row['Longitude'];
$count++;
}

// Close the database connection


mysql_close();
?>

<script>

jQuery(function($) {
// Asynchronously Load the map API
var script = document.createElement('script');
script.src = "http://maps.googleapis.com/maps/api/js?sensor=false&callback=initialize";
document.body.appendChild(script);
});

function initialize() {
var counts=<?php echo $count; ?>;

var title = new Array();


<?php foreach($titleArray as $key => $val){ ?>
title.push('<?php echo $val; ?>');
<?php } ?>

var latitude = new Array();


<?php foreach($latArray as $key => $val){ ?>
latitude.push('<?php echo $val; ?>');

XX
EZKhoj

<?php } ?>

var longitude = new Array();


<?php foreach($longArray as $key => $val){ ?>
longitude.push('<?php echo $val; ?>');
<?php } ?>

var venue = new Array();


<?php foreach($venueArray as $key => $val){ ?>
venue.push('<?php echo $val; ?>');
<?php } ?>

var date = new Array();


<?php foreach($dateArray as $key => $val){ ?>
date.push('<?php echo $val; ?>');
<?php } ?>

var organizer = new Array();


<?php foreach($organizerArray as $key => $val){ ?>
organizer.push('<?php echo $val; ?>');
<?php } ?>

var map;
var bounds = new google.maps.LatLngBounds();
var mapOptions = {
mapTypeId: 'roadmap'
};

// Display a map on the page


map = new google.maps.Map(document.getElementById("googleMap"), mapOptions);
map.setTilt(45);

XXI
EZKhoj

// Multiple Markers

var markers = [];


for(var i=0;i<counts;i++)
{
markers[i]=[];
markers[i][0]=title[i];
markers[i][1]=latitude[i];
markers[i][2]=longitude[i];
markers[i][3]=date[i];
markers[i][4]=venue[i];
markers[i][5]=organizer[i];

}
// Display multiple markers on a map
var infoWindow = new google.maps.InfoWindow(), marker, i;

// Loop through our array of markers & place each one on the map
for( i = 0; i < markers.length; i++ ) {
var position = new google.maps.LatLng(markers[i][1], markers[i][2]);
bounds.extend(position);
marker = new google.maps.Marker({
position: position,
map: map,
animation:google.maps.Animation.BOUNCE,
title: markers[i][0]
});

// Allow each marker to have an info window


google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {

infoWindow.setContent("<b>Title:"+markers[i][0]+"<br>"+"Organizer:"+markers[i][

XXII
EZKhoj

5]+"<br>"+"Date:"+markers[i][3]+"<br>"+"Venue:"+markers[i][4]+"</B>");
infoWindow.open(map, marker);
}
})(marker, i));

// Automatically center the map fitting all markers on the screen


map.fitBounds(bounds);
}

// Override our map zoom level once our fitBounds function runs (Make sure it only runs
once)
var boundsListener = google.maps.event.addListener((map), 'bounds_changed',
function(event) {
this.setZoom(14);
google.maps.event.removeListener(boundsListener);
});

}
</script>

WEBSCRAPING: PYTHON CODE


$pyscript = "C:\\xampp\\htdocs\\project\\events.py";
$python = "C:\\Python35\\python.exe";
$cmd = "$python $pyscript";
exec("$cmd", $output);
$arrlength = count($output);
$arrayrr[] = $output;
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("eventdb", $con) or die('Could not select database');

XXIII
EZKhoj

for($i=0;$i<$arrlength;$i++)
{
$sql="INSERT INTO crawledevent VALUES('$output[$i]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}

}
// SQL query
$strSQL = "SELECT * FROM crawledevent";
// Execute the query (the recordset $rs contains the result)
$rs = mysql_query($strSQL);
while($row = mysql_fetch_array($rs)) {
$title=$row['Title'];
echo $title. "<hr/>";
}

USER PROFILE
<div class="userprof">
<img src="assets/img/user.jpg" class="img-rounded img-responsive" />
<br />
<?php
// Connect to database server
mysql_connect("localhost", "root", "") or die (mysql_error ());
// Select database
mysql_select_db("user1") or die(mysql_error());
// SQL query
$usernames=$_SESSION['username'];
$strSQL = "SELECT * FROM user where Username= '$usernames'";
\ // Execute the query (the recordset $rs contains the result)
$rs = mysql_query($strSQL);
// Loop the recordset $rs

XXIV
EZKhoj

// Each row will be made into an array ($row) using mysql_fetch_array


while($row = mysql_fetch_array($rs)) {

$username=$row['Username'];
$fullname=$row['Fullname'];
$email=$row['Email'];
}
// Close the database connection
mysql_close();
?>
<label>Registered Username</label><br/>
<?php echo $username; ?><br/>
<label>Registered Name</label><br/>
<?php echo $fullname; ?><br/>
<label>Registered Email</label><br/>
<?php echo $email; ?><br/>
</div>

EVENT UPDATE

<?PHP
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("eventdb", $con) or die('Could not select database');
if ($_POST)
{
$name=$_POST['name'];
$date=$_POST['date'];
XXV
EZKhoj

$venue= $_POST['venue'];
$Organizer=$_POST['Organizer'];
$latitude=$_POST['latitude'];
$longitude=$_POST['longitude'];
$Category=$_POST['Category'];
$eventtype=$_POST['eventtype'];
$sql="INSERT INTO eventlist VALUES
('$name','$date','$venue','$Organizer','$latitude','$longitude','$Category','$eventtype')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);

}
?>
<script type='text/javascript'>
alert('You have successfully updated the event. Thank you! ');
window.location.href='homepage.php';
</script>";

EDIT PROFILE

<?PHP
session_start();
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("user1", $con) or die('Could not select database');
if ($_POST)
XXVI
EZKhoj

{
$fullname=$_POST['Fullname'];
$username=$_POST['Username'];
$email= $_POST['Email'];
$pass=$_POST['Password'];
$sql="UPDATE user SET
Fullname='$fullname',Username='$username',Email='$email',Password='$pass'
where Username='$username'";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);

echo "<script type='text/javascript'>alert('Successfully saved changes.');


window.location.href='userprofile.php';</script>";

?>

XXVII

Вам также может понравиться