Code Monkey home page Code Monkey logo

holidaybookingsystem's Introduction

Holiday Booking System. Group project for the BSc Computing Class of 2024 at University Centre Farnborough.

This is a two part system consisting of a Winforms application to interface with the end user and a .NET Console application that performs back-end functions and maintains communication with the front-end using HTTP. Unfortunately the front-end team were unable to complete their contribution to the project sufficiently. However, the backend team did develop a console based client emulator that can be used to demonstrate the transfer of information between the two programs.

This is an offline system that requires a LAN connection between Program 1 and 2 to operate. The system is designed to run Program 1 and 2 on separate machines but is currently set up to run on one machine. Distributing the system is a matter of network administration and replacing the target IP addresses in code as required.

The purpose of the project was to develop a distributed system, adhering to certain constraints. Firstly, a recovery mode that triggers in the event of failure and allows transactions to be batch processed. Secondly, the system must consist of two programs that communicate with eachother, one performing backend processing and the other accepting input from the end user. And finally, the system must communicate over a LAN without accessing the web or any modern cloud based solutions. Overall, this was achieved and can be demonstrated through the use of the ClientEmulator application alongside the BookingProcessor application. A demonstration video has been included for reference.

holidaybookingsystem's People

Contributors

alexlovelock22 avatar elms64 avatar lamaofthesky avatar blops4gaming avatar gjepic avatar dlawlor2408 avatar gege713 avatar

Watchers

 avatar  avatar

holidaybookingsystem's Issues

Fix communication bug

Behaviour is no longer as expected when selecting countries and moving on to the flight form.

Define data structure

We need to create an entity relationship diagram that defines all of our data. Data types annotated may also be useful.

Handle GET Requests

All methods for handling any type of GET request expected from Program 1 needs to be programmed and exceptions to catch and unexpected or invalid requests.

Test HTTP Communication

Anyone can do this if they feel like it and let the team know if they are successful, it's not essential for the completion of the project but may help us understand the HTTP requests before building our applications. Create a blank Winforms app and a blank .NET Console App. Setup a HTTP server on the console app and send form data from the Winforms app to the console app using a POST request. Just to test the idea and get an understanding of how it works. Make sure you use two devices on the same LAN and correctly identify their local IP addresses to ensure it works.

Develop UI on Program 1 in Winforms

We need all of the text boxes, buttons, forms etc to be designed with appropriate naming for each object. Styling isn't required at this stage but basic layouts of requests to be made to Program 2 need to be visible.

Handle POST Requests

Finish defining all methods to deal with any POST requests that may come from Program 1. Ensure there is logic to handle all expected types of requests and exceptions to handle unexpected or invalid requests.

ProcessBatch Method

Define what to do when a batch process has been retrieved and needs to be processed in recovery mode.

HTTP Headers

Research how to effectively tag our requests so that program 2 knows an incoming post request is a batch request using some sort of tag or header.

Program 2/BookingProcessor/RecoveryMode.cs

HasBatchProcesses method is where program 2 asks program 1 for batch processes. This method needs to be completed so we can retrieve stored processes from program 1 when recovery mode is running.

Set status of bookings to 'Confirmed' when completing transactions

InsuranceBooking, FlightBooking, VehicleBooking and HotelBooking have a BookingStatus attribute set to pending when a booking is made. When the full booking including all IDs from these transactions is completed, the database should be updated so that the records relating to the transaction are set from pending to confirmed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.