1.5 KiB
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, neverpython
- All Python code should include type annotations
- Use
typing.Any
instead ofAny
in type hints (import from typing module) - Run
mypy --strict
(fix any type errors in the file) andblack
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 typesweb_view.py
- Flask web application entry pointtemplates/
- Jinja2 HTML templatesstatic/
- CSS, JS, and frontend assetsconfig/
- Configuration filespersonal-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