Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhanced beta.py #9

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
175 changes: 175 additions & 0 deletions Airways Management System
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
Make Sure You've Installed Python Text to speech i.e. pyttsx3
If not then Open Command Prompt and type : pip install pyttsx3
Source Code :


# Airways Management System

import pickle # we are using pickle bec it operates binary files (will increase performance of program).
import os # we are using os to handle some operation with file like renaming and deleting.
import pyttsx3 # this is Python text-to-speech which gives a voice to our Airways Management System.

flight_det = {}

def speak(line):
'''it will give a female voice to Every line given as argument(parameter)'''
voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0"
voice = pyttsx3.init()
voice.setProperty('voice', voice_id)
voice.say(line)
voice.runAndWait()

def say(line):
'''it is Same as speak() but dude it speaks in Male voice'''
voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0"
voice = pyttsx3.init()
voice.setProperty('voice', voice_id)
voice.say(line)
voice.runAndWait()


def write_data():
''' It will add flight details(data) in flight.dat '''
with open("flight.dat", "ab") as fdata:
say('Helloo, Please Write the Number of Flights you want write in file')
No_Of_flight = int(input("Enter the Number of Flights : "))
for num in range(No_Of_flight):
speak(f'Please Write, {num+1} flight Number')
flight_det["flightNo"] = int(input(f"\nPlease Enter {num + 1} Flight Number : "))
speak(f'Please Write Name of Flight-{flight_det["flightNo"]}')
flight_det["fname"] = input(f'Enter Name of Flight-{flight_det["flightNo"]} : ')
speak(f'Please Write Fare of {flight_det["fname"]}-{flight_det["flightNo"]}')
flight_det["fare"] = int(input(f'Enter Fare of {flight_det["fname"]}-{flight_det["flightNo"]} : '))
pickle.dump(flight_det, fdata)


def show_data():
''' it will Display all the Flights Data inside flight.dat file'''
say("Showing Flight Details")
with open('flight.dat', 'rb') as file:
try:
while True:
data = pickle.load(file)
print(data)
except EOFError:
pass


def del_data():
speak('Please Enter Flight Number to delete its DATA')
flightNo = int(input("\nPlease Enter Flight Number to delete its DATA : "))
fdata1 = open("flight.dat", "rb")
fdata2 = open("temp.dat", "ab")
try:
while True:
data = pickle.load(fdata1)
if data["flightNo"] == flightNo:
print(f"Flight-{flightNo} Deleted Successfully.")
say(f"Flight-{flightNo} Deleted Successfully.")
pass
else:
pickle.dump(data, fdata2)
except EOFError:
pass
fdata1.close()
fdata2.close()
os.remove("flight.dat")
os.rename("temp.dat", "flight.dat")

try:
with open("flight.dat", "rb") as fdata:
speak("Here's the Record of Flights after Deletion\n")
print('Record of Flights after Deletion :\n')
while True:
print(f' {pickle.load(fdata)}')
except Exception:
pass


def search():
with open('flight.dat', 'rb') as fdata:
speak(" Please Enter Flight Number to Search its Details")
fsearch = int(input("\nEnter Flight Number to Search : "))
datafound = 0
try:
while True:
data = pickle.load(fdata)
if data['flightNo'] == fsearch:
datafound = 1
speak("Here's the Search Details")
print(f'Search Result : \n {data}')
say(data)
break
except Exception:
print("Error : There is no Data in flight.dat")
if datafound == 0:
speak(f'Details of flight-{fsearch} was NOT FOUND')
print(f"\n ! Details of flight-{fsearch} was NOT FOUND !")


def update_data():
data1 = open("flight.dat", "rb")
data2 = open("temp.dat", "ab")
speak("Enter Flight Number to Update it")
flightNo = int(input("Enter Flight Number to Update : "))
try:
while True:
data = pickle.load(data1)
if data["flightNo"] == flightNo:
speak(f"Enter New Details of Flight-{flightNo}")
print(f"\nEnter New Details of Flight-{flightNo} : ")
data["flightNo"] = int(input("Enter Flight Number : "))
data["fname"] = input("Enter Flight's Name : ")
data["fare"] = int(input("Enter the Fare : "))
pickle.dump(data, data2)
speak(f"Data of flight-{flightNo} Updated Successfully.")
print("Data Updated Successfully.")
else:
pickle.dump(data, data2)
except EOFError:
pass
data1.close()
data2.close()
os.remove("flight.dat")
os.rename("temp.dat", "flight.dat")

