All projects

Coursework

Task Management System

A collaborative project-management tool with task ownership, progress tracking, deadline notifications, JWT authentication, and a React interface.
When
Feb 2024 – May 2024
Type
Coursework

What I built8

  • Built collaborative workflows for task assignment, progress tracking, and deadline notifications.
  • Developed a Flask REST API with SQLAlchemy for persistence.
  • Designed the React interface and implemented JWT authentication.
  • Enforced permissions in the query rather than the view: a task list is scoped to the projects a user belongs to at the database layer, so a forgotten UI check cannot leak another team's board.
  • Modelled status as a state machine with declared transitions, so a task cannot go from done back to unassigned and skip the reopen that would have notified its owner.
  • Made deadline notifications idempotent per task and per day, because a scheduler that runs every hour will otherwise mail someone seven times about one overdue item.
  • Added optimistic UI updates with rollback on failure, so reassigning a task feels instant but a rejected write does not leave the board showing a lie.
  • Indexed the list query on (project_id, status, due_date), the three columns every board view filters on, after the first version scanned the whole table to render one column.

Tools

  • React
  • Flask
  • SQLAlchemy
  • JWT
  • Docker
  • AWS
  • PostgreSQL
Next projectReal-Time Chat Application