“Distributed Airline Reservation System”


Presentation by:
Group: 9

Dwiti Gajab    – 008020038
Aman Chaurasia – 008017516
Pardeep Badhan – 004504293

Advisor: Dr. Rod Fatoohi


5/15/12                                     1
Contents:
1) Presentation overview
2) System functionality
3) Database design
4) Flow diagram
5) Project features
6) Project Implementation code (GUI)
7) Snapshots
8) Challenges
9) References
10) Demonstration of project



5/15/12                                2
Presentation Overview:

    Objective - To develop and design a distributed airline
    reservation system.


    C# (for GUI), .NET sockets (client), BSD sockets (server) with
    C programming, MYSQL database, UNIX environment.




5/15/12                                                              3
System Functionality:

    Login required for all.

      System Administrator:
-    Add airline database/representative

       Airline Representative:
- Add/Delete specific flights
-    View its own flights
-    List all customers for specific flight
-    Update the airline information (email, airline name, password etc.)

       Customers:
-    Register as a new user
-    Make/Cancel/View reservations
-    Update personal information

5/15/12                                                                    4
Database Design:
S y ste m
a d m in is tra to r




 A ir lin e r e p r e s e n t a t iv e




 U se rs/ C u sto m e rs




         5/15/12                         5
Flow Diagram:




5/15/12          6
Project Features:

    BSD sockets (server): – well integrated with OS.

    .NET sockets (client)

    I/O multiplexing “select ()” used:
          -   application needs data sharing.
          -   less switching time between process.

    “MySQL” database.

    Encryption using MD5 algorithm.

    Multi-user authentication: – Login required.

    Data passed in binary format
          -   less BW usage, fast transmission of signals.


5/15/12                                                      7
Project implementation code:
GUI: Login Example (Form - new_user_form.cs)
1 button_login_click() /* function called upon Click of login button*/
2 String username = textBox_login_username.Text.Trim().ToString(); /* read the username string
      from the textbox */
3 String password = textBox_login_password.Text.Trim().ToString();
/* read the password string from the textbox */




5/15/12                                                                                     8
Project implementation code (contd):
GUI: Login Example (contd)

4 if (flight_resv_client.attempt_login(username, password, user_info) == true)
{     /* user was authentication successfully */
}
/* Do not do anything, authentication failed */
5. attempt_login() /* form a message that will sent to the server */
6. msg.msg_id = HTON(MSG_ID_LOGIN_USER)
7. msg.username = username
8. msg.password = password
9. Steam s = tcp_client.GetStream(); /* get TCP client data stream */
10. s.write(msg, msg.Length);           /* send the message to the server */
11. s.Flush();                        /* flush the buffer now */
12. s.Read(user_info, sizeof(user_info)
           if (user_info.success != 0 ) {
    /* user was authenticated was successfully */       return (true);
} else {    /* user was not authenticated */
    MessageBox.Show(user_info.error);       return (false);
}


    5/15/12                                                                      9
                                                                                 1
MySql:
  Table “users”




 Table “flights”




5/15/12            10
Snapshot:
System Administrator:




5/15/12                 11
Snapshot:
Airline representative:




5/15/12                   12
Snapshot:
Airline representative (contd):




5/15/12                           13
Snapshot:
Customers:




5/15/12      14
Snapshot:
Customers:




5/15/12      15
Snapshot:
Server:




 5/15/12     16
Snapshot:
Server (Contd):




 5/15/12          17
Challenges:

    Implementing C# and linking it with client

    MYSQL database

    Encrypting password using MD5




5/15/12                                          18
References:
1. http://zetacode.com/tutorials/mysqlcapitutorial/(For entire MYSQL
     database implementation)
2. http://en.wikipedia.org/wiki/MySQL
3. http://www.pantz.org/software/mysql/mysqlcommands.html(for
      commands)
4. TCP/IP Volume III Client server programming and application by
     Stevens and Comer
5. UNIX Network Programming by Stevens and Fenner




5/15/12                                                                19
5/15/12   20
Any Questions???

          Thank You…




5/15/12                      21

Distributed Airline Reservation System

  • 1.
    “Distributed Airline ReservationSystem” Presentation by: Group: 9 Dwiti Gajab – 008020038 Aman Chaurasia – 008017516 Pardeep Badhan – 004504293 Advisor: Dr. Rod Fatoohi 5/15/12 1
  • 2.
    Contents: 1) Presentation overview 2)System functionality 3) Database design 4) Flow diagram 5) Project features 6) Project Implementation code (GUI) 7) Snapshots 8) Challenges 9) References 10) Demonstration of project 5/15/12 2
  • 3.
    Presentation Overview:  Objective - To develop and design a distributed airline reservation system.  C# (for GUI), .NET sockets (client), BSD sockets (server) with C programming, MYSQL database, UNIX environment. 5/15/12 3
  • 4.
    System Functionality:  Login required for all.  System Administrator: - Add airline database/representative  Airline Representative: - Add/Delete specific flights - View its own flights - List all customers for specific flight - Update the airline information (email, airline name, password etc.)  Customers: - Register as a new user - Make/Cancel/View reservations - Update personal information 5/15/12 4
  • 5.
    Database Design: S yste m a d m in is tra to r A ir lin e r e p r e s e n t a t iv e U se rs/ C u sto m e rs 5/15/12 5
  • 6.
  • 7.
    Project Features:  BSD sockets (server): – well integrated with OS.  .NET sockets (client)  I/O multiplexing “select ()” used: - application needs data sharing. - less switching time between process.  “MySQL” database.  Encryption using MD5 algorithm.  Multi-user authentication: – Login required.  Data passed in binary format - less BW usage, fast transmission of signals. 5/15/12 7
  • 8.
    Project implementation code: GUI:Login Example (Form - new_user_form.cs) 1 button_login_click() /* function called upon Click of login button*/ 2 String username = textBox_login_username.Text.Trim().ToString(); /* read the username string from the textbox */ 3 String password = textBox_login_password.Text.Trim().ToString(); /* read the password string from the textbox */ 5/15/12 8
  • 9.
    Project implementation code(contd): GUI: Login Example (contd) 4 if (flight_resv_client.attempt_login(username, password, user_info) == true) { /* user was authentication successfully */ } /* Do not do anything, authentication failed */ 5. attempt_login() /* form a message that will sent to the server */ 6. msg.msg_id = HTON(MSG_ID_LOGIN_USER) 7. msg.username = username 8. msg.password = password 9. Steam s = tcp_client.GetStream(); /* get TCP client data stream */ 10. s.write(msg, msg.Length); /* send the message to the server */ 11. s.Flush(); /* flush the buffer now */ 12. s.Read(user_info, sizeof(user_info) if (user_info.success != 0 ) { /* user was authenticated was successfully */ return (true); } else { /* user was not authenticated */ MessageBox.Show(user_info.error); return (false); } 5/15/12 9 1
  • 10.
    MySql: Table“users” Table “flights” 5/15/12 10
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
    Challenges:  Implementing C# and linking it with client  MYSQL database  Encrypting password using MD5 5/15/12 18
  • 19.
    References: 1. http://zetacode.com/tutorials/mysqlcapitutorial/(For entireMYSQL database implementation) 2. http://en.wikipedia.org/wiki/MySQL 3. http://www.pantz.org/software/mysql/mysqlcommands.html(for commands) 4. TCP/IP Volume III Client server programming and application by Stevens and Comer 5. UNIX Network Programming by Stevens and Fenner 5/15/12 19
  • 20.
  • 21.
    Any Questions??? Thank You… 5/15/12 21