speak_one_time = 0
speak_one = 0
while True:
if speak_one == 0:
say("Enter Number to choose specific operation you want to perform")
speak_one = 1
print('\nOperations :\n 1 - Add Flight Details.\n 2 - Show Flight Details\n 3 - Update Flight Details. ')
print(' 4 - Delete Flight Detail.\n 5 - Search Flights.\n 6 - Clock.\n 7 - EXIT.')
if speak_one_time == 0:
speak("1 for Adding Flight Details, 2 for Displaying flight details, 3 to Update flight details"
",4 for Deleting flight details, 5 to Search Flights, 6 to know current timings, and 7 for Exit")
speak_one_time = 1
op = int(input("\nEnter Number to Choose Operation : "))
if op == 1:
write_data()
elif op == 2:
print(f"\nFlights Details : ")
show_data()
elif op == 3:
update_data()
elif op == 4:
del_data()
elif op == 5:
search()
elif op == 6:
import time
live_time = time.strftime("%H:%M:%S")
speak(f"The Current timings are : {live_time}")
print(f"\n| The Current timings are : {live_time} |")
elif op == 7:
say("Thanks for Using Airways Management System")
print("Thanks for Using Airways Management System")
say("Creators of this, Airways Management System are |Akash kumar Singh |")
print("Creators of Airways Management System :\n | Akash kumar Singh|")
speak("See You Again! Bye Dear")
break
else:
speak("Hey, Please Choose the Correct Operations!")
print("Please Choose CORRECT Operation!")

174 changes: 174 additions & 0 deletions AirwaysManagementSystem.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
# Airways Management System

'''
Make Sure you have installed two modules :
1. Python text-to-speech - pip install pyttsx3
2. Python My SQL Connector - pip install mysql-connector
'''

import mysql.connector # it'll connect python to MySQL RDMS by which we can access our Databases.
import pyttsx3 # this is Python text-to-speech which gives a voice to our Airways Management System.


def speak(line):
'''it will give a female voice to Every line given as argument(parameter)'''
voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0"
voice = pyttsx3.init()
voice.setProperty('voice', voice_id)
voice.say(line)
voice.runAndWait()


speak("Enter Sql USER Password to get Started & if you don't know the password just press Enter")
sqlpswd = input("Enter SQL USER Password : ")

try:
''' Since the User name of most SQL users are same i.e. 'root' we'll also it'''
flightDB = mysql.connector.connect(host='localhost', user='root', passwd=sqlpswd)
except Exception:
speak("You've entered wrong sql password try again")
print("Wrong Password try again ->")
pswd = input(" Enter SQL USER Password : ")
try:
flightDB = mysql.connector.connect(host='localhost', user='root', passwd=pswd)
except Exception:
speak("You've Again entered wrong SQL password please remember it and Try agail Later!")
print("Brother Focus and Try Later! Go Relax ;)")
quit()

# Fetching the Databases in our Program
cursor = flightDB.cursor()

# Will Create Database Flight If it's not created before
try:
cursor.execute('CREATE DATABASE flight')
except:
pass

# Using Database flight
cursor.execute('USE flight')

# Creating Table of Flight's Data
try:
cursor.execute('CREATE TABLE flightData(flightNo INT, fName VARCHAR(20), fare INT)')
except:
pass

line = "----------------------------------------------------------------"

def write_data():
''' It will add New Details of Flights in table flightData'''
speak('Enter the Number of Flights you want to insert in Database')
No_Of_flight = int(input(f"\n{line}\nEnter the Number of Flights you want to insert : "))
for num in range(No_Of_flight):
speak(f'Enter the Details of {num+1}-Flight')
print(f'{line}\nEnter the Details of {num+1}-Flight : \n')
flightNo = int(input(f'Enter flight Number : '))
fName = input(f'Enter Name of flight-{flightNo} : ')
fare = input(f'Enter Fare of {fName}-{flightNo} : ')
cursor.execute(f"INSERT INTO flightData VALUES ({flightNo}, '{fName}', {fare})")
flightDB.commit()
print(line)


