# Calink Quick Start Guide Get Calink running in under 5 minutes! ## Option 1: Docker Compose (Recommended) **Requirements:** Docker and Docker Compose ```bash # Clone or navigate to the project cd ics-generator # Start everything docker-compose up -d # View logs docker-compose logs -f # Access the app open http://localhost ``` That's it! Calink is now running on http://localhost To stop: ```bash docker-compose down ``` ## Option 2: Local Development **Requirements:** Python 3.11+, Node.js 18+ ### Terminal 1 - Backend ```bash cd backend pip install -r requirements.txt python main.py ``` Backend runs on: http://localhost:8000 ### Terminal 2 - Frontend ```bash cd frontend npm install npm run dev ``` Frontend runs on: http://localhost:5173 ## Option 3: Kubernetes with Helm **Requirements:** Kubernetes cluster, Helm 3+ ```bash # Install Calink helm install calink ./helm/calink # Check status helm status calink # Get access info kubectl get ingress ``` ## First Steps 1. **Create an Event** - Open the web UI - Fill in event title and start date/time - Add reminders using quick buttons or custom values - Click "Download .ics" 2. **Use History** - Switch to "History" tab - Click "Load" on any past event to reuse it - Click "Delete" to remove old events 3. **Create Templates** - Set up your favorite reminder configuration - Switch to "Templates" tab - Click "Save Current Reminders" - Name your template - Apply it anytime in future events ## API Examples ### Generate ICS File ```bash curl -X POST "http://localhost:8000/api/ics" \ -H "Content-Type: application/json" \ -d '{ "title": "Team Meeting", "start_dt": "2026-03-01T10:00:00Z", "reminders": [ {"amount": 10, "unit": "minutes"} ] }' \ --output meeting.ics ``` ### Get History ```bash curl http://localhost:8000/api/history ``` ### Create Template ```bash curl -X POST "http://localhost:8000/api/templates" \ -H "Content-Type: application/json" \ -d '{ "name": "Standard Reminders", "reminders": [ {"amount": 10, "unit": "minutes"}, {"amount": 1, "unit": "hours"}, {"amount": 1, "unit": "days"} ] }' ``` ## Troubleshooting **"Failed to fetch" in UI:** - Ensure backend is running on port 8000 - Check browser console for errors - Verify CORS is enabled (it should be by default) **Docker: "Port already allocated":** ```bash # Stop conflicting service docker-compose down # Or change ports in docker-compose.yml ``` **Backend: "No module named 'fastapi'":** ```bash cd backend pip install -r requirements.txt ``` **Frontend: Build errors:** ```bash cd frontend rm -rf node_modules package-lock.json npm install ``` ## Next Steps - Read the full [README.md](README.md) for detailed documentation - Explore API documentation at http://localhost:8000/docs - Customize Helm values for production deployment - Set up ingress for custom domain ## Support - API Docs: http://localhost:8000/docs (when backend is running) - Health Check: http://localhost:8000/health - Full Documentation: [README.md](README.md) --- **Happy event creating! 🎉**