Simple Project Management Tool

Back to Portfolio
Go to Project Management Tool
Go to Project Management Tool API
Overview

The Simple Project Management Tool is a user-friendly solution designed to help users create, manage, and track multiple projects and their tasks. It offers both a frontend interface for easy navigation and interaction, as well as a fully integrated API that allows for seamless project and task management through programmatic access.

On the frontend, users can create and manage projects and tasks, set deadlines, assign responsibilities, and track progress through an intuitive interface. The tool integrates FullCalendar.js to provide an interactive calendar for visualizing tasks over time, and Mermaid.js for visualizing task dependencies. Users can also export project data in CSV or Excel formats for offline analysis or reporting.

The API offers endpoints for developers to create, update, delete, and retrieve both projects and tasks, making it easy to integrate this tool with other systems or automation workflows. The API provides programmatic access to manage the same data, giving more flexibility to users who prefer automation or integration with external tools.

Built with Django on the backend, the Simple Project Management Tool ensures a secure, scalable environment that is suitable for individuals, small teams, or businesses looking for a simple yet powerful project management solution.


How to Use the Simple Project Management Tool

To begin, navigate to the Projects page and click the "Create New Project" button. Enter the project details, including the project name, leader, and status. Once created, you can start adding tasks by clicking the "Add Task" button on the project detail page. Each task needs a name, description, priority, and status (e.g., Not Started, Started, Completed).

  • Create, Edit, and Delete Projects: Click the "Create New Project" button to add a project, and the "Edit" or "Delete" options to manage existing projects.
  • Create, Edit, and Delete Tasks: Use the "Add Task" button to add tasks to a project. You can edit or delete tasks from the project detail page.
  • Task Status Tracking: Update task status as they progress. Completed tasks update the overall project progress automatically.
  • View Project Calendar: The calendar provides a visual overview of tasks and their deadlines using FullCalendar.js.
  • Export Data: Export project and task data in CSV or Excel formats for further use.

Task descriptions support Markdown for formatted content, and users can leave comments or notes on tasks. The intuitive interface ensures easy navigation and management of multiple projects and tasks.


How to Use the Simple Project Management API

Below are the available API endpoints and their usage:

Endpoint Method Description
/projects/api/projects/ GET Retrieve a list of all projects for the authenticated user.
/projects/api/projects/ POST Create a new project. The request payload should include the project’s name, leader's first and last name, and status.
/projects/api/projects/{project_id}/ GET Retrieve detailed information for a specific project, including tasks associated with it.
/projects/api/projects/{project_id}/ PUT Update an existing project’s details such as the project name, leader, and status.
/projects/api/projects/{project_id}/ DELETE Delete a project permanently.
/projects/api/projects/{project_id}/tasks/ GET Retrieve a list of tasks within a specified project.
/projects/api/projects/{project_id}/tasks/ POST Create a new task within a project. The request payload should include task name, task number, status, priority, assignee, start and end dates, and any dependencies.
/projects/api/projects/{project_id}/tasks/{task_id}/ GET Retrieve detailed information for a specific task within a project.
/projects/api/projects/{project_id}/tasks/{task_id}/ PUT Update the details of an existing task, including its status, name, and priority.
/projects/api/projects/{project_id}/tasks/{task_id}/ DELETE Delete a task within a project permanently.
Example Usage

To create a new project, you can make a POST request to /projects/api/projects/ with the following JSON payload:

{
    "name": "New Project",
    "leader_first_name": "John",
    "leader_last_name": "Doe",
    "status": "Not Started"
}

The response will return the newly created project:

{
    "id": 1,
    "name": "New Project",
    "leader_first_name": "John",
    "leader_last_name": "Doe",
    "status": "Not Started",
    "tasks": []
}
Supported Project Fields

The API allows the following fields for creating and updating projects:

  • name: The name of the project.
  • leader_first_name: The first name of the project leader.
  • leader_last_name: The last name of the project leader.
  • status: The current status of the project (e.g., Not Started, Started, Completed).
Supported Task Fields

The API allows the following fields for creating and updating tasks:

  • name: The name of the task.
  • task_number: The task number within the project.
  • start_date: The start date of the task.
  • end_date: The end date of the task.
  • priority: The priority of the task (High, Medium, Low).
  • status: The current status of the task (Not Started, Started, Completed).
  • previous_tasks: A list of task numbers that need to be completed before this task can begin.
Custom Throttling Rules

The API is rate-limited to prevent excessive requests. Each user is limited to a set number of requests per minute to ensure fair usage. This includes limits for both project and task-related requests.

Handling Errors

If your request contains invalid data, the API will return an error message. Common errors include:

  • Missing fields: {"error": "The 'name' field is required"}
  • Invalid task dependencies: {"error": "One or more task numbers are invalid for this project"}

Example Screenshots

Video Overview
Go to Project Management Tool
Go to Project Management Tool API