Android Suburban Railway Ticketing With Ticket Checker
Android Suburban Railway Ticketing With Ticket Checker
Android Suburban Railway Ticketing With Ticket Checker
Abstract
One of the biggest challenges in the current ticketing facility is QUEUE in
buying our suburban railway tickets. In this fast growing world of technology we
still stand in the queue or buy with oyster & octopus cards for our suburban tickets,
which is more frustrating at times to stand in the queue or if we forget our cards.
User's ticket information is stored in a database for security purpose which is
missing in the present suburban system. Also the ticket checker is provided with a
checker application to search for the user's ticket with the ticket number in the
database for checking purposes. Our ASR ticket can be bought with just a smart
phone application, where you can carry your suburban railway tickets in your
smart phone as a QR (Quick Response) code.
Introduction
In the past few years there were more advancement in the field of technology.
Considering railway department, e-ticket facility was introduced where users
browse through a governmental website and book their long journey railway
tickets which can be printed out after confirmation to show it to the checker when
needed. After which months before a new technology called M-ticketing (Mobile
Ticketing) was introduced where customers messaged to the web portal through
mobile phones after which a complete web page download to the mobile phone
where users can do the same booking process as it was in the e-ticketing facility.
Also in foreign countries the use of Oyster cards & Octopus card has become
mandatory during travel. But we suffer if we forget our travel cards and we stand
in the Queue for our local suburban tickets, which is a place where e-ticketing; mticketing was unable lay their foot prints. Android Suburban Railway (ASR)
ticketing is mainly to buy the suburban tickets which are the most challenging. Our
ASR ticket can be bought with just a smart phone application, where you can carry
your suburban railway tickets in your smart phone as a QR (Quick Response) code.
Project Description
SQLlTE Sqlite is an ACID -compliant embedded Relational Database Management
contained in a small C programming library. SQLite implements most of the SQL
standard, using a dynamically and weakly typed SQL syntax that does not
guarantee the domain integrity. In contrast to other database management systems,
SQLite is not a separate process that is accessed from the client application, but an
integral part of it. SQLite read operations can be multitasked, though writes can
only be performed sequentially. The source code for SQLite is in the public
domain. SQLite is a popular choice for local/client storage on web browsers. It has
many bindings to programming languages. It is arguably the most widely deployed
database engine, as it is used today by several widespread browsers, operating
systems, and embedded systems, among others.
ANDROID CLOUD TO DE VICE MESSAGING FRAMEWORK Android Cloud
to Device Messaging (C2DM) is a service that helps developers sends data from
servers to their applications on Android devices. The service provides a simple,
lightweight mechanism that servers can use to tell mobile applications to contact
the server directly, to fetch updated application or user data. The C2DM service
handles all aspects of queuing of messages and delivery to the target application
running on the target device.
QR CODE A QR code (abbreviated from Quick Response code) is a type of
matrix-barcode (or two-dimensional code) first designed for the automotive
industry. More recently, the system has become popular outside of the industry due
to its fast readability and comparatively large storage capacity.
1.) Personal Information Gathering: The work here starts during the fIrst time
installation of our application . It gathers the basic customer information like fIrst
name, last name, date of birth, city , state etc., and it will be stored into user
mobile's, SQLite database. So every time when the user buys the ticket this
customer information is also sent to the database for security purpose and used also
in the QR generation.
2.) TICKET BUYING: The user selects source, destination, class, no. of Adult and
child tickets, ticket type like return or single etc. then the user browse through the
menu option to choose either credit buy option or token buy which simplifIes the
buy process by remembering the credit card details. Once the user chooses any of
these options the application moves on to the pin code validation module. 3.) PIN
CODE VALIDATION: Once the customer hits the buy button a PHP code in the
railway server validates the pin number and passwords, if it is successful it saves
both the journey details and customer info in the server's MySQL database. After
which ticket number and time of buying is generated by the PHP code and the
balance credit value is displayed.
4.) GENERATING QR CODE: Once the php code generates the ticket number and
time of buy the details saved in the MySQL database are sent to Google Chart API
engine in order to generate the QR code. here all the personal and ticket
information are converted into QR codes and sent back to the userExisting System
One of the biggest challenges in the current ticketing facility is "QUEUE" in
buying our suburban railway tickets. In this fast growing world of technology we
still stand in the queue or buy with oyster & octopus cards for our suburban tickets,
which is more frustrating at times to stand in the queue or if we forget our cards.
Considering railway department, e-ticket facility was introduced where users
browse through a governmental website and book their long journey railway
tickets which can be printed out after confirmation to show it to the checker when
needed.
Disadvantage
1. Ticket buying time was longer and queue in process.
2. Ticket missing is not accepted.
3. More of time spends to the ticket buying.
Proposed System
FEASIBILITY STUDY
Feasibility studies aim to objectively and rationally uncover the strengths
and weaknesses of the existing business or proposed venture, opportunities and
threats as presented by the environment, the resources required to carry through,
and ultimately the prospects for success. In its simplest term, the two criteria to
judge feasibility are cost required and value to be attained. As such, a welldesigned feasibility study should provide a historical background of the business or
project, description of the product or service, accounting statements, details of the
operations and management, marketing research and policies, financial data, legal
requirements and tax obligations. Generally, feasibility studies precede technical
development and project implementation.
Economical Feasibility
This study is carried out to check the economic impact that the system will
have on the organization. The amount of fund that the company can pour into the
research and development of the system is limited. The expenditures must be
justified. Thus the developed system as well within the budget and this was
achieved because most of the technologies used are freely available. Only the
customized products had to be purchased.
Technical Feasibility
Technical feasibility study is carried out to check the technical feasibility,
that is, the technical requirements of the system. Any system developed must not
have a high demand on the available technical resources. This will lead to high
demands on the available technical resources. This will lead to high demands being
placed on the client. The developed system must have a modest requirement, as
only minimal or null changes are required for implementing this system.
Operational Feasibility
The aspect of study is to check the level of acceptance of the system by the
user. This includes the process of training the user to use the system efficiently.
The user must not feel threatened by the system, instead must accept it as a
necessity. The level of acceptance by the users solely depends on the methods that
are employed to educate the user about the system and to make him familiar with
it. His level of confidence must be raised so that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system.
SYSTEM SPECIFICATION
80GB
RAM
1 GB
Mother Board
Speed
3GHZ
Processor
Pentium IV
Device
Smart Phone
Device
Version
Operating System
:
:
Eclipse java.
AVD for Android SDK
Android SDK 2.2 to 4.1.
Windows XP,7
SOFTWARE DESCRIPTION
FRONT END
Android software development
Android SDK
The Android software development kit (SDK) includes a comprehensive set of
development tools. These include a debugger, libraries, a handset emulator based
on QEMU, documentation, sample code, and tutorials. Currently supported
development platforms include computers running Linux (any modern desktop
Linux distribution), Mac OS X 10.5.8 or later, Windows XP or later. The officially
supported integrated development environment (IDE) is Eclipse using the Android
Development Tools (ADT) Plug-in, though Interlay IDEA IDE (all editions) fully
supports Android development out of the box, and Net Beans IDE also supports
Android development via a plug-in. Additionally, developers may use any text
editor to edit Java and XML files, then use command line tools (Java Development
Kit and Apache Ant are required) to create, build and debug Android applications
as well as control attached Android devices (e.g., triggering a reboot, installing
software package(s) remotely).
Enhancements to Android's SDK go hand in hand with the overall Android
platform development. The SDK also supports older versions of the Android
platform in case developers wish to target their applications at older devices.
Development tools are downloadable components, so after one has downloaded the
latest version and platform, older platforms and tools can also be downloaded for
compatibility testing.
Android applications are packaged in .apk format and stored under /data/app folder
on the Android OS (the folder is accessible only to root user for security reasons).
APK package contains .dex files (compiled byte code files called Dalvik
executables), resource files, etc.
Native development kit
Libraries written in C and other languages can be compiled to ARM or x86 native
code and installed using the Android Native Development Kit. Native classes can
be called from Java code running under the Dalvik VM using the
System.loadLibrary call, which is part of the standard Android Java classes.
Complete applications can be compiled and installed using traditional development
tools. The ADB debugger gives a root shell under the Android Emulator which
allows native ARM code or x 86 codes to be uploaded and executed. ARM or x86
code can be compiled using GCC on a standard PC. Running native code is
complicated by Android's use of a non-standard C library (libc, known as Bionic).
The
underlying
graphics
device
is
available
as
frame
buffer
at
Similar to Microsoft Visual Basic 6, Simple programs are form definitions (which
contain components) and code (which contains the program logic). The interaction
between the components and the program logic happens through events triggered
by the components. The program logic consists of event handlers which contain
code reacting to the events.
The Simple project is not very active, the last source code update being in August
2009.
Basic4android
Basic4android is a commercial product similar to Simple. It is inspired by
Microsoft Visual Basic 6 and Microsoft Visual Studio. Basic4android is very
active, and there is a strong online community of Basic4android developers.
Android APIMiner
Android APIMiner is a platform that automatically instruments the Javadoc
documentation of the Android API with examples of usage, extracted from real
open-source Android applications. To improve the quality of the extracted
examples, APIMiner relies on an intra-procedural static slicing algorithm.
Android Developer Challenge
The Android Developer Challenge was a competition for the most innovative
application for Android. Google offered prizes totaling 10 million US dollars,
distributed between ADC I and ADC II. ADC I accepted submissions from 2
January to 14 April 2008. The 50 most promising entries, announced on 12 May
2008, each received a $25,000 award to further development. It ended in early
September with the announcement of ten teams that received $275,000 each, and
ten teams that received $100,000 each. ADC II was announced on 27 May 2009.
The first round of the ADC II closed on 6 October 2009.The first-round winners of
ADC II comprising the top 200 applications were announced on 5 November 2009.
Voting for the second round also opened on the same day and ended on November
25. Google announced the top winners of ADC II on November 30, with Sweet
Dreams, What the Doodle!? and Wave Secure being nominated the overall winners
of the challenge.
Community-based firmware
There is a community of open-source enthusiasts that build and share Androidbased firmware with a number of customizations and additional features, such as
FLAC lossless audio support and the ability to store downloaded applications on
the micros card. This usually involves rooting the device. Rooting allows users
root access to the operating system, enabling full control of the phone. In order to
use custom firm wares the device's boot loader must be unlocked. Rooting alone
does not allow the flashing of custom firmware. Modified firmwares allow users of
older phones to use applications available only on newer releases.
Those firmware packages are updated frequently, incorporate elements of Android
functionality that haven't yet been officially released within a carrier-sanctioned
firmware, and tend to have fewer limitations. CyanogenMod and OMFGB are
examples of such firmware.
On 24 September 2009, Google issued a cease and desist letter to the Modder
Cyanogens, citing issues with the re-distribution of Google's closed-source
applications within the custom firmware. Even though most of Android OS is open
source, phones come packaged with closed-source Google applications for
functionality such as the Android Market and GPS navigation. Google has asserted
that these applications can only be provided through approved distribution
channels by licensed distributors. Cyanogen has complied with Googles wishes
and is continuing to distribute this mod without the proprietary software. He has
provided a method to back up licensed Google applications during the mods install
process and restore them when it is complete.
Eclipse (software)
Eclipse is a multi-language software development environment comprising an
integrated development environment (IDE) and an extensible plug-in system. It is
written mostly in Java. It can be used to develop applications in Java and, by
means of various plug-ins, other programming languages including Ada, C, C++,
COBOL, Fortran, Haskell, Perl, PHP, Python, R, Ruby (including Ruby on Rails
framework), Scala, Clojure, Groovy, and Scheme. It can also be used to develop
packages for the software Mathematica. Development environments include the
Eclipse Java development tools (JDT) for Java, Eclipse CDT for C/C++ and
Eclipse PDT for PHP, among others.
The initial codebase originated from IBM VisualAge. The Eclipse SDK (which
includes the Java development tools) is meant for Java developers. Users can
extend its abilities by installing plug-ins written for the Eclipse Platform, such as
development toolkits for other programming languages, and can write and
contribute their own plug-in modules.Released under the terms of the Eclipse
Public License, Eclipse SDK is free and open source software (although it is
incompatible with the GNU General Public License). It was one of the first IDEs to
run under GNU Classpath and it runs without problems under Iced Tea.
Modules
1.
2.
3.
4.
5.
and customer info in the server's MySQL database. After which ticket number and
time of buying is generated by the PHP code and the balance credit value is
displayed.
GENERATING QR CODE
Once the php code generates the ticket number and time of buy the details saved
in the MySQL database are sent to Google Chart API engine in order to generate
the QR code. here all the personal and ticket information are converted into QR
codes and sent back to the user mobile as HTTP response and saved in the
application memory.
CHECKING QR CODE WITH QR READER
In this module the checker will have QR Code reader and scan the QR code with
the application in order to validate QR code and verify the journey details,
especially the time and date of the ticket.
CHECKING WITH DATABASE
If suppose the user's display is being damaged and not able to scan the QR code
due to other reasons like battery failure, we have Another failsafe option to check
the ticket by searching the ticket database with the user's ticket number for
validation purposes.
Architecture Diagram
User Info
Journey Details
Sqlite
Buying Tickets
MYSQL
Railway
Mobile
Personal Info
Sqlite DB
Detail View
Ticket routing
Route Details
Ticket routing
Ticket Buying
Pin Valid
My Sql DB
QR Code
LEVEL 2
Ticket Checker
Scanning
USER TICKET
Camera scan
TICKET CODE
Searching
MY SQO DB
Ticket Valid
Use Case
USER
Name
Personal info
DOB
Phone
Address
Source
Route
Designation
Route
Type
Personal Info
Ticket
Route
Pin Validate
QR Code
Checker
Scanning
Ticket Check
Searching
Pin Validate
QR Code
Class Diagram
PERSONAL INFO:
NAME:
DOB:
PH:
Add:
ROUTE:
Source:
Designation:
Route:
Ticket:
TICKET BUY:
PERSONAL INFO:
Route:
PINVALID:
QRCODE
TICKET
CHECKER:
QRCODE:
SEARCH:
VALID
Data Value
User Name
varchar(text)
Password
varchar(text)
Conform password
varchar(text)
Phone number
number
Address
varchar(text)
TICKET TABLE
Field Name
Route
Amount
No of ticket
Way
Data value
varchar(text)
number
number
varchar(text)
INPUT DESIGN
The input design, user-oriented inputs are converted into a computer based
system format. It also includes determining the record media, method of input,
speed of capture and entry on to the screen. Online data entry accepts commands
and data through a keyboard. The major approach to input design is the menu and
the prompt design. In each alternative, the users options are predefined. The data
flow diagram indicates logical data flow, data stores, source and destination. Input
data are collected and organized into a group of similar data. Once identified input
media are selected for processing.
Also the important input format is designed in such a way that accidental
errors are avoided. The user has to input only just the minimum data required,
which also helps in avoiding the errors that the users may make. Accurate
designing of the input format is very important in developing efficient software.
The goal or input design is to make entry as easy, logical and free from errors.
OUTPUT DESIGN
The output design, the emphasis is on producing a hard copy of the
information requested or displaying the output on the CRT screen in a
predetermined format. Two of the most output media today are printers and the
screen. Most users now access their reports from a hard copy or screen display.
Computers output is the most important and direct source of information to the
user, efficient, logical, output design should improve the systems relations with the
user and help in decision-making.
As the outputs are the most important source of information to the user,
better design should improve the systems relation and also should help in
decision-making. The output devices capability, print capability, print capability,
response time requirements etc should also be considered form design elaborates
the way output is presented and layout available for capturing information. Its
very helpful to produce the clear, accurate and speedy information for end users.
Future Work
The main future work for this project payment details for the research. The
payment need user to account and pin number. But our future mobile user network
to buy the cost of ticket. We improve security for ticket buying. The encryption
based ticket information verify for all the times.
Conclusion
In our proposed system easily book a local train ticket easily through mobile
devices . This kind of ticketing application can be applied to railway Transport
service. Our android app is one of its kinds and finds huge application to buy suburban railway tickets through android mobile.
Reference
I] Damon Oehlman and Sebastien Blanc ( 20II )" Pro Android Web Apps
develop
for
Android
using
HTML5,CSS3
&JavaScript
"-Apress
Publications.
[2] Dave Smith and Jeff Friesen's (2011)" Android Recipes A Problem
Solution Approach" - Apress Publications.
[3] Jeff" JavaJeff" Friesen's (2010) "LearnJavafor Android Development" Apress Publications.
SAMPLE CODE
TICKET CODE
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="94dp"
android:src="@drawable/q1" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="74dp"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView1"
android:layout_marginLeft="16dp"
android:layout_marginTop="26dp"
android:layout_toLeftOf="@+id/textView3"
android:text="ID" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView2"
android:layout_alignBottom="@+id/textView2"
android:layout_alignLeft="@+id/imageView1"
android:layout_alignParentRight="true"
android:text="" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView2"
android:layout_marginTop="25dp"
android:text="TKCode" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView4"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/textView2"
android:text="" />
<Button
android:id="@+id/btnSMS"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="SMS" />
</RelativeLayout>
package com.example.ticket;
import java.util.Random;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
TextView name,age,gender,way1,tcode;
Bundle b = getIntent().getExtras();
SharedPreferences prefer=getSharedPreferences("text", 0);
no=prefer.getString("AVAV", "");
imgV=(ImageView) findViewById(R.id.imageView1);
name1=getIntent().getExtras().getString("name");
age2=getIntent().getExtras().getString("age");
gen1=getIntent().getExtras().getString("gender");
way=getIntent().getExtras().getString("way");
name.setText(name1);
hotdb vv=new hotdb(this);
vv.open();
cde = (int) rnd.nextInt(1230)+5;
if(name1.equals("Gundy To Tambaram"))
{
imgV.setImageResource(R.drawable.q1);
age.setText("5442");
tcode.setText(String.valueOf(cde));
btnCode.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent
VIntent=new
Intent(getApplicationContext(),SendSMS.class);
Bundle bi = new Bundle();
//Inserts a String value into the mapping of this Bundle
bi.putString("name", name1.toString());
bi.putString("age", age2.toString());
bi.putString("gender", gen1.toString());
bi.putString("way", way.toString());
bi.putString("phno", no.toString());
//Add the bundle to the intent.
VIntent.putExtras(bi);
startActivity(VIntent);
}
});
}
}