Skip to content
MrAnand75Public

About

Task Management Web Application

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

TaskFlow — Task Management Web App

A responsive full-stack task manager built with Python Flask, Flask-SQLAlchemy, SQLite, HTML, CSS, and vanilla JavaScript.

Features

  • Account registration, sign-in, password hashing, and sign-out
  • User-owned tasks (each account only sees its own tasks)
  • Create, read, update, and delete tasks (CRUD)
  • Task status: To do, In progress, Completed
  • Priority: Low, Medium, High
  • Optional due dates with overdue indicators
  • Dashboard statistics and progress bars
  • Search, status filters, date views, and sorting
  • Responsive desktop, tablet, and mobile layout
  • Lightweight 10-second polling for updates across open sessions (no WebSocket service required)
  • JSON API endpoints for task operations

Tech stack

  • Backend: Python + Flask
  • Database/ORM: SQLite + Flask-SQLAlchemy
  • Authentication: Flask session + Werkzeug password hashing
  • Frontend: HTML templates, custom CSS, vanilla JavaScript Fetch API

Run locally

1. Extract and enter the project folder

cd taskflow_task_manager

2. Create a virtual environment

Windows PowerShell:

py -m venv .venv
.venv\\Scripts\\Activate.ps1

macOS/Linux:

python3 -m venv .venv
source .venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Configure environment (recommended)

Copy .env.example to .env, then set a unique SECRET_KEY. Flask does not automatically load .env in this project, so either export the variables in your terminal or install python-dotenv and run through Flask. For a simple local run, the development fallback secret is enabled; replace it before deployment.

PowerShell:

$env:SECRET_KEY="your-long-random-secret"

macOS/Linux:

export SECRET_KEY="your-long-random-secret"

5. Start the app

python app.py

Open http://127.0.0.1:5000

The SQLite database taskflow.db is created automatically on first run.

API

All task API routes require a signed-in session.

Method Endpoint Purpose
GET /api/tasks List current user's tasks
POST /api/tasks Create task
PATCH /api/tasks/<id> Update task fields
DELETE /api/tasks/<id> Delete task
GET /api/health Health check

Example create-task JSON:

{
  "title": "Prepare project presentation",
  "description": "Finalize slides and rehearse",
  "status": "todo",
  "priority": "high",
  "due_date": "2026-10-09"
}

Deployment notes

  • Set SECRET_KEY to a long, random value in your hosting provider's environment variables.
  • Set FLASK_DEBUG=false in production.
  • Use a persistent disk for SQLite on hosts where local files are ephemeral, or configure DATABASE_URL for a managed PostgreSQL database.
  • Run behind a production WSGI server such as Gunicorn (pip install gunicorn, then gunicorn app:app).
  • For production hardening, add CSRF protection for form/session endpoints, HTTPS-only secure cookie settings, database migrations, and rate limiting.

Project structure

taskflow_task_manager/
├── app.py
├── requirements.txt
├── .env.example
├── README.md
├── templates/
│   ├── base.html
│   ├── landing.html
│   ├── auth.html
│   └── dashboard.html
└── static/
    ├── css/style.css
    └── js/
        ├── app.js
        └── dashboard.js

About

Task Management Web Application

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages