Urvashi Project
Urvashi Project
PROJECT REPORT
on
‘RAILWAY RESERVATION SYSTEM’
SUBMITTED BY: -
NAME : Urvashi Raina
CLASS : XII-B ROLL.NO: …………….
UNDER THE GUIDANCE OF: Ms.RITA SEGAN
1
CERTIFICATE
………………………… ……………………………..
Signature of Student Signature of Teacher
2
TABLE OF CONTENTS [ T O C ]
01 ACKNOWLEDGEMENT
02 INTRODUCTION
04 PROPOSED SYSTEM
07 FLOW CHART
08 SOURCE CODE
09 OUTPUT
10 TESTING
12 BIBLIOGRAPHY
3
ACKNOWLEDGEMENT
4
academician The vice Principal, SHANTI GYAN NIKETAN SR.
SEC PUBLIC SCHOOL, for constant encouragement and the
guidance provided during this project
5
INTRODUCTION
6
OBJECTIVES OF THE PROJECT
projects.
in computer science.
7
PROPOSED SYSTEM
keep pace with time, to bring about the best result without
of the computer.
8
This prevents a lot of time and money. The work
9
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
10
phases, or initiation, concept-development, and planning
phases. End users of the system under development should
be involved in reviewing the output of each phase to ensure
the system is being built to deliver the needed functionality.
INITIATION PHASE
11
need is documented in a Concept Proposal. The
Concept Proposal includes information about the
business process and the relationship to the
Agency/Organization.
⦁ Infrastructure and the Strategic Plan. A successful
Concept Proposal results in a Project Management
Charter which outlines the authority of the project
manager to beginthe project.
12
Agency/Organization Program Leadership and the
Agency/Organization CIO.
13
evaluate technology to support the business process.
The System Boundary Document serves as an important
reference document to support the Information
Technology Project Request (ITPR) process.
⦁ The ITPR must be approved by the State CIO before the
project can move forward.
PLANNING PHASE
14
depth and formality of project plans should be commensurate with
the characteristics and risks of a given project. Project plans refine
the information gathered during the initiation phase by further
identifying the specific activities and resources required to
complete a project.
A critical part of a project manager’ sjob is to coordinate
discussions between user, audit, security, design, development,
and network personnel to identify and document as many
functional, security, and network requirements as possible. During
this phase, a plan is developed that documents the approach to be
used and includes a discussion of methods, tools, tasks,
resources, project schedules, and user input. Personnel
assignments, costs, project schedule, and target dates are
established.
A Project Management Plan is created with components
related to acquisition planning, configuration management
planning, quality assurance planning, concept of operations,
system security, verification and validation, and systems
engineering management planning.
REQUIREMENTS ANALYSIS PHASE
15
need to be measurable, testable, and relate to the business
need or opportunity identified in the Initiation Phase. The
requirements that will be used to determine acceptance of the
system are captured in the Test and Evaluation MasterPlan.
DESIGN PHASE
16
various ways. Using a top-down approach, designers first
identify and link majorprogram components and interfaces,
then expand design layouts as they identify and link smaller
subsystems and connections. Using a bottom-up approach,
designers first identify and link minor program components
and interfaces, then expand design layouts as they identify
and link larger systems and connections. Contemporary
design techniques often use prototyping tools that build
mock-up designs of items such as application screens,
database layouts, and system architectures. End users,
designers, developers, database managers, and network
administrators should review and refine the prototyped
designs in an iterative process until they agree on an
acceptable design. Audit, security, and quality assurance
personnel should be involved in the review and approval
process. During this phase, the system is designed to satisfy
the functional requirements identified in the previous phase.
Since problems in the design phase could be very expensive
to solve in the later stage of the software development, a
variety of elements are considered in the design to mitigate
risk. These include:
17
⦁ Determining the operating environment.
⦁ Defining major subsystems and their inputs and
outputs.
⦁ Allocating processes to resources.
⦁ Preparing detailed logic specifications for each software
module. The result is a draft System Design Document
which captures the preliminary design for the system.
⦁ Everything requiring user input or approval is
documented and reviewed by the user. Once these
documents have been approved by the Agency CIO and
Business Sponsor, the final System Design Document is
created to serve as the Critical/Detailed Design for the
system.
⦁ This document receives a rigorous review byAgency
technical and functional representatives to ensure that it
satisfies the business requirements. Concurrent with
the development of the system design, the Agency
Project Manager begins development of the
Implementation Plan, Operations and Maintenance
Manual, and the Training Plan.
DEVELOPMENT PHASE
18
specifications into executable programs. Effective
development standards include requirements that
programmers and other project participants discuss
design specifications before programming begins. The
procedures help ensure programmers clearly understand
program designs and functional requirements.
Programmers use various techniques to develop computer
programs. The large transaction oriented programs
associated with financial institutions have traditionally
been developed using procedural programming
techniques. Procedural programming involves the line-by-
line scripting of logical instructions that are combined to
form a program. Effective completion of the previous
stages is a key factor in the success of the Development
phase. The Development phase consists of:
19
requirements, as defined in the functional requirements
document, are satisfied by the developed or modified
system. OIT Security staff assess the system security
and issue a security certification and accreditation prior
to installation/implementation.
IMPLEMENTATION PHASE
20
This phase is initiated after the system has been tested
and accepted by the user. In this phase, the system is
installed to support the intended business functions. System
performance is compared to performance objectives
established during the planning phase. Implementation
includes user notification, user training, installation of
hardware, installation of software onto production computers,
and integration of the system into daily work processes. This
phase continues until the system is operating in production in
accordance with the defined userrequirements.
21
⦁ Conduct periodic assessments of the system to ensure
the functional requirements continue to be satisfied.
⦁ Determine when the system needs to be modernized,
replaced, or retired.
SOURCE CODE
22
FILE NAME : TABLES
import mysql.connector
mycon=mysql.connector.connect(host='localhost',use
r='
root',passwd='manager')
cursor=mycon.cursor()
mycon.autocommit=True
s1="create database railway"
cursor.execute(s1)
s1="create table railway(name varchar(100),phno
varchar(15) primary key,age int(4),gender
varchar(50),from_f varchar(100),to_t
varchar(100),date_d varchar(20))"
cursor.execute(s1)
s1="create table user_accounts(fname
varchar(100),lname varchar(100),user_name
varchar(100) ,password varchar(100) primary
key, phnovarchar(15),gender
varchar(50),dob varchar(50),age
varchar(4))"
cursor.execute(s1)
23
def menu():
print('1.YES')
print('2.NO')
ch=int(input('DO YOU WANT TO CONTINUE OR NOT:'))
while ch==1:
print('WELECOME TO ONLINE RAILWAY RESERVATION
SYSTEM’)
print('1.SIGN IN')
print('2.SIGN UP')
print('3.DELETE ACCOUNT')
print('4.EXIT')
ch1=int(input('ENTER YOUR CHOICE:'))
if ch1==1:
a=checking()
if a==True:
print('WELCOME')
main()
else:
continue
elif ch1==2:
a=checking_1()
if a==True:
main()
else:
print('PASSWORD ALREADY EXISTS')
24
continue
elif ch1==3:
c=checking_2()
if c==True:
print('ACCOUNT DELETED’)
continue
else:
print('YOUR PASSWAORD OR USER_NAME IS INCORRECT')
continue
elif ch1==4:
print('THANK YOU')
break
else:
print('ERROR 404:PAGE NOT FOUND')
break
def main():
print('1.yes')
print('2.no')
c=int(input("do you want to continue or not:")
while (c==1):
print(' 1.TICKET BOOKING',"\n", '2.TICKET
CHECKING',"\n",'3.TICKET,
CANCELLING'"\n",'4.ACCOUNT
DETAILS',"\n",'5.LOG OUT')
ch=int(input('enter ur choice:'))
if ch==1:
ticket_booking()
elif ch==2:
25
ticket_checking()
elif ch==3:
ticket_cancelling()
elif ch==4:
checking_3()
elif ch==5:
print('THANK YOU')
break
else:
print('ERROR 404: ERROR PAGE NOT FOUND')
def ticket_booking():
import mysql.connector
Mycon=mysql.connector.connect (host='localhost',
User='root', passwd='manager',
database='railway')
Cursor=mycon.cursor ()
mycon.autocommit=True
nm=input('enter your name:')
phno=input('enter your phone number:')
age=int(input('enter your age:'))
print(' M=MALE','\n','F=FEMALE','\n','N=NOT TO
MENTION')
gender=input('enter your gender:')
Gender=gender.upper()
fr=input('enter ur starting point:')
to=input('enter your destination:')
26
date1=input('enter date(dd):')
date2=input('enter month(mm):')
date3=input('enter year(yyyy):')
date=date1+"/"+date2+"/"+date3
a={'M':'MALE','F':'FEMALE','N':'NOT TO MENTION'}
v=a[Gender]
s1="insert into railway values
('{}',{},{},'{}','{}','{}','{}')".format(nm,phno,age,v,fr,to,date)
cursor.execute(s1)
print('BOOKED SUCCESSFULLY')
def ticket_checking():
import mysql.connector
mycon=mysql.connector.connect(host='localhost',user='root',
passwd='manager',database='railway')
cursor=mycon.cursor()
mycon.autocommit=True
print('1.yes')
print('2.no')
ch=int(input("do you want to continue or not:"))
if ch==1:
phno=int(input('enter your phnone number:'))
try:
27
s1="select * from railwaywhere phno=phno"
cursor.execute(s1)
data=cursor.fetchall()[0]
Data=list(data)
a=['NAME','PHONE,NUMBER','AGE','GENDER','STARTING
POINT','DESTINATION','DATE',]
print(a[0],'::::',Data[0].upper())
print(a[1],'::::',Data[1])
print(a[2],'::::',Data[2])
print(a[3],'::::',Data[3].upper())
print(a[4],'::::',Data[4].upper())
print(a[5],'::::',Data[5].upper())
print(a[6],'::::',Data[6])
except:
print('TICKET DOES NOT EXISTS')
elif ch==2:
print('THANK YOU')
else:
print('ERROR 404:PAGE NOT FOUND')
def ticket_cancelling():
import mysql.connector
mycon=mysql.connector.connect(host='localhost',user='root',
passwd='manager',database='railway')
cursor=mycon.cursor()
28
mycon.autocommit=True
print('1.yes')
print('2.no')
ch=int(input("do you want to continue or not:"))
if ch==1:
phno=input('enter your phone number:')
s1="delete from railway where phno=phno"
cursor.execute(s1)
print('TICKET CANCELLED')
elif ch==2:
print('THANK YOU')
else:
print('ERROR 404:PAGE NOT FOUND')
def checking_2():
import mysql.connector
mycon=mysql.connector.connect(host='localhost',user='root',
passwd='manager',database='railway')
cursor=mycon.cursor()
mycon.autocommit=True
a=input('USER NAME:')
b=input('PASS WORD:')
try:
s1="select user_name from user_accounts where
password='{}'".format(b)
cursor.execute(s1)
data=cursor.fetchall()[0]
29
data=list(data)
if data[0]==a:
print(' IS THIS YOUR
ACCOUNT')
s1="select user_name from user_accounts where
password='{}'".format(b)
c1="select fname,lname from user_accounts where
password='{}'".format(b)
cursor.execute(c1)
data1=cursor.fetchall()[0]
data1=list(data1)
data1=data1[0]+' '+data1[1]
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
if data[0]==a:
x=['FIRST NAME','LAST NAME','PHONE
NUMBER','GENDER','DATE OF BIRTH','AGE']
s1="select fname,lname,phno,gender,dob,age from
user_accounts where password='{}'".format(b)
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
print(x[0],':::',data[0])
print(x[1],':::',data[1])
print(x[2],':::',data[2])
print(x[3],':::',data[3])
print(x[4],':::',data[4])
30
print(x[5],':::',data[5])
print(' 1.yes')
print(' 2.no')
vi=int(input('enter your choice:'))
if vi==1:
b1="delete from user_accounts where password
= '{}'".format(b)
cursor.execute(b1)
return True
elif vi==2:
print('SORRY,RETRY')
else:
print('ERROR 404:PAGE NOT FOUND')
else:
return False
except:
print('ACCOUNT DOES NOT EXIST')
def checking_1():
import mysql.connector
mycon=mysql.connector.connect(host='localhost',user='root',
passwd='manager',database='railway')
cursor=mycon.cursor()
mycon.autocommit=True
f=input("FIRST NAME:")
l=input("LAST NAME:")
31
a=input('USER NAME:')
b=input('PASS WORD:')
c=input('RE-ENTER YOUR PASS WORD:')
ph=input("PHONE NUMBER:")
print(' M=MALE','\n','F=FEMALE','\n','N=NOT TO MENTION')
gen=input('ENTER YOUR GENDER:')
print("ENTER YOR DATE OF BIRTH")
d=input("DD:")
o=input("MM:")
p=input("YYYY:")
dob=d+'/'+o+'/'+p
age=input('YOUR AGE:')
v={'m':'MALE','f':'FEMALE','n':'NOT TO MENTION'}
if b==c:
try:
c1="insert into user_accounts
values('{}','{}','{}','{}','{}','{}','{}','{}')".format(f,l,a,b,ph,v[gen],dob
,age)
cursor.execute(c1)
print('WELCOME',f,l)
return True
except:
print('PASSWORD ALREADY EXISTS')
return False
else:
print('BOTH PASSWORDS ARE NOT MATCHING')
32
def checking():
import mysql.connector
mycon=mysql.connector.connect(host='localhost',user='root',
passwd='manager',database='railway')
cursor=mycon.cursor()
mycon.autocommit=True
a=input('USER NAME:')
b=input('PASS WORD:')
try:
s1="select user_name from user_accounts where
password='{}'".format(b)
c1="select fname,lname from user_accounts where
password='{}'".format(b)
cursor.execute(c1)
data1=cursor.fetchall()[0]
data1=list(data1)
data1=data1[0]+' '+data1[1]
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)[0]
if data==a:
print(' HII ',data1)
return True
else:
33
return False
except:
print('ACCOUNT DOES NOT EXIST')
def checking_3():
import mysql.connector
mycon=mysql.connector.connect(host='localhost',user='root',
passwd='manager',database='railway')
cursor=mycon.cursor()
mycon.autocommit=True
a=input('USER NAME:')
b=input('PASS WORD:')
try:
s1="select user_name from user_accounts where
password='{}'".format(b)
c1="select fname,lname from user_accounts where
password='{}'".format(b)
cursor.execute(c1)
data1=cursor.fetchall()[0]
data1=list(data1)
data1=data1[0]+' '+data1[1]
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
if data[0]==a:
34
NUMBER','GENDER','DATE OF BIRTH','AGE']
s1="select fname,lname,phno,gender,dob,age from
user_accounts where password='{}'".format(b)
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
print(x[0],':::',data[0])
print(x[1],':::',data[1])
print(x[2],':::',data[2])
print(x[3],':::',data[3])
print(x[4],':::',data[4])
print(x[5],':::',data[5])
else:
return False
except:
print('ACCOUNT DOES NOT EXIST')
menu()
35
OUTPUT
CHOICE WINDOW
36
IF CHOICE IS 1(LOGIN WINDOW)
37
IF CHOICE IS2(SIGN UP WINDOW)
38
IF CHOICE IS3(DELETE ACCOUNT)
39
IF CHOICE IS4(EXIT)
40
SECOND CHOICE LIST AFTER LOGIN
41
IF CHOICE IS1(TICKET BOOKING)
42
IF CHOICE IS2(TICKET CHECKING)
43
IF CHOICE IS3(TICKET CANCELLING)
44
IF CHOICE IS5(LOG OUT)
45
TESTING
TESTING METHODS
Software testing methods are traditionally divided into black
box testing and white box testing. These two approaches are used
to describe the point of view that a test engineer takes when
designing test cases.
46
Black box testing treats the software as a "black box,"
without any knowledge of internal implementation. Black box
testing methods include: equivalence partitioning, boundary value
analysis, all-pairs testing, fuzz testing, model-based testing,
traceability matrix, exploratory testing and specification-
based testing.
SPECIFICATION-BASED TESTING
The black box tester has no "bonds" with the code, and
a tester's perception is very simple: a code must have bugs.
47
Using the principle, "Ask and you shall receive," black box
testers find bugs where programmers don't. But, on the other
hand, black box testing has been said to be "like a walk in a
dark labyrinth without a flashlight," because the tester
doesn't know how the software being tested was actually
constructed.
That's why there are situations when (1) a black box
tester writes many test cases to check something that can be
tested by only one test case, and/or (2) some parts of the
back end are not tested at all. Therefore, black box testing
has the advantage of "an unaffiliated opinion," on the one
hand, and the disadvantage of "blind exploring," on the other.
48
all statements in the program to be executed at least once.
⦁ fault injection methods.
⦁ mutation testing methods.
⦁ static testing - White box testing includes all static
testing.
49
HARDWARE AND SOFTWARE REQUIREMENTS
ATHALON
SOFTWARE REQUIREMENTS:
⦁ Windows OS
⦁ Python
⦁ mysql connector modulle
50
BIBLIOGRAPHY
51