How authorsauravkushwaha/historycal works
HistoryCal is a desktop calendar whose main workflow is navigating an unbounded Gregorian month, selecting a day, and viewing that day’s personal events and historical events. The UI coordinates date calculations, recurring-event storage, deterministic date-based styling, and asynchronous history requests; users can also add, update, and remove personal events, and filter history to battle-related entries. Wikipedia data is cached locally for repeat and offline access. The graph follows the documented product layout and sampled calls; some UI wiring is inferred only where the excerpts show it explicitly.
Main entry points: ui.py Tkinter calendar UI · history_api.py History fetch and filter · main.py Application entry · storage.py Personal event store
Components 11
Desktop interface
- Application entry
main.py - Tkinter calendar UI
historycal/ui.py
Calendar and events
- Unbounded date math
historycal/calendar_math.py - Personal event store
historycal/storage.py - Events JSON file
Historical events
- History fetch and filter
historycal/history_api.py - Wikipedia REST API
- History cache files
Visual styling
- Date-based palette
historycal/theme.py - Canvas drawing helpers
historycal/theme.py
Other components
- Calendar user
Connections 12
- Calendar user → Application entry: launches
- Application entry → Tkinter calendar UI: starts
- Calendar user → Tkinter calendar UI: navigates and edits
- Tkinter calendar UI → Unbounded date math: builds date grid
- Tkinter calendar UI → Personal event store: reads and edits events
- Personal event store → Events JSON file: loads and saves
- Tkinter calendar UI → History fetch and filter: requests history
- History fetch and filter → Wikipedia REST API: fetches events
- History fetch and filter → History cache files: reads and writes cache
- History fetch and filter → Tkinter calendar UI: returns results
- Tkinter calendar UI → Date-based palette: gets date palette
- Tkinter calendar UI → Canvas drawing helpers: draws calendar