A meeting agenda timer application that helps you keep your meetings on track.
# Install uv (if not already installed)
pip install uv
# Create and activate virtual environment
uv venv
source .venv/bin/activate # On Unix/macOS
# or
.venv\Scripts\activate # On Windows
# Install dependencies
uv pip install -r requirements.txt# Install dependencies
npm install
# Start the application in development mode
npm start# Build for all platforms
npm run build
# Build for specific platforms
npm run build -- --mac # macOS
npm run build -- --win # Windows
npm run build -- --linux # LinuxThe built applications will be available in the dist directory.
The application uses Flask for the development server. The server will automatically reload when you make changes to the Python files.
The application is built using Electron, allowing it to run as a native desktop application across different platforms.
The project uses GitHub Actions for continuous integration and deployment:
-
Triggered automatically on:
-
Pushes to the
mainbranch -
Creating version tags (e.g.,
v1.0.0)
-
-
Every push to
mainwill:-
Build the application for all platforms (macOS, Windows, Linux)
-
Upload build artifacts to the GitHub Actions run
-
You can download and test these artifacts from the Actions tab
-
-
Creating a version tag (e.g.,
v1.0.0) will:-
Build the application for all platforms
-
Create a GitHub release
-
Upload the built binaries to the release
-
Generate release notes
-
To manually create a release:
# Update version and create tag
npm version patch # or minor/major
# This will automatically:
# 1. Update package.json version
# 2. Create a git tag
# 3. Push changes and tag to GitHub
# 4. Trigger the release workflowTo create a test build without releasing:
# Just push to main branch
git push origin main
# Check the Actions tab on GitHub for build artifactsagenda-defender/
├── index.html # Main application HTML
├── main.js # Electron main process
├── package.json # Node.js dependencies and scripts
├── requirements.txt # Python dependencies
├── server.py # Development web server
├── scripts/ # JavaScript files
└── styles/ # CSS filesCreated by @dylanbeattie
-
Simple, clean interface for managing meeting agendas
-
Real-time countdown timer
-
Light and dark theme support with system preference detection
-
Cross-platform support (macOS, Windows, Linux)
-
Native application experience
Visit the releases page to download the latest version for your platform:
-
macOS: Download
Agenda Defender.dmgorAgenda Defender.zip -
Windows: Download
Agenda Defender Setup.exe -
Linux: Download
Agenda Defender.AppImage
-
Clone the repository:
git clone https://github.com/dylanbeattie/agendadefender.git cd agendadefender -
Install dependencies:
npm install
-
Start the development server:
npm start
-
Ensure you have Xcode Command Line Tools installed:
xcode-select --install
-
Generate the icon set:
cd icon chmod +x convert-icons.sh ./convert-icons.sh -
Build the application:
npm run build
The built application will be in dist/mac.
-
Update the version number:
npm version patch # for bug fixes (1.0.0 -> 1.0.1) # or npm version minor # for new features (1.0.0 -> 1.1.0) # or npm version major # for breaking changes (1.0.0 -> 2.0.0)
-
The release process will automatically:
-
Push changes to GitHub
-
Create a new tag
-
Trigger GitHub Actions to:
-
Build the application for all platforms
-
Create a GitHub release
-
Upload the built binaries
-
-
.
├── icon/ # Application icons
├── scripts/ # JavaScript files
├── styles/ # CSS styles
├── .github/ # GitHub Actions workflows
├── index.html # Main HTML file
├── main.js # Electron main process
└── package.json # Project configuration