Skip to content

aelike/Formula-1-Time-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Formula 1 Time Manager

What it does?

This application can create a driver, and sort them into a list of driver for one race. In addition, each driver has the capability of being added a set of lap times from any race event, and the app will take all these times and sort them into a list that contains all the times.

Given:

The app will:

  • Show a list of drivers
  • Show a list of lap times

Who will use it?

Any racing enthusiast with a passion for quantitative data who wants to document, compare and contrast different lap times.

My personal interest

As I've watched F1 for years with my brother and father, I constantly noticed mistakes and mishaps with pit stop and tire management strategies, and how a poorly miscalculated (or incomplete) pit stops could lead to losing places, or even losing the World Driver Championship (Abu Dhabi 2021). So I have decided to make my own project to showcase the power of code in recording the change in lap times and performance.

User stories

  • As a user, I want to be able to add a driver to a race.

  • As a user, I want to be able to view the list of drivers.

  • As a user, I want to be able to choose a created driver, and add lap times to a list of total laps driven on a single set of tires for one driver.

  • As a user, I want to be able to remove a laptime from my list of laps.

  • As a user, when I select the quit option in the application menu, I want to have an option to save my drivers and lap times to file

  • As a user, I want to be able to load my previously saved drivers and lap times from file.

Instructions for End User

  • You can generate the first required action related to the user story "adding a lap time for one driver" by:
  1. Clicking the left panel tab labelled 'Driver', typing the name of your driver, and clicking 'Add Driver'.
  2. Clicking the left panel named 'Add Lap Times', selecting the driver to add lap times to, writing the number of laps to add, and writing in every lap. *note: the bottom of the driver tab contains a text box that contains all the elements of the race: every Driver, and their added lap times.
  • You can generate the second required action related to the user story "adding multiple lap times to a driver" by clicking the 'Remove Lap Time' panel on the left. You will see a new menu pop up and you can choose to add or remove multiple drivers from there.

  • You can locate my visual component on the 'Driver' tab of my application. The 'Driver' tab displays an animated Gif that shows the F1 2012 intro. The gif is viewable every time you open the tab.

  • You can save the state of my application by choosing the left tab 'Save', and clicking the 'Save' button. You will be prompted with a message that says you successfully saved the race.

  • You can reload the state of my application by choosing the 'Load' tab, and clicking the 'Load' button. You will be prompted with a message that says you loaded the race successfully.

Instructions for End User

  • You can generate the first required action related to the user story "adding multiple Xs to a Y" by...
  • You can generate the second required action related to the user story "adding multiple Xs to a Y" by...
  • You can locate my visual component by...
  • You can save the state of my application by...
  • You can reload the state of my application by...

Phase 4: Task 2

Wed Aug 06 22:29:19 PDT 2025 New driver added: Hamilton

Wed Aug 06 22:29:29 PDT 2025 Lap time added: LapTime = [19.97]

Wed Aug 06 22:29:31 PDT 2025 Lap time added: LapTime = [24.97]

Wed Aug 06 22:29:33 PDT 2025 Lap time added: LapTime = [19.97]

Wed Aug 06 22:29:41 PDT 2025 Lap time removed: LapTime = [19.97]

Phase 4: Task 3

The UML diagram has good seperation for all the classes and fields, and I like how the tabs were seperated for their functions. If I had more time to work on the project, I would've spent more time implementing the JPanel setup in Tab and then having the super function implement it. There was a lot of repitition in LapTimeTab and RemoveTab. In all the tabs I needed to write a method to individually add a JPanel to every tab, so a future improvement would be adding one method for adding a panel in the Tab method and then extending it from that method to every other tab rather than wasting time and code initializing every new tab in the same manner.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages