0% found this document useful (0 votes)
47 views13 pages

CP Mini Project

Uploaded by

Arun. S.R
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views13 pages

CP Mini Project

Uploaded by

Arun. S.R
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

K. S.

Rangasamy College of Technology


(Autonomous)
Tiruchengode - 637 215

A MINI PROJECT
ON

TASK MANAGEMENT SYSTEM

DEPARTMENT OF TEXTILE TECHNOLOGY

60CS001- C PROGRAMMING

Submitted by:

SRIJA T - 73772222119
KAMAL RAJ S - 73772222107

SIGNATURE OF SIGNATURE OF
SUBJECT HANDLER HEAD OF THE
DEPARTMENT

DATE :
TABLE OF CONTENTS

S.NO TITLE PAGE NO.


1. ABSTRACT 3
2. OBJECTIVE 3
3. INTRODUCTION 3
4. PROBLEM STATEMENT 4
5. MODULE DESCRIPTION 4
6. CODE 6
7. OUTPUT 12
8. CONCLUSION 13

2
1. ABSTRACT:
Task Management system is a project which aims to develop a
computerized system to efficiently manage tasks for individuals or
teams. This project has features such as creating tasks with specific
details such as title, description, deadline, priority, and assignee. It
also allows for editing, deleting, and marking tasks as completed. The
system can display all tasks, including their details and completion
status. This project is being developed to help individuals or teams
manage their tasks more effectively and reduce the human effort
required for tracking and managing tasks.

2. OBJECTIVE:
The objective of the Task Management system is to streamline the
process of task tracking and management, enabling individuals and
teams to prioritize, assign, and complete tasks efficiently. The system
will provide a user-friendly interface for users to manage their tasks,
track deadlines, and collaborate with team members. It will also
include features such as automated reminders, real-time updates,
and task performance analytics to increase productivity, reduce
errors, and minimize the need for manual oversight. The system aims
to simplify task management and enhance productivity for individuals
and teams.

3. INTRODUCTION:
Task Management is a critical aspect of project management, helping
individuals and teams to stay organized, focused, and productive.
Managing tasks effectively can be challenging, especially when
dealing with large projects or teams. The Task Management system
is a web-based platform that enables users to streamline their task
management process, track deadlines, and collaborate with team
members in real-time. The system provides a user-friendly interface
for managing tasks, assigning priorities, tracking progress, and
generating performance reports. The system's automated reminders,

3
analytics, and reporting capabilities help increase productivity, reduce
errors, and minimize the need for manual oversight. The Task
Management system simplifies the task management process,
empowering individuals and teams to achieve their goals efficiently.

4. PROBLEM STATEMENT:
The traditional approach to task management is time-consuming,
error-prone, and often leads to missed deadlines and decreased
productivity. Teams and individuals often use manual processes such
as spreadsheets, emails, or sticky notes to track their tasks, which
can result in confusion, miscommunication, and duplication of effort.
Moreover, manual tracking makes it difficult to prioritize tasks, assign
responsibilities, and monitor progress effectively. The lack of a
centralized platform for task management also makes it challenging
for teams to collaborate and share information efficiently. The Task
Management system aims to address these challenges by
providing a web-based platform that simplifies task management,
enhances productivity, and streamlines collaboration.

5. MODULE DESCRIPTION:
Task Manager is a software module that allows users to manage their
tasks efficiently. The module provides an interface that enables users
to create, edit, delete, display, and mark tasks as completed. It is a
simple, easy-to-use module that can help users keep track of their
daily, weekly, or monthly tasks.

The Task Manager module is written in the C programming language


and includes several functions that perform different operations. The
module uses a struct called "Task" to store information about each
task. The "Task" struct contains the following fields:

● id: A unique identifier for each task.


● title: The title or name of the task.

4
● description: A brief description of the task.
● deadline: The deadline for completing the task.
● priority: The priority level of the task (1-5).
● completed: A flag indicating whether the task is completed or
not.
● assignee: The person or team responsible for completing the
task.

