[go: up one dir, main page]

Menu

Tree [f83737] main /
 History

HTTPS access


File Date Author Commit
 css 6 days ago Cement Cement [3c7de1] Initial commit
 js 6 days ago Cement Cement [fe5dcc] added saving and loading json
 LICENSE 6 days ago Cement Cement [adb97a] Initial commit
 README.md 6 days ago Cement Cement [f83737] 67
 mun-timer.html 6 days ago Cement Cement [fe5dcc] added saving and loading json

Read Me

MUN Timer

A Customizable GUI timer designed for MUN.

Vibe-coded using Claude Sonnet 4.5. Initial Prompt:

Create a simple flexible timer app for a Model United Nation (MUN).

On the left, there is a numbered list of topics/agenda which can be reordered using up and down buttons, and on the right, there is a timeline of events which can also be reordered. The timeline should be interactable, clicking an event sets the current event to that event. In the center there is the title and subtitle of the current event, and potentially a topic. There could also be a timer if appropriate, the timer should have a pause/resume/reset function, and for moderated caucus there should be two timers, a total time and timer per speaker. There could also be a vote counter/visualize when appropriate, where votes are inputted.

On the bottom there are all the delegates and the chair, represented by the letters of their country (or in the case of the chair just a human icon). The order and title events, whether a timer is needed, the time and delegates are all saved in json format, which can be editied in the app or copied to elsewhere. Furthermore, a new mod/unmod caucus, voting etc can be added on the fly via a GUI panel.

Build this using HTML CSS and JS. Include the default json in the code.

Screenshots:

image
image
image
image
image
image

67

Save/Load JSON

  • Save JSON: Click "Save JSON" to download the current configuration (topics, events, delegates, chair) as a .json file. The filename includes a timestamp.
  • Load JSON: Click "Load JSON" and choose a previously saved .json file to restore the configuration. The file is validated for basic shape before applying.

Notes:
- Loading JSON will reset the current event selection and re-render the UI.
- The expected schema matches the appData object used by the app: { topics: Topic[], events: Event[], delegates: Delegate[], chair: { name: string } }.