Organization tools for Asso Info Evry - Presentations, events, and more.
This repository contains tools for generating presentation materials, event assets, and other organizational content for the association.
- Presentation Generator: Create 4K presentation slides with QR codes, combine into PDF
- Designed for events like Nuit de l'Info
- Uses the association's design system (Cupertino font, color palette)
- Bun runtime (v1.0+)
- Python 3 with
fonttoolspackage (for font processing)
# Install Python dependencies
pip install fonttools brotli# Install dependencies
bun installGenerate professional presentation slides and combine them into a single PDF.
# Generate presentation
bun run generate
# With detailed progress output
bun run generate:verbose
# Show help
bun run generate -- --help| Option | Description |
|---|---|
--verbose, -v |
Show detailed progress during generation |
--font <path> |
Custom path to Cupertino font file |
--help, -h |
Show help message |
The generated presentation is saved to:
output/presentation.pdf
- Title Slide - Association logo and name
- Discord - QR code for event Discord server
- Nuit de l'Info - QR code for the official NDI website
- Programme - Event schedule with activities
- Escape Game - Locked Up escape game promotion
- Association - Association website QR code
- Sujet - Link to download the event subject
The generator uses the Cupertino font from the astro-design submodule. By default, it looks for:
../astro-design/src/fonts/Cupertino-Pro-Full.woff2
If running outside of astro-maestro, specify the font path:
bun run generate --font /path/to/Cupertino-Pro-Full.woff2Place logo files in the assets/ directory:
| File | Description |
|---|---|
AIE.png |
Association Info Evry logo |
lockedup.logo.png |
Locked Up escape game logo |
# Run tests
bun run testastro-orga/
├── assets/ # Logo files and images
│ ├── AIE.png
│ └── lockedup.logo.png
├── scripts/
│ └── generate-presentation.ts # Main presentation generator
├── src/
│ └── cli.ts # CLI utilities (colors, spinner)
├── tests/
│ └── generate-presentation.test.ts
├── output/ # Generated files (gitignored)
│ └── presentation.pdf
├── .cache/ # Font cache (gitignored)
├── package.json
└── README.md
Edit scripts/generate-presentation.ts to customize:
- Colors: Update the
COLORSobject - URLs: Update
DISCORD_URL,NDI_URL,ASSO_URL, etc. - Activities: Modify
SCHEDULED_ACTIVITIESandMISC_ACTIVITIESarrays - Slide content: Modify the
slidesarray ingeneratePresentation()
- Create a new slide generator function (see
generateTitleSlideas example) - Add it to the
slidesarray ingeneratePresentation() - The slide will automatically be included in the PDF
- Satori renders React-like elements to SVG
- Resvg converts SVG to high-resolution PNG (4K)
- pdf-lib combines all PNGs into a single PDF
- Temporary PNG files are cleaned up automatically
- astro-maestro - Orchestrator for all Astro projects
- astro-design - Shared design system (fonts, colors)
- astro-ndi - Nuit de l'Info registration site