A Flask-based countdown timer web application that allows users to create, customize, and share countdown timers for various events. The application features a responsive design, multiple themes, and home screen installation support.
-
Timer Creation: Create countdown timers for any future event
-
Customizable Themes:
- Default: Clean, modern look
- Neon: Vibrant, glowing design
- Minimal: Simple, distraction-free interface
- Retro: Classic, nostalgic style
-
Flexible Layouts:
- Standard: Balanced presentation
- Compact: Space-efficient display
- Expanded: Large, prominent countdown
-
Sharing Capabilities:
- Web Share API support for mobile devices
- Fallback clipboard copying for desktop
- Shareable links without edit access
-
Timer Management:
- Edit timer details
- Update event name and end date
- Delete timers
- Secure edit access with tokens
-
Progressive Web App Features:
- Add to Home Screen functionality
- Standalone window mode
- Custom app icon
-
Clone the project on Replit or use the "Fork" button
-
The project automatically sets up:
- Python environment
- Required packages (Flask, SQLAlchemy)
- PostgreSQL database
-
Environment variables are automatically configured in Replit's Secrets tab:
DATABASE_URL
: PostgreSQL connection stringFLASK_SECRET_KEY
: Application secret key
- Visit the home page
- Enter the event name
- Set the end date and time
- Choose a theme (Default, Neon, Minimal, or Retro)
- Select a layout (Standard, Compact, or Expanded)
- Click "Create Timer"
-
Editing: Use the "Edit Timer" button (requires edit token)
- Modify event name
- Update end date/time
- Change theme or layout
-
Deleting: Use the "Delete Timer" button (requires edit token)
- Click the "Share Timer" button
- On mobile:
- Uses native share sheet
- Share via apps or copy link
- On desktop:
- Copies link to clipboard
- Share manually
- Click "Add to Home Screen" when prompted
- Or use browser's install PWA option
- App launches in standalone mode
The application uses:
- Flask for the backend
- SQLAlchemy for database operations
- Bootstrap for responsive design
- JavaScript for real-time updates
- Edit tokens protect timer modifications
- Shared URLs exclude edit access
- Database connections use connection pooling
- SQL injection protection via SQLAlchemy
The application is designed to run on Replit:
- Environment setup is automatic
- Database provisioning is handled by Replit
- Secrets management through Replit's Secrets tab
For issues or suggestions:
- Check your browser console for errors
- Verify database connection
- Ensure all required environment variables are set