def show():
''' It will show all the Contents in table flightData'''
try:
speak('Showing the Details of Flights')
cursor.execute('SELECT * FROM flightData')
data = cursor.fetchall()
print(f"\n{line}\nDetails of Flight : ")
for flights in data:
print(' ', flights)
print(line)
except Exception:
print("Empty Database! Please Insert Details of Flight using 1st Operation.")


def delete():
'''To delete some details of particular flight'''
speak('Please Enter Flight Number to delete its Data : ')
flightNo = int(input(f"\n{line}\nPlease Enter Flight Number to delete its Data : "))
try:
cursor.execute(f'DELETE FROM flightData WHERE flightNo={flightNo}')
speak(f'Details of Flight-{flightNo}, deleted Successfully')
print(f'{line}\nDetails of Flight-{flightNo}, deleted Successfully.')
flightDB.commit()
print(line)
except Exception:
print(f'Details of Flight-{flightNo} was Not Found!')


def search():
'''It'll Search and return a particular Flight details '''
speak("Please Enter Flight Number to Search : ")
flightNo = int(input(f"\n{line}\nPlease Enter Flight Number to Search : "))
try:
cursor.execute(f'SELECT * FROM flightData WHERE flightNo={flightNo}')
data = cursor.fetchall()
print(f'\n{line}\nDetails of Flight-{flightNo} :\n {data} \n{line}')
except Exception:
print(f'Details of Flight-{flightNo} was Not Found!')


def updateData():
'''It'll Update the details of particular flight'''
speak('Enter Flight Number to Update its detail :')
oldfNo = int(input(f"\n{line}\nEnter Flight Number to Update its detail : "))
try:
speak(f'Enter the New Details of Flight-{oldfNo} :')
print(f'{line}\nEnter the New Details of Flight-{oldfNo} : ')
flightNo = int(input(f'Enter flight Number :'))
cursor.execute(f'UPDATE flightData SET flightNo={flightNo} WHERE flightNo={oldfNo}')
fName = input(f'Enter Name of flight-{flightNo} : ')
cursor.execute(f'UPDATE flightData SET fName="{fName}" WHERE flightNo={flightNo}')
fare = input(f'Enter Fare of {fName}-{flightNo} : ')
cursor.execute(f'UPDATE flightData SET fare={fare} WHERE flightNo={flightNo}')
flightDB.commit()
speak(f'Details of {fName}-{flightNo} Updated Successfully.')
print(f'{line}\nDetails of {fName}-{flightNo} Updated Successfully.\n{line}')
except Exception:
print(f'Details of Flight-{oldfNo} was Not Found!')


if __name__=="__main__":
speak_one_time = 0
speak_one = 0
while True:
if speak_one == 0:
speak("Enter Number to choose specific operation you want to perform")
speak_one = 1
print('\nOperations :\n 1 - Add Flight Details.\n 2 - Show Flight Details\n 3 - Update Flight Details. ')
print(' 4 - Delete Flight Detail.\n 5 - Search Flights.\n 6 - Clock.\n 7 - EXIT.')
if speak_one_time == 0:
speak("1 for Adding Flight Details, 2 for Displaying flight details, 3 to Update flight details"
"4 for Deleting flight details, 5 to Search Flights, 6 to know current timings, and 7 for Exit")
speak_one_time = 1

op = int(input("\nEnter Number to Choose Operation : "))
if op == 1:
write_data()
elif op == 2:
show()
elif op == 3:
updateData()
elif op == 4:
delete()
elif op == 5:
search()
elif op == 6:
import time
live_time = time.strftime("%H:%M:%S")
speak(f"The Current timings are : {live_time}")
print(f"\n{line}\nThe Current timings are : {live_time} \n{line}\n")
elif op == 7:
speak('Thanks for Using Airways Management System')
print(f"\n{line}\nThanks for Using Airways Management System.\n")
speak("Creators of this, Airways Management System are Akash kumar Singh, Rohit Kumar and Pawan Meena ")
print(f"Creators of Airways Management System :\n | Akash kumar Singh | Rohit kumar | Pawan Meena | \n{line}")
break
else:
speak("Please Choose CORRECT Operation!")
print("Please Choose CORRECT Operation!")

flightDB.close()
Loading