0% found this document useful (0 votes)
114 views23 pages

1.1 Motivation: 1.2 Problem Statement

The document provides an introduction and overview of the Embassy Portal website. It discusses how the portal allows individuals to view documentation requirements for visa processing by filling out a universal form. Registered users can apply for visas, check the status of applications, and verify if a company offering a work visa is registered. The motivation for developing the system is to automate the manual visa processing system and make it more efficient and accurate.

Uploaded by

zakeermas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
114 views23 pages

1.1 Motivation: 1.2 Problem Statement

The document provides an introduction and overview of the Embassy Portal website. It discusses how the portal allows individuals to view documentation requirements for visa processing by filling out a universal form. Registered users can apply for visas, check the status of applications, and verify if a company offering a work visa is registered. The motivation for developing the system is to automate the manual visa processing system and make it more efficient and accurate.

Uploaded by

zakeermas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 23

CHAPTER 1

INTRODUCTION

Embassy portal is a website where we can contact embassies of various countries. The
advantages of this site are that simply by filling out on universal form, individual can view
the details of the documentation, which are required for visa processing.

Registered user can apply for different visas following the procedures mentioned in the site.
Even the registered users can check whether the company that has offered the user a working
visa a registered company or not, Once the user has filled the visa application and paid the
visa fee, the user can check status of the visa application

1.1 MOTIVATION

The motivation of Embassy portal System is to help the organization in automating


the whole manual processing of the existing system.
The main motivation to develop the system is to make the accurate & efficient
decisions in different tasks at different time at different situations. The existing
system is manual so members of the unit generally face a lot of embarrassing
situations many times. Now they need to automate the whole process so as to make it
more easy and accurate.
System should support multi-user environment.
System should be fully automated.
System should provide concrete security features like creating users and assigning
privileges to users of the system.
System should be capable to keep track of all the detailed descriptions of the client
and the whole details of services offered by the client organization.
Various outputs (reports) should be available online any time.
System should be able to handle extremely large volumes of data (i.e. Large database
support)
1.2 Problem Statement
The following problem statement briefly defines the boundaries and environment of
this project:

The Development of a web application which has the capability of using the
concepts of augmented reality to submerge the virtual information of users
surroundings by detecting and tracking users infromation.

1.3 Overview of the project

Embassy portal is a website where we can contact embassies of various countries. The
advantages of this site are that simply by filling out on universal form, individual can view
the details of the documentation, which are required for visa processing.

1.4 Application Overview


In our application, we have used an Apache Server with PHP & MySQL support for
remote database use. The data transaction from or to the database occurs with the help
of PHP scripts and in the form of JSON objects. Public users can apply for visa and
passport informations. Embassy allocates passport and visas to applicants.
Companys can post job information in this portal so that embassy can verify the job
visas
CHAPTER 2

SOFTWARE DEVELOPMENT TOOLS


PHP:
Since the Internet is packed with millions of acronyms, PHP is another one!
PHP stands for PHP: Hypertext Preprocessor. Yes, the acronym is recursive and for the
purposes of this class, we will just call it PHP.

PHP is a server-side scripting language and is very similar to C, Java, and


Perl. PHP allows the Programmer to dynamically generate content, instead of statically like
regular ol HTML. This tutorial will cover uses of PHP from simple data processing of
forms to parsing a page for relevant information.

PHP Hosts:

Free webhosting services with PHP exist, but a function like sending e-mail is
probably disabled. Stanford (fortunately) provides limited PHP support sufficient enough for
the scope of this course

Introduction to PHP: WHY PHP?

Currently the main alternatives to PHP are

ASP Active Server Pages

JSP Java Server Pages

CFML Cold Fusion Markup Language

ASP is proprietary belonging to Microsoft and requires MS server in order to


run. ASP allows you to combine HTML, Vbscript, JavaScript and reusable Active X
components to create dynamic web pages. ASP is costly to implement due to the reliance on
MS products. It is slower to execute than PHP, ASP has a steeper learning curve especially
for first time web developers. ASP can run on a Linux server using Apache and Chill soft
ASP but is generally limited to Windows 2000 servers.
JSP has both commercial and open source versions. JSP is not very popular
with Internet service providers and they usually charge an additional fee for this service. JSP
is more difficult to learn, however the syntax is similar to PHP & JavaScript. There are
different versions of JSP that vary in speed, stability and quality.

