index.html


Overview

The index.html file serves as the core HTML structure and user interface layout for the Meeting Inferno application. Its primary purpose is to provide the visual and semantic framework for the meeting cost calculator, enabling users to input meeting parameters, control the meeting lifecycle, view the real-time cost of meetings, and review historical meeting data.

This file defines the document structure, imports essential stylesheets and JavaScript modules, and organizes content into responsive Bootstrap grid containers. It is the entry point of the application’s user-facing interface and works closely with JavaScript logic (notably index.js) to enable interactive meeting cost tracking and management features.


Structure and Key Elements

Head Section

Body Section

The body contains a container div with class cover that applies a semi-transparent overlay for readability over a background image (styled via CSS).

It is organized into multiple rows and columns using Bootstrap grid:

  1. Header Row

    • Left column (col-md-8): Displays the application title Meeting Inferno styled with the seventies-font class using the Monoton font.

    • Right column (col-md-4): Placeholder for the "Cost" header, initially hidden (d-none), dynamically shown during meeting runtime.

  2. Form Section

    • Contains a form with three main inputs:

      • Number of Attendees (inputAttendees): Numeric input with min=2, max=200.

      • Average Hourly Wage (inputHourlyRate): Numeric input with min=1.00, max=100.00, step=1.00.

      • Purpose (inputPurpose): Text input limited to 40 characters with live remaining character count.

    • Inputs are wrapped in Bootstrap form groups and input groups, with icons indicating purpose (users, dollar sign, bullhorn).

    • Buttons below the inputs:

      • Start (Burn Baby Burn 🔥 🔥 🔥): A red danger button to start the meeting.

      • Stop!: A blue primary button, initially disabled, to stop the meeting.

      • Reset (Burn that mother down): A secondary button to reset the form and meeting state.

  3. Cost Display Section

    • A right column designed to show the current meeting cost dynamically. Initially hidden (d-none).

    • Contains a .cost div for rendering the cost amount in real time.

  4. Past Meetings Section

    • Displays a heading Past Meetings.

    • A container .past-meetings to dynamically list stored past meetings.

    • A Clear button to clear the stored meeting history.

  5. Footer

    • A small footer with attribution and a link to the GitHub repository hosting the project.


Important Attributes and Accessibility Features


Interaction with Other Parts of the System

The index.html file acts as the static scaffold for the UI and relies heavily on other modules to provide dynamic behavior:

The file is tightly integrated into the user interaction flow described in the User Interaction and Interface topic and supports the workflows for managing meeting inputs, controlling meeting timing, and displaying real-time and historical data.


Usage Examples

Starting a Meeting

Stopping a Meeting

Resetting the Meeting

Clearing Past Meetings


Important Implementation Details and Algorithms

While index.html itself contains no scripting logic or algorithms, it defines the input constraints and UI elements essential for the algorithms implemented in JavaScript:

This structure supports the cost calculation and meeting lifecycle management logic described in the related topics (Real-Time Meeting Cost Tracking, Persistent Meeting History, and Meeting Lifecycle Management).


Visual Diagram: File Structure and UI Element Relationships

flowchart TD
subgraph Header
Title[Meeting Inferno Title]
CostHeader["Cost Header (hidden initially)"]
end
subgraph Form
AttendeesInput["Number of Attendees Input"]
WageInput["Average Hourly Wage Input"]
PurposeInput["Meeting Purpose Input + Char Count"]
StartBtn["Start Button"]
StopBtn["Stop Button (disabled initially)"]
ResetBtn["Reset Button"]
end
subgraph CostDisplay
CostDiv["Cost Display (hidden initially)"]
end
subgraph PastMeetings
PastMeetingsHeader["Past Meetings Header"]
PastMeetingsDiv["Past Meetings List"]
ClearStorageBtn["Clear Storage Button"]
end
Footer["Footer with Attribution and GitHub Link"]
Title --> Form
CostHeader --> CostDisplay
Form --> CostDisplay
CostDisplay --> PastMeetings
PastMeetings --> Footer

This diagram shows the high-level layout and relationships of UI sections and key elements within the index.html file.


Summary of Key HTML Elements

Element ID / Class

Description

inputAttendees

Numeric input for number of meeting attendees

inputHourlyRate

Numeric input for average hourly wage per attendee

inputPurpose

Text input for meeting purpose, max 40 chars

.start-button

Button to start meeting timer

.stop-button

Button to stop meeting timer, initially disabled

.reset-button

Button to reset meeting inputs and state

#costHeader

Container for "Cost" heading, hidden initially

.cost

Div for displaying real-time meeting cost

.past-meetings

Container where past meetings are rendered

.clear-storage

Button to clear all stored past meetings

.seventies-font

CSS class applying Monoton font for retro styling


References to Related Topics


This documentation captures the purpose, structure, and role of the index.html file within the Meeting Inferno application, detailing its UI components, attributes, and integration points with the system’s interactive and data management modules.