diff --git a/app/Http/Controllers/Admin/FlightController.php b/app/Http/Controllers/Admin/FlightController.php
new file mode 100644
index 00000000..71bde937
--- /dev/null
+++ b/app/Http/Controllers/Admin/FlightController.php
@@ -0,0 +1,178 @@
+flightRepository = $flightRepo;
+ }
+
+ /**
+ * Display a listing of the Flight.
+ *
+ * @param Request $request
+ * @return Response
+ */
+ public function index(Request $request)
+ {
+ $this->flightRepository->pushCriteria(new RequestCriteria($request));
+ $flights = $this->flightRepository->all();
+
+ return view('admin.flights.index')
+ ->with('flights', $flights);
+ }
+
+ /**
+ * Show the form for creating a new Flight.
+ *
+ * @return Response
+ */
+ public function create()
+ {
+ return view('admin.flights.create');
+ }
+
+ /**
+ * Store a newly created Flight in storage.
+ *
+ * @param CreateFlightRequest $request
+ *
+ * @return Response
+ */
+ public function store(CreateFlightRequest $request)
+ {
+ $input = $request->all();
+
+ $flight = $this->flightRepository->create($input);
+
+ Flash::success('Flight saved successfully.');
+
+ return redirect(route('admin.flights.index'));
+ }
+
+ /**
+ * Display the specified Flight.
+ *
+ * @param int $id
+ *
+ * @return Response
+ */
+ public function show($id)
+ {
+ $flight = $this->flightRepository->findWithoutFail($id);
+
+ if (empty($flight)) {
+ Flash::error('Flight not found');
+ return redirect(route('admin.flights.index'));
+ }
+
+ return view('admin.flights.show')->with('flight', $flight);
+ }
+
+ /**
+ * Show the form for editing the specified Flight.
+ *
+ * @param int $id
+ *
+ * @return Response
+ */
+ public function edit($id)
+ {
+ $flight = $this->flightRepository->findWithoutFail($id);
+
+ if (empty($flight)) {
+ Flash::error('Flight not found');
+ return redirect(route('admin.flights.index'));
+ }
+
+ return view('admin.flights.edit')->with('flight', $flight);
+ }
+
+ /**
+ * Update the specified Flight in storage.
+ *
+ * @param int $id
+ * @param UpdateFlightRequest $request
+ *
+ * @return Response
+ */
+ public function update($id, UpdateFlightRequest $request)
+ {
+ $flight = $this->flightRepository->findWithoutFail($id);
+
+ if (empty($flight)) {
+ Flash::error('Flight not found');
+ return redirect(route('admin.flights.index'));
+ }
+
+ $flight = $this->flightRepository->update($request->all(), $id);
+
+ Flash::success('Flight updated successfully.');
+
+ return redirect(route('admin.flights.index'));
+ }
+
+ /**
+ * Remove the specified Flight from storage.
+ *
+ * @param int $id
+ *
+ * @return Response
+ */
+ public function destroy($id)
+ {
+ $flight = $this->flightRepository->findWithoutFail($id);
+
+ if (empty($flight)) {
+ Flash::error('Flight not found');
+ return redirect(route('admin.flights.index'));
+ }
+
+ $this->flightRepository->delete($id);
+
+ Flash::success('Flight deleted successfully.');
+ return redirect(route('admin.flights.index'));
+ }
+
+ public function aircraft(Request $request)
+ {
+ $id = $request->id;
+
+ $flight = $this->flightRepository->findWithoutFail($id);
+
+ if (empty($flight)) {
+ Flash::error('Flight not found');
+ return redirect(route('admin.flights.index'));
+ }
+
+ /**
+ * update specific aircraftdata
+ */
+ if ($request->isMethod('post')) {
+ // add
+ }
+
+ // update the pivot table with overrides for the fares
+ elseif ($request->isMethod('put')) {
+ // update
+ }
+
+ // dissassociate fare from teh aircraft
+ elseif ($request->isMethod('delete')) {
+ // del
+ }
+ }
+}
diff --git a/app/Http/Requests/CreateFlightRequest.php b/app/Http/Requests/CreateFlightRequest.php
new file mode 100644
index 00000000..aea38f6f
--- /dev/null
+++ b/app/Http/Requests/CreateFlightRequest.php
@@ -0,0 +1,30 @@
+ 'string',
+ 'route_code' => 'string',
+ 'route_leg' => 'string',
+ 'route' => 'string',
+ 'dpt_time' => 'string',
+ 'arr_time' => 'string',
+ 'notes' => 'string',
+ 'active' => 'boolean',
+ ];
+
+ /**
+ * Validation rules
+ *
+ * @var array
+ */
+ public static $rules
+ = [
+ 'flight_number' => 'required',
+ 'dpt_airport_id' => 'required',
+ 'arr_airport_id' => 'required',
+ ];
+
+ public function dpt_airport()
+ {
+ return $this->belongsTo('App\Models\Airport', 'dpt_airport_id');
+ }
+
+ public function arr_airport()
+ {
+ return $this->belongsTo('App\Models\Airport', 'arr_airport_id');
+ }
+
+ public function alt_airport()
+ {
+ return $this->belongsTo('App\Models\Airport', 'alt_airport_id');
+ }
+
+ public function aircraft()
+ {
+ return $this->belongsToMany('App\Models\Aircraft', 'flight_aircraft');
+ }
+}
diff --git a/app/Repositories/FlightRepository.php b/app/Repositories/FlightRepository.php
new file mode 100644
index 00000000..a982f30e
--- /dev/null
+++ b/app/Repositories/FlightRepository.php
@@ -0,0 +1,25 @@
+increments('id');
+ $table->integer('airline_id')->unsigned();
+ $table->text('flight_number');
+ $table->text('route_code');
+ $table->text('route_leg');
+ $table->integer('dpt_airport_id')->unsigned();
+ $table->integer('arr_airport_id')->unsigned();
+ $table->integer('alt_airport_id')->unsigned();
+ $table->text('route');
+ $table->text('dpt_time');
+ $table->text('arr_time');
+ $table->text('notes');
+ $table->boolean('active');
+ $table->timestamps();
+ $table->softDeletes();
+ });
+
+ Schema::create('flight_aircraft', function ($table) {
+ $table->increments('id');
+ $table->integer('flight_id')->unsigned();
+ $table->integer('aircraft_id')->unsigned();
+
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::drop('flights');
+ Schema::drop('flight_aircraft');
+ }
+}
diff --git a/resources/views/admin/flights/create.blade.php b/resources/views/admin/flights/create.blade.php
new file mode 100644
index 00000000..e12592d6
--- /dev/null
+++ b/resources/views/admin/flights/create.blade.php
@@ -0,0 +1,22 @@
+@extends('admin.app')
+
+@section('content')
+ Create Flight
+
{!! $flight->id !!}
+{!! $flight->airline_id !!}
+{!! $flight->flight_number !!}
+{!! $flight->route_code !!}
+{!! $flight->route_leg !!}
+{!! $flight->dpt_airport_id !!}
+{!! $flight->arr_airport_id !!}
+{!! $flight->alt_airport_id !!}
+{!! $flight->route !!}
+{!! $flight->dpt_time !!}
+{!! $flight->arr_time !!}
+{!! $flight->notes !!}
+{!! $flight->active !!}
+{!! $flight->created_at !!}
+{!! $flight->updated_at !!}
+| Flight # | +Dep | +Arr | +Alt | +Route | +Dpt Time | +Arr Time | +Notes | +Active | +Action | + + + @foreach($flights as $flight) +
|---|---|---|---|---|---|---|---|---|---|
| + {!! $flight->airline_id !!}/{!! $flight->flight_number !!} + (C: {!! $flight->route_code !!} L: {!! $flight->route_leg !!}) + | +{!! $flight->dpt_airport->icao !!} | +{!! $flight->arr_airport->icao !!} | +{!! $flight->alt_airport->icao !!} | +{!! $flight->route !!} | +{!! $flight->dpt_time !!} | +{!! $flight->arr_time !!} | +{!! $flight->notes !!} | +{!! $flight->active !!} | ++ {!! Form::open(['route' => ['admin.flights.destroy', $flight->id], 'method' => 'delete']) !!} + + {!! Form::close() !!} + | +