ColdFusion MX is a proprietary technology belonging to Macromedia. It is


tag based like HTML so it is easy to learn. Because it is similar to HTML it can sometimes be
difficult to identify server side code from client side code.

PHP is free, nonproprietary and more than 6 million web sites use PHP. It is
the second most popular scripting language and its use is growing faster than any other
scripting language. Based on search engine popularity PHPs growth per year is 4694%
compared to ASP growth of 278%.

PHP is available on approx 40% of all Apache Servers. PHP is suited to


development of ecommerce sites and a wide range of database connectivity. PHP runs on
UNIX, Windows and Mac platforms. PHP can also be used to create shockwave, PDF files
and parse XML. PHP was developed so it could be to inserted directly into HTML
documents.

Embedding PHP into HTML includes:

1) Quicker response time

2) Improved security

3) Transparency to the end user

PHP language syntax is borrowed from C with elements of Perl, C++ and Java.
PHP is also integrates easily with MySQL which is a free non-proprietary database.
MySQL can be used to create large powerful databases and because it is free is often
favored by non-profit organizations.

Introduction to PHP4:

PHP is a server side HTML embedded scripting language that allows you to
make web sites dynamic, connect to databases, process forms and adds many other features to
your web site.
Before you create web pages with PHP you need to the following items:

1) Install a server on your computer e.g. Microsoft IIs, Apache or Omnipro

2) Download, install and configure PHP (its free)

3) You will require an Internet account that supports PHP

4) If you plan to work with MySQL you ISP will need to offer this feature (MySQL is free,
but MySQL hosting usually is not) you can test your database locally

Since MS IIs server comes with Windows OS, we will be using this server, you can use any
server but each server requires its own setup and configuration. Also if you put more than one
server on your computer make sure they are not running simultaneously. On a good day
server installation and PHP installation takes about 15 minutes. On a bad day it can take quite
a bit longer.

Steps:

1) Install MS IIs as directed find the folder Inetpub\wwwroot and place a simple html file
into the folder with a message for testing. Make sure its on. Control panel>Administrative
tools>Personal web server. You may wish to make a shortcut to the file on your desktop.

<Html>

<Head>

<Title>Test</title>

<Body>

<Center><h1>your server is working</h1></center>

</body>

</html>

Save the file in the folder Inetpub/wwwroot and name it test.html

Open your browser and load the file by typing in:

http://localhost/test.html
c:\Inetpub\wwwroot\test.html

http:// 192.168.1.103/test.html

2) Go to www.php.net>downloads>find or the latest version of PHP and download PHP 4.3.4


installer [1,043Kb] (CGI only, MySQL support built-in, packaged as Windows installer to
install and configure PHP, and automatically configure IIS, PWS and Xitami, with manual
configuration for other servers. N.B. no external extensions included) you should turn the IIs
server off before installing, and then turn back on after you installed PHP.

3) Test whether or not PHP is working creates a small file and save it inside the www root
folder inside Inetpub.

Use Note page create the PHP test file

<? Php

Phpinfo ();

?>

Save as test.php or phpinfo.php then using your browser: type in the


URLhttp://localhost/php.info ();

If PHP is working you will see a screen with PHP version 4.3 and all of its
features if you dont, check that the server is on, uninstall and install PHP again.

4) Finally you need to configure the php.ini file stored in your c:\WINNT folder go to this
folder and select show all files>view as a list (not your WINNT folder may be on a drive
other than C :\). Double click on the php.ini file or load the file into notepad. This file
configures php and its settings. You should read it at least once to know what is in there but
to start you need to modify 3 settings on your computer. Use Notepad find feature to locate
these lines of code.

a) Cgi.force_redirect=0; (set to 0 i.e. false is required to work on IIs)


b) Error reporting = E_ALL change to

Error reporting = E_ALL &~ (E_NOTICE | E_USER_NOTICE);

If you dont do this when you create forms you will get undefined variable errors

