A collaborative planning application with calendar integration and email notifications.
- User management with admin capabilities
- Shop and reservation management
- Email notifications and reminders
- Calendar integration (ICS format)
- Multi-language support (English and French)
- Responsive web interface
-
shared_planner/- Python backendapi/- REST API endpointsdb/- Database models and operationsics.py- Calendar integrationmailer_daemon.py- Email notification systemweek.py- Week management logictemplates/- Email templates
-
web/- Vue.js frontend application- Built with Vue 3 + TypeScript + Vite
- PrimeVue component library
- Python 3.12+
- Node.js 16+
- SQLite3 database
- SMTP server for emails (e.g. OVH)
- Install
uv(if not already installed):
curl -LsSf https://astral.sh/uv/install.sh | sh- Install dependencies:
uv sync- Set up environment variables:
cp .env.example .env # If an example exists, otherwise create .env
nano .env- Navigate to the web directory:
cd web- Install dependencies:
npm installThis project supports hot-reloading for both the UI and backend using Docker Compose.
-
Start the services:
docker compose up --build
-
(Optional) Enable Docker Compose Watch for automatic sync:
docker compose watch
The Backend will be available at http://localhost:8000 and the UI at http://localhost:5173.
Backend:
uv run python -m shared_plannerFrontend:
cd web
npm run devThe production setup bundles the UI and Backend into a single optimized container.
- Build and run:
docker compose -f docker-compose.prod.yml up --build -d
The application will be available at http://localhost:8000.
- Build the frontend:
cd web
npm run build- Run the backend with a production server:
uv run gunicorn -w 4 -k uvicorn.workers.UvicornWorker shared_planner.api:app --bind 0.0.0.0:8000The following settings must be configured in the admin interface:
base_domain: The domain name of your server (e.g., https://example.com)admin_mail: Email address for admin notificationsmail_from: Email address used as the sender for notifications
block_all_emails: Disable all email notifications (useful for testing)email_notification_before: Hours before a reservation to send a remindercleanup_reminders_days: Days to keep reminders before cleanupcleanup_notifications_days: Days to keep notifications before cleanuptoken_validity: Hours before login tokens expire
For a complete list of settings and their descriptions, head to the Admin > Server Settings page where you will be able to modify them and find a detailed description of each setting.
This project is licensed under the MIT License. See the LICENSE file for details.