Full-stack Task Management Application.
- Frontend: React.js
- Backend: Java Spring Boot
- Database: PostgreSQL
task-management-system/
├── backend/ Spring Boot app
└── frontend/ React app
| Field | Type |
|---|---|
| id | BIGSERIAL (PK) |
| title | VARCHAR |
| description | VARCHAR |
| assigned_to | VARCHAR |
| priority | VARCHAR (HIGH/MEDIUM/LOW) |
| status | VARCHAR (PENDING/IN_PROGRESS/COMPLETED) |
| due_date | DATE |
| created_at | TIMESTAMP |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks | Get all tasks |
| GET | /api/tasks/{id} | Get task by ID |
| POST | /api/tasks | Create new task |
| PUT | /api/tasks/{id} | Update task (full update) |
| PATCH | /api/tasks/{id}/status | Update only task status |
| DELETE | /api/tasks/{id} | Delete task |
| GET | /api/tasks/search?title=&assignedTo=&priority=&status= | Search & filter tasks |
| GET | /api/tasks/dashboard | Get dashboard stats (total/pending/in-progress/completed) |
{
"title": "Design login page",
"description": "Create UI mockups for login screen",
"assignedTo": "John Doe",
"priority": "HIGH",
"status": "PENDING",
"dueDate": "2026-07-15"
}{ "status": "IN_PROGRESS" }- Java 17+
- Maven 3.8+
- Node.js 18+ and npm
- PostgreSQL 14+ installed and running
# Login to psql
psql -U postgres
# Create database
CREATE DATABASE task_management_db;
\q(Tables are auto-created by Hibernate ddl-auto=update on first run — no manual schema needed.
backend/src/main/resources/schema.sql is provided for reference only.)
cd backend
# Edit src/main/resources/application.properties if your DB
# username/password differ from the default postgres/postgres
# Build and run
mvn clean install
mvn spring-boot:runBackend will start at: http://localhost:8080
cd frontend
npm install
npm startFrontend will start at: http://localhost:3000
- Open http://localhost:3000 in your browser.
- Dashboard shows Total / Pending / In Progress / Completed task counts.
- Click + Add New Task to create a task (Title, Description, Assigned To, Priority, Status, Due Date — all mandatory fields validated; due date cannot be in the past).
- Use the search bar to search by Task Title or Assigned To, and dropdowns to filter by Priority / Status, then click Search. Click Reset to clear filters.
- In the task table you can:
- Edit a task
- Delete a task
- Change the Status directly from the dropdown in the table row