c) Register_globals = On

(or = 1) you will read this is a security risk, which is true if you used your machine for
a server on the Internet but if you are only using if for testing dont worry. You need to do
this so you dont get undefined variables with forms).

We will download, install and configure MySQL at a later time.

Another possible problem that could arise on some machines is that you must
turn the file permission for www.root file on. Right click on the folder>properties> make sure
the file sharing is turned on.

On some machines at SAIT the IIS files are on the machine inside I386 folder.
Also make sure if Apache is on the machine it is turned off.

The following are some advantages of using someone elses Web environment:

Its easier than setting up your own: You just copy your Web pages onto the other
partys computer, and thats it. You dont need to install any software or hardware or
resolve any computer problems. Someone else handles that for you.
Less technical skill is required: You need to understand only Web languages, such
as HTML and PHP. You dont need to know about Internet connections, Web
servers, computer administration, and other technical things. Some people are very
interested in these things, but some are not.

The advantages of running your own Web environment are as follows:

Control: You get to make all the decisions. You can set up the Web environment the
way that works best for you.
Access: You can access the computer whenever you want to work on your Web site.
Stability: You know the Web site will be there as long as you need it. You wont
wake up one morning to discover that your Web hosting company has gone out of
business and you have two days to move your site.
Security: Because you control the Web environment, you are the only person who
needs to access the computer. You can keep it under lock and key. When you use a
Web hosting company, other people have access to the computer, and one of them
may be a bad guy whos after your secrets.

PHP has many features designed specifically for use in Web sites, including the
following:

Interact with HTML forms: PHP can display an HTML form and process the
information that the user types in.
Communicate with databases: PHP can interact with databases to store information
from the user or retrieve information that is displayed to the user.
Generate secure Web pages: PHP allows the developer to create secure Web pages
that require users to enter a valid username and password before seeing the Web page
content.
PHP features make these and many other Web page tasks easy. PHP is only
server-side, meaning it cant interact directly with the users computer. That means PHP cant
initiate actions based on the status of the users computer, such as mouse actions or screen
size. Therefore, PHP alone cant produce some popular effects, such as navigation menus that
drop down or change color. On the other hand, JavaScript, a client-side scripting language,
cant access the server, limiting its possibilities. For example, you cant use JavaScript to
store data on the server or retrieve data from the server. But wait! You dont have to choose.
You can use JavaScript and PHP together to produce Web pages that neither can produce
alone. See Chapter 11 for details on using JavaScript and PHP together.

5.2. HTML:

HTML, which stands for Hypertext Markup Language, is the predominant


markup language for web pages. HTML is the basic building-blocks of webpage.
HTML is written in the form of HTML elements consisting of tags, enclosed in
angle brackets (like <html>), within the web page content. HTML tags normally come in
pairs like <h1> and </h1>. The first tag in a pair is the start tag, the second tag is the end tag
(they are also called opening tags and closing tags).

The purpose of a web browser is to read HTML documents and compose them
into visual or audible web pages. The browser does not display the HTML tags, but uses the
tags to interpret the content of the page.

HTML elements form the building blocks of all websites. HTML allows
images and objects to be embedded and can be used to create interactive forms. It provides a
means to create structured documents by denoting structural semantics for text such as
headings, paragraphs, lists, links, quotes and other items. It can embed scripts in languages
such as JavaScript which affect the behavior of HTML WebPages.

Web browsers can also refer to Cascading Style Sheets (CSS) to define the
appearance and layout of text and other material. The W3C, maintainer of both the HTML
and the CSS standards, encourages the use of CSS over explicitly presentational HTML
markup.

MARKUP:

HTML markup consists of several key components, including elements (and


their attributes), character-based data types, character references and entity references.
Another important component is the document type declaration, which triggers standards
mode rendering.

The Hello world program, a common computer program employed for


comparing programming languages, scripting languages and markup languages is made of 9
lines of code although in HTML newlines are optional:

Example:

<! doctype html>

<Html>

<Head>
<Title>Hello HTML</title>

</head>

<Body>

<p>Hello World! </p>

</body>

</html>

5.3. MYSQL:

