A full-featured Flask-based Todo application with:
- ✅ User registration & login
- 🌒 Light/Dark mode toggle
- ✍️ Task creation, completion, editing & deletion
- 🗕️ Calendar view (FullCalendar)
- 📧 Email reminders for due tasks
- 📄 Export to CSV
- 🔐 Secure config via
.env
| Feature | Description |
|---|---|
| 👤 Authentication | Register/login system using werkzeug.security |
| 🌗 Dark Mode Toggle | Session-based light/dark theme switching |
| 📬 Email Reminders | SMTP-based alerts for tasks due today |
| 📄 Export Tasks | CSV download of your todo list |
| ✨ Task Manager | Add, complete, delete, edit tasks |
| 🗕️ Calendar View | View tasks visually by due date |
- Python 3.10+
- Flask
- Bootstrap 5
- Jinja2 templating
- FullCalendar.js (calendar view)
python-dotenvfor config- SMTP (for email reminders)
Create a .env file in your project root with:
FLASK_SECRET_KEY=your_secret
EMAIL_USER=your_email@example.com
EMAIL_PASS=your_password
EMAIL_SMTP=smtp.example.com
EMAIL_PORT=587✅ Be sure to add .env to your .gitignore
git clone https://github.com/YOUR_USERNAME/todo-flask-app.git
cd todo-flask-app
pip install -r requirements.txt
flask runYou can manually visit /remind or schedule a cron job:
curl https://your-deployed-app.com/remind- Recommended: Render
- Set up environment variables from
.env - Use
gunicornas your start command:
web: gunicorn main:appMIT © [Your Name]