Skip to content

novawar/full-stack-developer-test

Repository files navigation

Task Management Application

Tech Stack

Frontend: Next.js, React, Tailwind CSS, Zustand

Backend: Express, Prisma, PostgreSQL

Getting Started

Prerequisites

  • Node.js 22+
  • PostgreSQL

Backend

cd task-management-be
npm install

Create .env file:

DATABASE_URL="postgresql://user:password@localhost:5432/task_management?schema=public"
PORT=8080

Then run:

npx prisma migrate dev
npm run dev             # http://localhost:8080

Frontend

cd task-management-fe
npm install
cp env/.env.example env/.env.dev
npm run dev             # http://localhost:3000

Inside env/.env.dev, set NEXT_PUBLIC_TASK_DATA_SOURCE to mock for mock data or api to connect to the backend.

API Endpoints

Base URL: /api/v1/tasks

Method Path Description
GET / List tasks (query: ?status=TODO)
POST / Create task
PUT /:id Update task
DELETE /:id Soft delete
GET /deleted List deleted tasks
DELETE /deleted/:id Permanent delete

Project Structure

├── task-management-be/          # Express API
│   ├── src/
│   │   ├── constants/           
│   │   ├── lib/                 
│   │   ├── middlewares/         
│   │   ├── tasks/               # route, controller, service, validator
│   │   └── utils/               # response helper
│   └── prisma/                  # schema & migrations

├── task-management-fe/          # Next.js frontend
│   └── src/
│       ├── app/                 # page, layout
│       │   └── _components/     # Header, MainUI
│       ├── common-components/   # shared UI (Button, Input, Select, etc.)
│       ├── constant/            
│       ├── features/tasks/      # components, hooks, store, api, mock
│       └── lib/                 
├── nginx/                       
├── docker-compose.prod.yml
└── .github/workflows/           

About

Task Management Application with REST API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors