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.
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).
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.
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. |
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": []
}
The API allows the following fields for creating and updating projects:
The API allows the following fields for creating and updating tasks:
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.
If your request contains invalid data, the API will return an error message. Common errors include:
{"error": "The 'name' field is required"}
{"error": "One or more task numbers are invalid for this project"}