agenda/AGENTS.md

1.5 KiB

Development Guidelines

Project Overview

This is a personal agenda web application built with Flask that tracks various events and important dates:

  • Events: birthdays, holidays, travel itineraries, conferences, waste collection schedules
  • Space launches, meteor showers, astronomical events
  • Financial information (FX rates, stock market)
  • UK-specific features (holidays, waste collection, railway schedules)
  • Authentication via UniAuth
  • Frontend uses Bootstrap 5, Leaflet for maps, FullCalendar for calendar views

Python Environment

  • Always use python3 directly, never python
  • All Python code should include type annotations
  • Use typing.Any instead of Any in type hints (import from typing module)
  • Run mypy --strict (fix any type errors in the file) and black on modified code after creating or modifying Python files
  • Avoid running black .
  • Main entry point: python3 web_view.py (Flask app on port 5000)
  • Tests: Use pytest (tests in /tests/ directory)

Project Structure

  • agenda/ - Main Python package with modules for different event types
  • web_view.py - Flask web application entry point
  • templates/ - Jinja2 HTML templates
  • static/ - CSS, JS, and frontend assets
  • config/ - Configuration files
  • personal-data/ - User's personal data (not in git)

Git Workflow

  • Avoid committing unrelated untracked files (e.g., node_modules/, build artifacts)
  • Only commit relevant project files
  • Personal data directory (personal-data/) is excluded from git