Write a console-based application to help air traffic control (ATC) monitor all domestic flights taking place during one day (00:00 – 23:59). The application must include the following features:
1.	Flight information is kept in a text file, using the format in the example below. When the program starts, flight information is read from the file [1p]. Each modification is persisted to the text file [1p].
2.	Add a new flight. Each flight has an identifier, a departure city and time, and an arrival city and time [1p]. Flight identifiers are unique; flight times are between 15 and 90 minutes; an airport can handle a single operation (departure or arrival) during each minute [1p].
3.	Delete a flight. The user provides the flight identifier. If it does not exist, an error message is displayed [1p].
4.	List the airports, in decreasing order of activity (number of departures and arrivals during the day) [1p].
5.	List the time intervals during which no flights are taking place, in decreasing order of length. [1.5p].
6.	The tracking radar suffers a failure. The backup radar can be used, but it can only track a single flight at a time. Determine the maximum number of flights that can proceed as planned. List them using the format below [1.5p]:
05:45 | 06:40 | RO650 | Cluj - Bucuresti

Non-functional requirements:
•	Implement an object-oriented, layered architecture solution using the Python language.
•	Provide specification and unit tests for Repository/Controller functions related with the second functionality. In case specification or tests are missing, the functionality is graded at 50%.

Observations!
•	The day starts at 00:00 and ends at 23:59.
•	Default 1p

# TODO

---= Iteration 1 =---
1. Implement the Flight class
       -- required attributes
       -- __str__
       -- use private/protected attributes and properties :)

2. Implement the TextFlightsRepo class
        -- __init__()
        -- _load_file()
        -- get_all()

3. Implement the TestFlightsRepo(unittest.TestCase) class
        -- use PyUnit test framework
        -- self.assert*(...)
        -- put tests in the src/tests package

4. Implement the FlightServices class
        -- __init__ (receive the repository instance)
        -- get_all() (move flights to UI for display)

5. Implement the UI class
        -- __init__ (receive the services class it is working with)
        -- display the main menu:
            a. Display all flights
            x. Exit

---= Iteration 2 -> Add flight =---
2. Implement the TextFlightsRepo class
        -- add_flight(...) # + specification
        -- _save_file(...) # called from add_flight(...)

3. Implement the TestFlightsRepo(unittest.TestCase) class
        -- add test case for add_flight

4. Implement FlightValidator class
        -- validate(...) method -> raise Exception if problems

5. Implement the FlightServices class
        -- __init__ (receive the repository and validator instances)
        -- add_flight(...) method # + specification
            -- calls FlightValidator.validate
            -- call repo.add_flight()

6. Implement the UI class
        -- display the main menu:
            a. Display all flights
            b. Add flight
            x. Exit




