Task-Management-Application

Task Management Application

Full-stack task management app with email/password auth, task CRUD, and a responsive UI.

Publish: https://vivek-28-2006.github.io/Task-Management-Application/

Tech Stack

Setup

1) Server

cd server
npm install
cp .env.example .env
npm run dev

Database setup (JSON)

By default the API stores data in a local JSON file. You can override the path in server/.env:

JSON_DB_PATH=./data/db.json

Database setup (Postgres, optional)

Create a database and tables:

CREATE DATABASE task_manager;

\c task_manager

CREATE TABLE users (
	id SERIAL PRIMARY KEY,
	name TEXT NOT NULL,
	email TEXT NOT NULL UNIQUE,
	password_hash TEXT NOT NULL,
	created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
	updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE TABLE tasks (
	id SERIAL PRIMARY KEY,
	owner_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
	title TEXT NOT NULL,
	details TEXT NOT NULL DEFAULT '',
	status TEXT NOT NULL DEFAULT 'backlog',
	priority TEXT NOT NULL DEFAULT 'medium',
	due_date DATE,
	tags TEXT[] NOT NULL DEFAULT '{}',
	created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
	updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

Or run the script after setting DATABASE_URL:

cd server
npm run db:init

2) Client

cd client
npm install
cp .env.example .env
npm run dev

3) Use the app

API Endpoints

Notes