This is a simple project management application running in Java spring boot backed by Postgres.
- Start the Postgres server,
docker run --name postgresql -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -v /var/lib/postgresql/data -d postgres
- Create a database project_management
docker exec -it postgresql psql -U postgres
CREATE DATABASE project_management;
-
Build and Run the application
-
The Server will be running in post 8080
POST - http://localhost:8080/api/v1/user
Body:
{
"name": "test-user",
"role": "DEV"
}
Response:
{
"id": 1,
"name": "test-user",
"role": "DEV",
"status": "ACTIVE",
"board": null,
"tasks": null,
"comments": null
}
POST - http://localhost:8080/api/v1/project
Body:
{
"title": "Project Beta"
}
Response:
{
"id": 1,
"title": "Project Beta",
"status": "ACTIVE",
"boards": null
}
POST - http://localhost:8080/api/v1/project/1/board
Body:
{
"name": "Test Board"
}
Response:
{
"id": 1,
"name": "Test Board",
"owners": null,
"sprints": null,
"users": null
}
POST - http://localhost:8080/api/v1/board/1/task
Body:
{
"name": "Test task for reference",
"description": "This is a test description",
"estimation": 2,
"priority": "P3",
"type": "FEATURE",
"dueDate": "2022-08-02T13:20:36.707+00:00",
"label": "test-feature"
}
Response:
{
"id": 1,
"name": "Test task for reference",
"description": "This is a test description",
"estimation": 2,
"totalEstination": null,
"priority": "P3",
"type": "FEATURE",
"dueDate": "2022-08-02T13:20:36.707+00:00",
"label": "test-feature",
"assigneeName": null,
"comments": null,
"linkedTasks": null
}
POST - http://localhost:8080/api/v1/tasks/1/assign_task?user=1
Response:
{
"id": 1,
"name": "Test task for reference",
"description": "This is a test description",
"estimation": 2,
"totalEstination": 2,
"priority": "P3",
"type": "FEATURE",
"dueDate": "2022-08-02T13:20:36.707+00:00",
"label": "test-feature",
"assigneeName": "test-user",
"comments": [],
"linkedTasks": []
}
POST - http://localhost:8080/api/v1/tasks/1/link_task?task=2&type=RELATES_TO
Response:
{
"id": 1,
"linkType": "RELATES_TO"
}
POST - http://localhost:8080/api/v1/tasks/1/comment?user=1
Body:
{
"description": "Please provide more information"
}
Response:
{
"id": 1,
"description": "Please provide more information",
"likes": 0
}
GET - http://localhost:8080/api/v1/task/1
Response:
{
"id": 1,
"name": "Test task for reference",
"description": "This is a test description",
"estimation": 2,
"totalEstination": 4,
"priority": "P3",
"type": "FEATURE",
"dueDate": "2022-08-02T13:20:36.707+00:00",
"label": "test-feature",
"assigneeName": "test-user",
"comments": [
{
"id": 1,
"description": "Please provide more information",
"likes": 0
}
],
"linkedTasks": [
{
"id": 1,
"linkType": "RELATES_TO"
}
]
}