Khang Thai
  • About
  • Experience
  • Projects
  • Contact
  • Resume

Task Manager

A Java and PostgreSQL task manager over JDBC — full CRUD, prepared statements, and a schema designed from scratch.
Author

Khang Thai

Published

January 26, 2025

Java PostgreSQL JDBC SQL

A deliberately small project with a deliberate purpose: build the database layer by hand. No ORM, no framework — just Java, JDBC, and a PostgreSQL schema I designed myself, so that every query and every connection is something I had to reason about.

Schema design

  • Designed a PostgreSQL tasks table with columns for task ID, name, description, due date and status.
  • Chose types and constraints up front rather than letting a migration tool decide them.

JDBC integration

  • Established the JDBC connection and wrote the SQL for insert, select, update and delete directly.
  • Used prepared statements throughout — parameterized queries, so user input never reaches the database as concatenated SQL. This is the whole reason to write the layer by hand: SQL injection stops being an abstract lesson.

Application

  • Add a task with name, description, due date and status.
  • View every task currently persisted.
  • Update a task's name or status.
  • Delete a task permanently.
  • Wrapped in a console interface that prompts for each operation.

Where it goes next

The natural extensions are user authentication, filtering and sorting on the query side, and a real front end. The backend is already structured so that swapping the console for an HTTP layer would not require rewriting the data access code.

Project repository
Diabetes Risk Model Amazon Purchase Predictor

© 2026 Khang Thai · Built with Quarto