The module includes the following functions:

→ createTask(Task *tasks, int *taskCount)


This function allows users to create a new task. The user is prompted
to enter the task's title, description, deadline, priority level, and
assignee. The function creates a new "Task" object and adds it to the
"tasks" array.

→ editTask(Task *tasks, int taskCount)


This function allows users to edit an existing task. The user is
prompted to enter the ID of the task they want to edit. Once the taskis
found, the user is presented with a menu to select which field to edit.
The function then updates the selected field with the new information.

→ deleteTask(Task *tasks, int *taskCount)


This function allows users to delete an existing task. The user is
prompted to enter the ID of the task they want to delete. Once the
task is found, the function shifts all tasks after the deleted task one
position to the left, effectively removing the task from the array.

→ displayTasks(Task *tasks, int taskCount)


This function displays all tasks currently in the "tasks" array. It prints
each task's ID, title, description, deadline, priority level, assignee, and
completion status.

5
→ markAsCompleted(Task *tasks, int taskCount)
This function allows users to mark a task as completed. The user is
prompted to enter the ID of the task they want to mark as completed.
Once the task is found, the function updates the task's completion
status to "completed."

The main function of the Task Manager module displays a menu with
the following options: create task, edit task, delete task, display tasks,
mark task as completed, and exit. The user is prompted to select an
option, and the appropriate function is called based on the user's
selection. The program continues to display the menu until the user
chooses to exit.

Overall, the Task Manager module is a useful tool for anyone looking
to organize their tasks and improve their productivity. The module is
flexible and easy to use, making it a great choice for both personal
and professional use.

6. CODE:
#include <stdio.h>
#include <string.h>

typedef struct {int id;


char title[100];
char description[500];char
deadline[11];
int priority; int
completed;
char assignee[100];
}
Task;

void createTask(Task * tasks, int * taskCount);void


editTask(Task * tasks, int taskCount);

6
void deleteTask(Task * tasks, int * taskCount); void
displayTasks(Task * tasks, int taskCount); void
markAsCompleted(Task * tasks, int taskCount);

