deploring / MiniTicketer

Assessment Project for Job Application @ IntegraDev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MiniTicketer

A proof-of-concept program that allows users to book tickets for screenings. A screening is a period of time where a movie is shown at a venue. Venues are numbered, and they have a specified seating dimension (rows x columns). Please check IntegraDev Proposal + Plan.pdf, Table Creation Statements.sql, and Table UML Diagram.png for more detailed insight.

Compilation

Note: A pre-compiled MiniTicketer.JAR file exists in the repository already. You can double click it to run the program instead of compiling a JAR yourself!

Otherwise, you will need to use Maven to compile. Once Maven is installed, type the following into your commandline:

cd /path/to/MiniTicketer
mvn clean install

Maven automatically downloads the other required dependencies. Output JAR will be placed in the /target folder which can be clicked to run the program.

First-Time Running

Note: You need a MySQL v8.0+ server to run this program! Please contact lavuh if you want a username and password to access your own database on his VPS.

When running the program for the first time:

  1. Double click the JAR to run the program & generate the configuration file. The program will not load as the MySQL server has not been configured.
  2. Open the ticketer.settings file which is now beside the JAR file in your favourite text editor, and provide correct server & login details to the relevant fields.
  3. Double click the JAR to run the program again. You may experience a delay of up to 20 seconds while the tables are generated and the test data is imported. This will only happen once.
  4. Troubleshoot any additional connection errors using the error messages that the dialogs provide.
  5. Enjoy!

Quick-Start Guide

There is also a quick start guide included with the program in the About section of the top menu. This one is a little bit more comprehensive. Here's a quick demonstration of program flow:

  1. Open MiniTicketer.
  2. On the left half of the screen, navigate through the pages of available movie screenings and click "Book Now" on one that you find interesting!
  3. Once you have selected a screening to book, the dropdown list on the right side will now be enabled. Select a date+time slot that suits you. Note: Each screening only plays at certain days and times!
  4. Once you have selected a time slot, specify the number of people who will be attending the screening. Submit your answer and the program will inform you of any errors.
  5. Once you have entered a valid number of attendees, click "Confirm & Select Seats" to move onto the next step in the booking process.
  6. Click on seats to highlight them green, indicating that you are booking this seat. Select enough seats for all of your attendees to move onto the next step. Seats highlighted in red and un-clickable indicate that they are already taken.
  7. You are given a chance to review your choices before finalising your booking. If you are happy with your selection, enter a username to book the tickets under. The program will let you know if there is anything wrong with your username selection.
  8. Once you have entered a valid username to store the booking under, click "Make Booking" to finalise your booking! You will then be brought back to the first menu.
  9. You may view your booked tickets at any time by clicking "View Tickets" and supplying the username they are kept under.
  10. Book as many tickets at any time for as many screenings as you like! Have fun!!

TIP 1: Too many movies? Try sorting by a specific genre using the tool in the top menu!

TIP 2: If you have selected a large number of attendees, try using the "auto select" feature to automatically select enough seats for all of your attendees!

TIP 3: If you are not happy with your seat selection, you can return to the seat allocation screen from the final confirmation screen!

TIP 4: To see logging during runtime, run MiniTicketer.jar through your command line using java -jar MiniTicketer.jar.

Before Modifying the Database...

  • It is not recommended to alter the structure of the database tables.
  • If you wish to add additional genres, movies, venues, or screenings, do so with great care.
  • If screening time periods for the same movie overlap, one will be automatically removed by the program.
  • If you modify values, do not induce erroneous values that you would not be able to induce through regular use of the program. Data is extensively validated on the front-end!
  • Tables enforce certain checks and have primary & foreign key constraints. Keep this in mind when removing, adding, or modifying table rows.

That's it!

Have fun using MiniTicketer!

  • Joshua / lavuh

About

Assessment Project for Job Application @ IntegraDev

License:GNU General Public License v3.0


Languages

Language:Java 79.1%Language:TSQL 20.9%