36 Commits

Author SHA1 Message Date
e4db258bc5 fix: update version 2025-12-10 11:38:16 +01:00
449adc60e0 feat: dark mode and python 3.14 2025-12-10 11:36:40 +01:00
d68dc8411f chore: speedup readyness 2025-10-15 17:25:08 +02:00
60f776c56d chore: service internal traffic policy 2025-10-15 17:24:13 +02:00
7228dc4ec6 chore: add scale-to-zero overlay 2025-10-15 17:11:30 +02:00
e4989dcc8d chore: bump production image tag to 1.2.0 2025-10-07 08:47:52 +02:00
3fdbfcf20e feat: replace checkbox with radio buttons for exercise type selection
- Replace the checkbox "Générer uniquement des multiplications" with radio buttons for "Multiplications uniquement" and "Multiplications ET divisions"
- Update JavaScript code to handle radio button values instead of checkbox
- Maintain backward compatibility with old localStorage format
- Ensure all functionality remains intact
2025-10-07 08:46:38 +02:00
b17afbb5cd chore: bump production image tag to 1.1.0 2025-10-07 08:34:21 +02:00
711a26c26c chore: bump production image tag to 1.0.10 2025-10-07 08:33:13 +02:00
21c9bfd359 feat: implement localStorage for form parameter persistence
- Add saveFormValues() function to store all form parameters in localStorage
- Add restoreFormValues() function to retrieve form parameters from localStorage
- Modify DOMContentLoaded event to restore form values on page load
- Add calls to saveFormValues() in both form submission handlers
- Add event listeners to save form values whenever any input changes

This enhancement improves user experience by preserving form settings between visits.
2025-10-07 08:29:42 +02:00
3d720ff426 feat: add configurable max_first_operand for multiplication exercises with randomized operand order 2025-10-07 08:23:34 +02:00
d9dd1281c3 refactor: move S3 functions to separate file for clarity 2025-10-07 08:12:54 +02:00
edefce9703 chore: use cache for pip 2025-10-07 08:09:42 +02:00
eb6da3d9cf feat: multi-stage build for slim image 2025-10-07 07:58:08 +02:00
bc55b95bda feat: permit to generate only multiplications 2025-10-07 07:55:18 +02:00
7284c60b93 fix: resolve ruff linting issues and improve code formatting 2025-09-26 08:25:02 +02:00
28b1c80b50 feat: add operation exercises generation using gen_op.py
Moved gen-op.py to app/gen_op.py and integrated it with the FastAPI application

Added a new section in the UI for generating operation exercises

Updated the PDF generation to work in memory and upload to S3

Bumped version to 1.0.9
2025-09-25 19:10:13 +02:00
8bedd8a97a feat: remove footer from PDF generation and update production image tag 2025-09-04 21:09:46 +02:00
e9db1b012d chore: enable seccompProfile again 2025-09-04 13:39:49 +02:00
9e2d6eeb12 fix: add tmp volume for bulk download functionality 2025-09-04 13:08:30 +02:00
3f1a3cf7a4 chore: add sops encrypted credentials 2025-09-04 08:43:17 +02:00
b3426f7493 feat: add health check endpoint and suppress health check logs
Added a /health endpoint for application health monitoring

Implemented logging filter to suppress health check requests from logs

Updated Dockerfile and Kubernetes deployment to use the new health check endpoint

Incremented production image tag version
2025-09-04 00:42:53 +02:00
cadc34f797 chore: update dependencies and bump version to 1.0.5 2025-09-04 00:37:14 +02:00
cdaf3d9500 refactor: standardize string quotes and improve code formatting
Updated both main.py and generate_math_exercises.py to use consistent double quotes for strings and improved code formatting with better line breaks for readability. Also added JSON import to main.py for bulk operations.
2025-09-04 00:08:13 +02:00
1d47b5490e chore: update .gitignore 2025-09-03 23:57:41 +02:00
5d11fe9763 chore: simpler network policy 2025-09-03 23:57:25 +02:00
e0dddb70ec fix: update network policy to allow S3 traffic and kubelet health checks 2025-09-03 23:45:16 +02:00
fac44d2246 chore: bump version to 1.0.2 2025-09-03 23:08:17 +02:00
3c07c89f24 feat: add pagination to file listing and improve UI 2025-09-03 23:07:02 +02:00
75548dab2b feat: migrate to S3 storage with automatic download and timestamped filenames
- Replace local file storage with S3-compatible object storage

- Add automatic PDF download after generation

- Include timestamps in filenames to ensure uniqueness

- Remove unused static volume from Kubernetes deployment

- Update ConfigMap to remove unused variables and add S3 configuration

- Configure S3 credentials via Kubernetes secrets for both dev and prod environments

- Add boto3 dependency for S3 integration
2025-09-03 22:41:16 +02:00
a67db405f7 chore: add .envrc to .gitignore 2025-09-03 22:26:11 +02:00
f94dd12216 feat: Configure production deployment with math-tables namespace and ingress
Changes made:

- Remove problematic configuration-snippet from base ingress

- Add namespace creation for math-tables

- Configure ingress with nginx class and letsencrypt-prod issuer

- Set production hostname to math-tables.cl1.parano.ch

- Reduce production replicas to 1

- Update copyright year in index.html
2025-09-03 22:06:32 +02:00
82c5cdb6e1 feat: add Dockerfile 2025-09-03 21:36:13 +02:00
fd2f296f44 feat: add web interface for math exercise generator
- Create FastAPI backend with endpoints for generating math exercises
- Build Bootstrap frontend with responsive UI for exercise configuration
- Implement PDF generation functionality identical to original script
- Add README with installation and usage instructions
- Update requirements.txt with web dependencies
- Configure .gitignore to exclude compiled files and generated PDFs
2025-09-03 21:25:45 +02:00
be6b2b6716 add .gitignore 2025-09-03 21:12:13 +02:00
517ed8f4b5 initial import 2025-09-03 21:11:25 +02:00