Git Product home page Git Product logo

cinema-booking-app's Introduction

Log in as employee username: filip password: e or username: lucio password: e

Log in as customer username: ghita password: c or password: santa for customer christmas mode

Javadoc files in doc folder

UCL MediaCentral video link https://mediacentral.ucl.ac.uk/Play/10244

List of extra features Below you can find a list of extra features we implemented.

  • Using JSON to create, read, store, and modify data, rather than plain text (Main class readJSONFile method, etc.).
  • Code to create default JSON files programmatically (in the Main class, createJSONFile method).
  • Our application encrypts usernames and passwords (AES), so if you open the customers or the employees JSON file, you will see the encrypted stored credentials, rather than the actual ones we use to log in. They are decrypted on the fly, when the application is authenticating users. The functionality is contained in a class called Encryption.
  • Ability to choose in which folder to save the exported bookings.csv file.
  • Ability to delete films (only if there are no future bookings for them).
  • Customers can email themselves a confirmation of their booking from the summary screen that appears when they click on Book Seat and make a booking (SendEmail class). Check your UCL email account!
  • You can also play music. There is a playMusic method in the Main class that, when called, plays .mp3 files. Click on the play icon on top of the User Scene.
  • You can click on Send email in the main User Scene (the one that appears after you login successfully) and the native email client opens up with the email account of our cinema already filled-in as the recipient. The code for that can be found in the UserSceneController, in the sendEmailClick method.
  • When you click on a film poster and the pages showing its information (poster, title, description, dates, times) shows up, you can click on the film poster in that page (ViewSelectedFilm Scene) and it will open up YouTube and play the film’s trailer. You can also add a link to the trailer, when adding a new movie.
  • Custom-made background graphics and overall design, mostly by Lucio D’ Alessandro.
  • Creation and use of custom Java exception (ManageFilmsController class, InvalidFilmInput exception).
  • Inheritance (User parent class, Employee and Customer children classes).
  • Packaging: different packages for controllers, scenes, and resources (images).
  • Interfaces: implementing the Initializable interface, so that we can use its ‘initialize’ method to run code and customize a scene whenever it is created.
  • Importing and using open-source third-party libraries such as JSON Simple, JavaX Mail, and FontAwsomeFX.
  • Uploading images to enable users (both customers and employees) to personalise their experience.
  • Feedback scene to enable customers to leave feedback.
  • Extensive use of Alerts and Dialogs (popups) to provide information to users and prevent unwarranted behavior that might lead to bugs.
  • Comprehensive manual testing and debugging. Ability to extend and automate testing using JUnit for projects of a larger scope.

Important note The res folder needs to be located in the same path/directory as the Eclipse workspace folder (called zcinema) and the jar file, so that they can find it. It should not be inside the actual project folder with the source code though. If it gets moved to a different location, the application will no longer work.

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.