MySQL is a relational database management system (RDBMS that runs as a


server providing multi-user access to a number of databases. MySQL is officially pronounced
("My S-Q-L"), but is often also pronounced ("My Sequel"). It is named after developer
Michael Widenius daughter, my. The SQL phrase stands for Structured Query Language.

The MySQL development project has made its source code available under the
terms of the GNU General Public License, as well as under a variety of proprietary
agreements. MySQL was owned and sponsored by a single for-profit firm, the Swedish
company MySQL AB, now owned by Oracle Corporation.

Free-software projects that require a full-featured database management


system often use MySQL. For commercial use, several paid editions are available, and offer
additional functionality. Some free software project examples: Joomla, Word Press, MyBB,
phpBB, Drupal and other software built on the LAMP software stack. MySQL is also used in
many high-profile, large-scale World Wide Web products, including Wikipedia, Google
(though not for searches) and Face book.

USE:

MySQL is a popular choice of database for use in web applications, and is a


central component of the widely used LAMP web application software stackLAMP is an
acronym for "Linux, Apache, MySQL, and Perl/PHP/Python".
PLATFORMS AND INTERFACES:

MySQL is written in C and C++. Its SQL parser is written in yacc, and a
home-brewed lexical analyzer named sql_lex.cc.

MySQL works on many different system platforms, including AIX, BSDi,


FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, Mac OS X, Microsoft Windows,
NetBSD, Novell NetWare, OpenBSD, Open Solaris, OS/2 Warp, QNX, Solaris, Symbian,
SunOS, SCO Open Server, SCO UnixWare, Sanos and Tru64. A port of MySQL to
OpenVMS also exists.

Many programming languages with language-specific APIs include libraries for


accessing MySQL databases. These include MySQL Connector/Net for integration with
Microsoft's Visual Studio (languages such as C# and VB are most commonly used) and the
ODBC driver for Java. In addition, an ODBC interface called MyODBC allows additional
programming languages that support the ODBC interface to communicate with a MySQL
database, such as ASP or ColdFusion.

The HTSQL - URL based query method also ships with a MySQL adapter,
allowing direct interaction between a MySQL database and any web client via structured
URLs. The MySQL server and official libraries are mostly implemented in ANSI C/ANSI
C++.

Fig: MYSQL

DEPLOYMENT:

MySQL can be built and installed manually from source code, but this can be
tedious so it is more commonly installed from a binary package unless special customizations
are required. On most Linux distributions the package management system can download and
install MySQL with minimal effort, though further configuration is often required to adjust
security and optimization settings.

Though MySQL began as a low-end alternative to more powerful proprietary


databases, it has gradually evolved to support higher-scale needs as well. It is still most
commonly used in small to medium scale single-server deployments, either as a component
in a LAMP based web application or as a standalone database server. Much of MySQL's
appeal originates in its relative simplicity and ease of use, which is enabled by an ecosystem
of open source tools such as phpMyAdmin.

In the medium range, MySQL can be scaled by deploying it on more powerful


hardware, such as a multi-processor server with gigabytes of memory. There are however
limits to how far performance can scale on a single server, so on larger scales, and multi-
server MySQL deployments are required to provide improved performance and reliability. A
typical high-end configuration can include a powerful master database which handles data
write operations and is replicated to multiple slaves that handle all read operations.

The master server synchronizes continually with its slaves so in the event of
failure a slave can be promoted to become the new master, minimizing downtime. Further
improvements in performance can be achieved by caching the results from database queries
in memory using memcached, or breaking down a database into smaller chunks called shards
which can be spread across a number of distributed server clusters.

COMMAND LINE:

MySQL ships with a suite of command-line tools for tasks such as querying the
database, backing up data, inspecting status, performing common tasks such as creating a
database, and many more. A variety of third-party command-line tools is also available,
including Maatkit, which is written in Perl.

FORKS OF MYSQL:

Drizzle a fork targeted at the web-infrastructure and cloud computing markets. The
developers of the product describe it as a "smaller, slimmer and (hopefully) faster version of
MySQL". As such is planned to have many common MySQL features stripped out, including
stored procedures, query cache, prepared statements, views, and triggers.
MariaDB a community-developed branch of the MySQL database, the impetus being the
community maintenance of its free status under GPL as opposed to any uncertainty of
MySQL license status under its current ownership by Oracle. The intent also being to
maintain high fidelity with MySQL, ensuring a "drop-in" replacement capability with library
binary equivalency and exacting matching with MySQL APIs and commands. It includes the
XtraDB storage engine as a replacement for InnoDB.
Percona Server a fork that includes the XtraDB storage engine. It is an enhanced version of
MySQL that is fully compatible, and deviates as little as possible from it, while still providing
beneficial new features, better performance, and improved instrumentation for analysis of
performance and usage.
Our Delta is best characterized as a source of binaries compiled with various patches,
including patches from MariaDB, Percona, and Google.

Solution Stack In computing, a solution stack is a set of software subsystems or


components needed to deliver a fully functional solution, e.g. a product or service.

MySQL

[1]
MySQL is a relational database management system (RDBMS) that runs as a server
providing multi-user access to a number of databases. MySQL is a popular choice of database
for use in web applications and is an open source product. The process of setting up a
MySQL database varies from host to host, however we will end up with a database name, a
user name and a password. Before using our database, we must create a table. A table is a
section of the database for storing related information. In a table we will set up the different
fields which will be used in that table. Creating a table in phpMyAdmin is simple, we just
type the name, select the number of fields and click the go button. we will then be taken to a
setup screen where you must create the fields for the database.Another way of creating
databases and tables in phpMyAdmin is by executing simple SQL statements.We have used
this method in order to create our database and tables.

Apache

The Apache HTTP Server is a web server software notable for playing a key role in the initial
growth of the World Wide Web. In 2009 it became the first web server software to surpass
the 100 million web site milestone. Apache is developed and maintained by an open
community of developers under the auspices of the Apache Software Foundation. Since April
1996 Apache has been the most popular HTTP server software in use. As of November 2010
Apache served over 59.36% of all websites and over 66.56% of the first one million busiest
websites.

XAMPP

XAMPP is a small and light Apache distribution containing the most common web
development technologies in a single package. Its contents, small size, and portability make it
the ideal tool for students developing and testing applications in PHP and MySQL. XAMPP
is available as a free download in two specific packages: full and lite. While the full package
download provides a wide array of development tools, XAMPP Lite contains the necessary
technologies that meet the Ontario Skills Competition standards.The light version is a small
package containing Apache HTTP Server, PHP, MySQL, phpMyAdmin, Openssl, and
SQLite.

CHAPTER 3

SOFTWARE REQUIREMENT SPECIFICATION

Software Requirement Specification (SRS) is the starting point of the software


development activity. It is a complete description of the behavior of a system which is to be
developed. The SRS document enlists all necessary requirements for project development. To
derive the requirements we need to have clear and thorough understanding of the product
which is to be developed. This is prepared after detailed communication with project team
and the customer.
A SRS is a comprehensive description of the intended purpose and environment
for software under development. The SRS fully describes what the software will do and how
it will be expected to perform.

An SRS minimizes the time and effort required by developers to achieve desired goals and
also minimizes the development cost. A good SRS defines how an application will interact
with system hardware, other programs and human users in a wide variety of real-world
situations.

Characteristics of SRS:

Correct - An SRS is correct if, and only if, every requirement stated therein is one
that the software shall meet. Traceability makes this procedure easier and less prone
to error.
Unambiguous - An SRS is unambiguous if, and only if, every requirement stated
therein has only one interpretation. As a minimum, this requires that each
characteristic of the final product be described using a single unique term.
Verifiable It is verifiable if there exists some finite cost-effective process with
which a person or machine check whether software product meets requirements.
Consistent - Consistency refers to internal consistency. If an SRS does not agree with
some higher-level document, such as a system requirements specification, then it is
not correct. An SRS is internally consistent if, and only if, no subset of individual
requirements described in it conflict.
Modifiable SRS is said to be modifiable if its structure and style are such that any
changes to the requirements can be made easily, completely and consistently while
retaining the structure and style.
Traceable SRS is said to be traceable if the origin of each of its requirements is
clear and it facilitates the referencing of each requirement in future enhancement.
Ranked for importance or stability SRS is ranked for importance or stability if
each requirement in it has an identifier to indicate either the importance or stability of
that particular requirement.
NON FUNCTIONAL REQUIREMENTS

Performance Requirements:

Application must respond within 5 seconds excluding GPS enabling time. The user must use
the required option to get the information of the various locations.The application will prompt
the user for upgrading and downloading new features updated by the developer

SYSTEM REQUIREMENTS
Hardware

Any Android Enabled Handheld


Android OS Version : Gingerbread & Above

Software

Server Side : Web Server Apache 1.2, Apache 2.x


Server Side : Database Server MySQL 4.1 or higher
Server Side : PHP PHP 4.4.0 or higher (5.2 recommended)
Client End : Android Studio

CHAPTER 4

SYSTEM DESIGN

System design is the solution to the creation of a new system. This phase is composed of
several systems. This phase focuses on the detailed implementation of the feasible system. It
emphasis on translating design specifications to performance specification is system design.
System design has two phases of development logical and physical design.
During logical design phase the analyst describes inputs (sources), outputs (destinations),
databases (data stores) and procedures (data flows) all in a format that meats the uses
requirements. The analyst also specifies the user needs and at a level that virtually determines
the information flow into and out of the system and the data resources. Here the logical
design is done through data flow diagrams and database design.

The physical design is followed by physical design or coding. Physical design produces the
working system by defining the design specifications, which tell the programmers exactly
what the candidate system must do.

The programmers write the necessary programs that accept input from the user, perform necessary
processing on accepted data through call and produce the required report on a hard copy or display it
on the screen.

SYSTEM ARCHITECTURE

Architectural Design:

3-Tier architecture is also called layered architecture. Some people called it n-tier
architecture. Layer architectures are essentially objects and work in object oriented
environment. 3-tier architecture is a very well-known architecture in the world of software
development, it doesn't matter whether you are developing web based application or desktop
based, it is the best architecture to use.

3-Tier architecture consists of


1) UI or Presentation Layer
2) Business Access Layer or Business Logic Layer
3) Data Access Layer

