Skip to content

Flight Management System build using C# .NET 8.0, WinForms

Notifications You must be signed in to change notification settings

hurairamuzammal/Flight-Management-System

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flight Management System

A FMS inspired by the Qatar Airways color palletes and its posters/visuals.
This Project consists of Two Projects:

  1. Aviate (Backend)
  2. FMS (UI)

Note:

To open the project in Visual Studio, open the Solution File in FMS project. It will connect to Aviate itself.

Table of Contents

  1. Introduction
  2. Build
  3. DataBase Construction
  4. Authors

Introduction

It's an End of Semester project for the course Database Design . It uses Entity Framework Core as the ORM and LINQ (Language Integrated Query) for Database CRUD. UI is built using WinForms for .NET and an Open-Source UI Components Library ReaLTaiizor.
Some of the features of the projects are:

  1. Image Upload (See @"/Aviate/Utils/Imaging.cs").
  2. E-mailing for sign-up OTP (See @"/Aviate/Utils/Email.cs").
  3. Live Auditing of Actions on Database (See @"/Aviate/Services/NotficationPoolingService").
  4. Flight Rescheduling Notification to passengers (See @"/Aviate/Services/NotficationPoolingService").
  5. Application is majorly Asynchronous.

Build

Note:

Set FMS project as the Starting Project.

[images/SetAsStartup.gif] Set FMS as startup project
Screen Capture Using ShareX



Visual Studio is automatically going to manage all of the listed dependencies

[/images/depts.png]
Aviate Dependencies

Otherwise install them manually one-by-one using Nuget Package Manager.

[/Images/Nuget.gif] Nuget Package Manager

DBConstruction

This Project uses an ORM Entity Framework Core to handle the database part. In my case, I connected to Oracle 11g database, but you can connect any to any database just change the settings in [@"Aviate/dbcontext/dbcontext.cs"] OnConfiguring functions and change the connection string and version accordingly.

To construct the Database take a look at Migrations in [@"Aviate/Migrations"]. Delete the migrations and create from scratch. Only the NotificationContext and AviateContext needs migrations.

Copy the following commands one-by-one and run them on Visual Studio - Package Manager Console

add-migration -Context NotificationContext AnyNameForMigration
add-migration -Context AviateContext AnyNameForMigration

Applying

update-database -Context NotificationContext
update-database -Context AviateContext

NOTE: If you are specifically working with Oracle 11g you are likely to get this error:

ORA-02000: missing ALWAYS keyword


[images/addMigration.gif] Always Keyword Error demonstration

Solution


Just remove a line in the migration file that adds **Always identity** to the id of the table. **(If you do this then you have to have a custom mechanism to assign ids to every record that you enter. I have it in the @"/Aviate/CRUD/CRUD.cs")**.

[/images/AlwaysError.gif] Remove Annotation

Authors

This Project is created by Shayan Zawar.

About

Flight Management System build using C# .NET 8.0, WinForms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • C# 100.0%