Skip to content

gemini88mill/Flights

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flights

Instructions for use: 

1. open .jar
2. enter in information regarding your flight 
	--current release uses IATA codes for airports, later editions will use city names. 
3. enter in leaving and return dates
4. pick 

This program was created by Raphael Miller using Intellij Idea. All terms of service with google API's apply

https://developers.google.com/terms/ <-- for more information. 

This program is designed to implement Google's QPX API for flight times and information. User inputs a value
for departure and arrival. QPX handles the request and returns the information for pricing and flight times 
for the given date. 

Fist push: core program functional allowing the user to get requests back using hard coding for flight 
information. (05.17.2015). 

next push - more options for user, allowing use of specific information for flight times. perhaps
implementing whatever Java's version of ncurses are. Please contact me for any questions.

--update--

05.17.2015
Completed basic functionality of the program. Now for the hard stuff. My goals for this project is to 
utlize different features of Java and to see what I can do with it. So next steps will include adding
a little more comments for people who happen to come across my programs. Additionally, I would like to
add save and compare functionality. In order to do that I will have to implement more of a back-end 
to the program. This will be the next steps. 

Therefore I am going to add some SQL functionality to my program. Since I would like to make an actual
functioning program. I will have to implement some kind of way to have the back end class to create a 
SQL database schema and establish a connection. perhaps have some kind of back up that allows to choose 
either a csv, txt or SQL database (which ever is more effective). 

--update--
05.26.2015

fleshed out the functionality a little bit better, offers a better representation of data for the user. 
Additionalty, allows the user to view more things and in a better format using more data Lists from 
QPX express, due to debugging, im already hitting my limit for QPX requests which is strating to become
a problem. If i want to make this an actual program, it seems that I would need to send two different 
requests. One for collection of data, and another to collect the information related to IATA codes for 
search requests. (QPX accepts request from IATA codes not from city names which most people would use 
instead). 

Im going to attempt to use laterna use make a more UI interface that retro feel. As if this program was
written in the 80's for employees that worked for an airline.

--Update--

05.28.2015

Functionality with Lanterna almost complete, although I am not an expert with lanterna it has alot of 
really interesting features that I would like to play around with. The main problem with lanterna is 
the fact that the API is currently going through a major overhaul, most of the functions will be 
deprecated by the time Lanterna 3 comes onto the scene. Lanterna 3 was announced in Feb 2014 and 
not very much has been done as far as documentation. The guys that are working on it are probably 
doing this as a hobby so it doesnt really have alot of support. 

Many issues still havent been resolved but all in all Lanterna is a pretty simple TextUI to use for
anyone wanting to create a little blast from the past program. I hope that 3 comes out soon. 

06.02.2015

Completed Lanterna API's. Pretty much set up the exact same thing from terminal output and placed it 
into a method via the DoAction method. (occurs when you press enter) That being said, I have created
a fully functional installable program that can be used to find a cheap flight going one way. Not 
vey much use in the real world as of yet but the next steps for the project would be to create more 
functionality within the project and applying it to lanterna. First steps would be to refactor what 
I currently have produced. Currently, my code is a sloppy mess that functions, but i think it could 
do better. 

Next steps: Refactor the program, allow for modulability, and have all methods set up to where 
another user can take the methods created and be able to take those methods and use it in some other
project. 

Create more functionality within the program. First thing would be to allow the terminal to run in
the background while the GUI is just waiting for instruction. Currently, the GUI is running the show 
and I have been told that bad form. Perhaps that is a quirk from my instructor but he does have a 
point. based on a primitive model the business end of the code should be in the middle. As to not
create unnessesary errors for the end user (I would imagine this would be a little more apparent in 
more complex code). Current rough draft is as follows

Terminal (Core Program) --->	 Lanterna (GUI)
Data Collection 		Holds GUI functionality 
				Displays info to user. 

Current program has the gui doing everything which means that I probably need to use threads... 
something I need more practice in. Lanterna also sports a loading bar, which is something I would
like to play with. 

Another thing I would like to play with would be functionality within QPX Express. There are alot
of different aspects within the API that are very useful. Im not trying to make a better KayaK or
Expedia, but the idea of making something comparable (although much more primitive) is very exciting
to me. Not to go off on a tangent, but if I could create something that benefits someone somewhere 
in someway, I think I have done my job as a programmer. 

Lanterna Look and feel is something I need to adjust, right now its a glorified terminal. Although
I am not a designer, I believe I can make a few adjustments to the end user experience. /brianmcdo 
hopefully will tell me a bit about better methods and practices for this project along with in 
general.

Refactoring of the project structure to make it more navicapable. At this moment, I have the 
default Intelij Idea preferences set and havent really changed anything major. I see some complex
projects that offer much better project structure. This will probably be the last thing on my todo 
list for this project. Since its something that doesnt really effect the code in a direct way. 

These posts are less of a readme and more of a journal entry for the development of this tiny 
project. Either way thanks for reading.

--06.11.2015--

Pretty much have things the way I want them but unfortunately, the poor documentation from 
Lanterna is starting to affect my progress, The main issue that I am facing is trying to create
a pop up error message for my program if the user does not input the correct perams. The problem
is that Lanterna does not show how to use this feature that they have. Since Lanterna is little 
known, I dont really have a solid knowledge base in order to try and solve the problem. As of 
right now, The program is throwing exceptions left and right from google's API. Once I figure 
out how to make the warning symbols work it should be as close to complete as possible. I might 
also create a similar program but for Android OS to get a feel for what I want to do with it.  

--06.14.15--

Updated jar and added some error handling within the gui. The exception still goes through 
the terminal, but date of departure error will not let you see past the error on the gui, 
ubuntu and other OS's can hide the terminal if this turns into a true program. Thats all for
this update

--06.27.15--

Completed error/exception handling for inputs, created loading window and have a pretty well
functioning application. After a little over a month of part time work. Last steps will be to 
have other people test it before I have it migrate it so some kind of full blown web
application or mobile app. JavaDocs still pretty incomplete and source is still pretty messy. 
At least its pretty much done with UI and allowed to handle errors and exceptions. 

The exceptions arent handled gracefully and in order to launch this in any format I would 
like it be more usable, I would add return flights and make it a comparable to a kayak or 
expedia. This only requires much of the same functions just different perams and more GUI
interfaces. Also A readme that isnt a journal of my progress in the system. Also I would 
like to figure out how to add numbers to my jar files. Basically, introduce editions, 
(Alpha, Beta, 0.1 and so on). That way people who see my code can see my progress over 
the generations. 

Next Steps: Code cleanup/refactoring, code organization, new functionality (ex. return date
number of passengers, entering in of cities instead of IATA codes. having a (client version)
and a (employee version). no real practical use for this program in the real world, I'm 
certain that there are more advanced programs in use with teams of devs updating these 
systems constantly. 

Raphael Miller 
[email protected]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published