Presentation Layer:
Presentation layer consists of pages like .java or desktop based form where data is presented
to users or getting input from users.

Business Logic layer or Business Access Layer

Business logic layer contains all of the business logic. Its responsibility is to validate the
business rules of the component and communicating with the Data Access Layer. Business
Logic Layer is the class in which we write functions that get data from Presentation Layer
and send that data to database through Data Access Layer.

Data Access Layer:

Data Access Layer is also the class that contains methods to enable business logic layer to
connect the data and perform desired actions. These desired actions can be selecting,
inserting, updating and deleting the data. DAL accepts the data from BAL and sends it to the
database or DAL gets the data from the database and sends it to the business layer. In short,
its responsibility is to communicate with the backend structure.

DATA FLOW DIAGRAM

DFD Level 0

EMBASSY
User PORTAL Send reply User
Send Request
0

DFD Level 1
Create
Registartion
User Send request 0.1 Processed request
reply Send reply to user
0.2

Send user request

Embassy
portal
visa info
0.4
visa processing
0.3

visa management

User info

Visa
processing
0.4.2
Admin Send request Embassy
portal
0.4.1
course details

Visa Fees
0.4.3

visa details

Certificate info
Certificate
Attestation
0.4.4

user details

ER Diagram
Password user name mobile visa type address

certificate

Visa and certifcate


Adminstrator Manages attestation

email

Applies fo

User

CHAPTER 5
IMPLEMENTATION AND CODING

CHAPTER 6
SCREENSHOTS

CHAPTER 7
CONCLUSION
Embassy portal is a website where we can contact embassies of various countries. The
advantages of this site are that simply by filling out on universal form, individual can view the
details of the documentation, which are required for visa processing.

Registered user can apply for different visas following the procedures mentioned in the site.
Even the registered users can check whether the company that has offered the user a
working visa a registered company or not, Once the user has filled the visa application and
paid the visa fee, the user can check status of the visa application

You might also like