Portfolio Practice Project · PHP & MySQL

A clean, modern personal task manager with authentication, smart filters, search, due dates and profile settings. Built from scratch with pure PHP and MySQL.

See the app ↓ GitHub Repo

Clean interface, real functionality

Dashboard, Add Task and Profile pages — fully functional with filters, search, AJAX status toggle and file upload.

01 · Dashboard

My Tasks at a glance

View all your tasks in a clean list. Filter by All, Today, Upcoming or Completed. Search instantly across titles and descriptions.

  • Filter: All · Today · Upcoming · Completed
  • Real-time search across title & description
  • AJAX checkbox to mark complete / pending
  • One-click delete with instant UI update
TaskMaster Dashboard
02 · New Task

Create tasks in seconds

Simple form to add a new task with title, description and due date. Validation ensures you never create empty tasks.

  • Title & description fields with validation
  • Due date picker (datetime-local)
  • Success feedback after creation
  • Cancel button returns to dashboard
TaskMaster Add Task
03 · Profile & Settings

Manage your account

Update username and password, see your profile picture and email. Clean sidebar navigation across the whole app.

  • Profile picture display
  • Change username & password
  • Sidebar navigation (Dashboard / Tasks / Settings)
  • Logout link always available
TaskMaster Settings

Full feature set

Everything you need for a personal task management system, built with clean procedural PHP and prepared statements.

Auth

User Authentication

Register, Login and Logout with session management and input sanitization.

Upload

Profile Pictures

Upload custom avatar on registration. Supports JPEG, PNG and WebP under 2MB.

CRUD

Task Management

Create, read, update status and delete tasks. All with prepared statements.

Filter

Smart Filters

All · Today · Upcoming · Completed — filter by due date and status instantly.

Search

Full-text Search

Search across task titles and descriptions with LIKE queries and sanitization.

AJAX

Live Status Toggle

Checkbox instantly updates task status via fetch() without page reload.

UI

Modern Interface

Custom CSS, sidebar navigation, responsive layout and clean typography.

DB

MySQL Schema

Proper users + tasks tables with foreign keys and ENUM status field.

Tech Stack

No frameworks. Pure PHP, MySQL and vanilla JavaScript — the fundamentals done right.

🐘

PHP 7.4+

Procedural PHP with prepared statements, sessions and form validation.

🗄️

MySQL

Relational database with users & tasks tables, foreign keys and ENUM status.

🎨

Custom CSS

Fully custom stylesheet with modern layout, sidebar and responsive design.

⚡

Vanilla JS

Fetch API for AJAX status updates and delete without page reload.

Clone it. Run it. Learn from it.

Full source code, database schema and professional README available on GitHub. Perfect for studying authentication, prepared statements and modern UI in pure PHP.