int main() {
Task tasks[100]; int
taskCount = 0;int choice;

do {
printf("\nTask Manager\n"); printf("1.
Create Task\n"); printf("2. Edit
Task\n"); printf("3. Delete Task\n");
printf("4. Display Tasks\n");
printf("5. Mark Task as Completed\n");printf("6.
Exit\n");
printf("Enter your choice: ");scanf("%d",
& choice);

switch (choice) {case


1:
createTask(tasks, & taskCount);break;
case 2:
editTask(tasks, taskCount);break;
case 3:
deleteTask(tasks, & taskCount);break;
case 4:
displayTasks(tasks, taskCount);break;
case 5:
markAsCompleted(tasks, taskCount);break;
case 6:
printf("Exiting...\n");break;
default:
printf("Invalid choice. Try again.\n");

7
}
} while (choice != 6);

return 0;
}

void createTask(Task * tasks, int * taskCount) {printf("Creating


new task:\n");

if ( * taskCount >= 100) {


printf("Task list is full. Cannot add newtask.\n");
return;
}

Task newTask;
newTask.id = * taskCount + 1; printf("Enter
task title: "); scanf(" %[^\n]s", newTask.title);
printf("Enter task description: ");
scanf(" %[^\n]s", newTask.description); printf("Enter task
deadline (dd/mm/yyyy): ");scanf("%s", newTask.deadline);
printf("Enter task priority (1-5): ");scanf("%d", &
newTask.priority); newTask.completed = 0;
printf("Enter task assignee: "); scanf(" %[^\n]s",
newTask.assignee);

tasks[ * taskCount] = newTask;( *


taskCount) ++;

printf("Task created successfully.\n");


}

void editTask(Task * tasks, int taskCount) {int id, choice, i;


char temp[500];

printf("Enter ID of task to edit: ");scanf("%d", & id);

8
for (i = 0; i < taskCount; i++) {if (tasks[i].id
== id) {
printf("\nTask #%d\n", id); printf("1. Edit
Title\n"); printf("2. Edit Description\n"); printf("3.
Edit Deadline\n"); printf("4. Edit Priority\n");
printf("5. Edit Assignee\n"); printf("6. Go Back
to Main Menu\n");printf("Enter your choice: ");
scanf("%d", & choice);

switch (choice) {case


1:
printf("Enter new title: ");getchar();
fgets(temp, 100, stdin);
strcpy(tasks[i].title, temp);break;
case 2:
printf("Enter new description: ");getchar();
fgets(temp, 500, stdin);
strcpy(tasks[i].description, temp);break;
case 3:
printf("Enter new deadline (yyyy-mm-dd):

scanf("%s", temp); strcpy(tasks[i].deadline,


temp);break;
case 4:
"); printf("Enter new priority (1-5): ");scanf("%d", &
tasks[i].priority); break;
case 5:
printf("Enter new assignee: ");getchar();
fgets(temp, 100, stdin);
strcpy(tasks[i].assignee, temp);

9
break;
case 6:
printf("Going back to Main Menu...\n");return;
default:
printf("Invalid choice. Try again.\n");
}

printf("Task #%d has been updated.\n", id);return;


}
}

printf("Task #%d not found.\n", id);


}

void deleteTask(Task * tasks, int * taskCount) {int id, i, j;

printf("Enter ID of task to delete: ");scanf("%d", & id);

for (i = 0; i < * taskCount; i++) {if (tasks[i].id ==


id) {
for (j = i; j < * taskCount - 1; j++) {tasks[j] = tasks[j +
1];
}

printf("Task #%d has been deleted.\n", id);( * taskCount) -


-;
return;
}
}

printf("Task #%d not found.\n", id);


}

void displayTasks(Task * tasks, int taskCount) {if (taskCount ==


0) {
printf("No tasks found.\n");return;

10
}

printf("ID Title DescriptionDeadline Priority


Completed Assignee\n");

printf("---------------------------------------------------
-------------------------------------------------------\n")
;
for (int i = 0; i < taskCount; i++) {
printf("%-4d%-20s%-37s%-11s%-10d%-10s%-20s\n",tasks[i].id,
tasks[i].title, tasks[i].description,
tasks[i].deadline, tasks[i].priority,
tasks[i].completed ? "Yes" : "No",
tasks[i].assignee);
}
}

void markAsCompleted(Task * tasks, int taskCount) {int id;

printf("Enter ID of task to mark as completed: ");scanf("%d", & id);

for (int i = 0; i < taskCount; i++) {if (tasks[i].id ==


id) {
tasks[i].completed = 1; printf("Task #%d has
been marked as
completed.\n", id);
return;
}
}

printf("Task #%d not found.\n", id); }

11
7. OUTPUT:

12
8. CONCLUSION:

The code above is a program for a simple task manager that allows
users to create, edit, delete, display and mark tasks as completed.
The tasks are stored in an array of structs named "Task". The
program starts by presenting a menu of options for the user to
choose from. The user can create a new task, edit an existing task,
delete a task, display all tasks, mark a task as completed, or exit the
program.

If the user selects to create a new task, they are prompted to input
details such as the task title, description, deadline, priority, and
assignee. The task is then added to the array of tasks. If the user
selects to edit a task, they are prompted to input the ID of the task
they wish to edit. The program then presents a menu of options for
the user to choose from, such as editing the task's title, description,
deadline, priority, or assignee. Once the user makes their selection,
the corresponding attribute of the task is updated. If the user selectsto
delete a task, they are prompted to input the ID of the task they wish
to delete. The program then deletes the task from the array oftasks.

If the user selects to display all tasks, the program prints out a table
of all the tasks, including their ID, title, description, deadline, priority,
completion status, and assignee. If the user selects to mark a task as
completed, they are prompted to input the ID of the task they wish to
mark as completed. The program then updates the completion status
of the task. The program continues to present the menu of options
until the user chooses to exit the program.

13

You might also like