0% found this document useful (0 votes)
43 views57 pages

Report

Uploaded by

Aman Parmar
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)
43 views57 pages

Report

Uploaded by

Aman Parmar
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/ 57

Report File on

Task Management System


(BCA-308)

Submitted By:- Submitted to:-


Himanshu(1323177) Dr. Neha Goyal
Anshul Gupta(1323164) Assistant Professor
MMICT&BM

M.M. Institute of Computer Technology & Business Management


Maharishi Markandeshwar (Deemed to be University), Mullana–Ambala
(Established under Section 3 of the UGC Act, 1956)
(Accredited by NAAC with Grade ‘A++’)
ACKNOWLODGEMENT

I express my gratitude to my guide Dr. Neha Goyal, Department of Computer


Application for the encouragement, valuable suggestions and guidance given to
me during the design, development and implementation of theproject.

I express my sincere thanks to Dr. Summit Mittal, honorable Principal, for


providing the facilities including laboratory and library.

I also express my gratitude to Dr. Vivek Bhatnagar, Head of the Department,


Department of Computer Application for the encouragement, valuable
suggestions and guidance given to us during the course of the project and helping
me to complete it successfully.

I express my grateful thanks to all the staff members, Department of Computer


Application for their valuable assistance, encouragement and cooperation during
this wonderful learning experience.

Finally, I also grateful to my parents and friends for their support, encouragement
and backing for achieving this goal of completing this project successfully.
Abstract

In the fast-paced and competitive landscape of modern business, efficient task


management is critical for maintaining productivity and achieving organizational
goals. This project report presents the development and deployment of a
comprehensive Task Management System designed to streamline task allocation,
tracking, and completion processes. The system is equipped with features such as
real-time updates, task prioritization, comprehensive reporting, and user-friendly
interfaces, addressing prevalent issues like miscommunication, missed deadlines,
and inefficient resource utilization.
The report delves into the system's design and development, encompassing both
logical and physical design phases, and highlights the methodology used to ensure
a robust and scalable solution. Detailed descriptions of the system's core
functionalities demonstrate its capability to enhance team collaboration and
accountability while optimizing resource usage.
Empirical data and user feedback underscore the system's effectiveness in
improving organizational workflows and operational efficiency. Additionally, the
report outlines potential future enhancements, including the integration of AI-
driven analytics and the development of a mobile application, aimed at further
elevating the system's utility and adaptability.
Overall, the Task Management System emerges as a pivotal tool for modern
organizations, offering a versatile and scalable solution to the complexities of task
management, and paving the way for continuous improvement and innovation.
PROJECT ON
TASK MANAGEMENT SYSTEM
Table of Content

Chapter -1 Introduction

1.1 Objectives ........................................................................................................ 7


1.2 Scope of the project .......................................................................................... 8
1.3 Features ............................................................................................................ 8

Chapter -2 System Requirements

2.1 Software requirements .................................................................................... 9

2.2 Hardware requirements .................................................................................... 9

Chapter -3 Feasibility Study

3.1 Technical Feasibility Study ............................................................................ 10

3.2 Operational Feasibility Study........................................................................ 10

3.3 Economic Feasibility......................................................................................10

3.4 Schedule Feasibility ...................................................................................... 10

3.5 Legal and Ethical Feasibility......................................................................... 11

3.6 Software Development Life Cycle… ............................................................ 11


Chapter -4 Software Components

4.1 Introduction to PHP...................................................................................... 12

4.2 Introduction to CSS ...................................................................................... 13

4.3 Introduction to JavaScript .............................................................................13

4.4 Introduction to HTML ................................................................................. 14


Chapter -5 Database

5.1 Admin........................................................................................................... 16

5.2 user ............................................................................................................... 16

5.3 project list.................................................................................................. 17

5.4 system setting .............................................................................................. 18

5.5 task list ....................................................................................................... 19

5.6 user productivity .......................................................................................... 20

Chapter -6 ER Diagram

6.1 ER Diagram................................................................................................ 21

6.2 Dataflow Diagram ..................................................................................... 22

Chapter -7 Screen Shots .................................................................................24

Chapter -8 Testing

8.1 Unit Testing ............................................................................................... 28


8.2 Black Box Testing .......................................................................................29
8.3 White Box Testing ..................................................................................... 30

Chapter 9 Source Code ................................................................................... 31

Chapter 10 Future Enhancement… .............................................................. 55

Conclusion… .................................................................................................. 57
Task management system

CHAPTER-1

INTRODUCTION

in today's fast-paced and competitive world, efficient task management is crucial to


ensuring productivity and achieving organizational goals. Task management
systems have become integral in streamlining workflows, enhancing collaboration,
and fostering accountability within teams. This project report delves into the
development and implementation of a robust Task Management System, aimed at
optimizing task allocation, tracking progress, and improving overall efficiency.

The system is designed to address common challenges such as


miscommunication, missed deadlines, and inefficient resource utilization. By
integrating features such as task prioritization, real-time updates, and comprehensive
reporting, the Task Management System provides a holistic solution to manage tasks
effectively. This report outlines the methodology, development process, key
features, and potential benefits of the Task Management System, with a focus on its
practical applications and impact on productivity.

1.1. OBJECTIVES

1. Streamline Workflow Processes: Develop a system that simplifies the


management of tasks from assignment to completion, ensuring clear visibility
and ease of tracking.
2. Enhance Collaboration: Provide tools that facilitate communication and
coordination among team members, allowing for real-time updates and
seamless interaction.
3. Improve Accountability: Implement features that enable task prioritization,
deadline management, and progress monitoring to ensure that tasks are
completed on time and according to specifications.

MMICT&BM 7
Task management system

4. Optimize Resource Utilization: Allocate resources efficiently by tracking


the workload and availability of team members, ensuring balanced
distribution of tasks.
5. Generate Comprehensive Reports: Create a system that provides detailed
reports on task status, progress, and performance metrics to inform decision-
making and continuous improvement.

1.2 SCOPE OF THE PROJECT

1. Create and Assign Tasks: Allow detailed task creation and assignment to
team members.
2. Track Progress: Provide real-time updates on task status.
3. Enhance Collaboration: Integrate communication tools for seamless team
interaction.
4. Manage Resources: Optimize allocation and usage of resources.
5. Generate Reports: Offer comprehensive reporting tools for performance
insights.
6. User Management: Implement robust user roles and access control.

1.3 FEATURES

1 Task Creation: Users can create tasks with detailed descriptions, due dates,
and associated tags or categories.
2 Task Assignment: Tasks can be assigned to specific users or team members,
with notifications and reminders to ensure timely completion.
3 Priority Levels: Tasks can be prioritized based on importance, urgency, or
other criteria set by the user.
4 Status Tracking: Users can update the status of tasks (e.g., "Not Started," "In
Progress," "Completed"), providing visibility into the progress of individual or
team tasks.
5 Collaborative Tools: The system supports collaboration, allowing multiple
users to work on the same task, share files, and communicate within the
platform.
MMICT&BM 8
Task management system

CHAPTER-2

SYSTEM REQUIREMENTS

9.5.HARDWARE REQUIREMENTS

SL.NO Hardware Details

1 Processor Intel core I5

2 RAM 2GB REQUIRED

3 HARD DISK 16GB REQUIRED

4 Printer Any Compatible printer

9.6.SOFFWARE REQUIREMENTS

SL.NO Software Details

1 Front end (Design) HTML, CSS, JavaScript

2 Back end (Design) PHP

3 Database MySQL

4 Operating System Windows 10,11

MMICT&BM 9
Task management system

CHAPTER-3

FEASIBILITY STUDY

A feasibility study is a high-level capsule version of the entire System


analysis and Design Process. The study begins by classifying the problem
definition. Feasibility is to determine if it’s worth doing. Once an acceptance
problem definition has been generate, the analyst develops a logical model of the
system. A search for alternatives is analysed carefully.
Technical Feasibility
 System Requirements: Assess the hardware and software requirements
needed to develop and maintain the Task Management System.
 Technology Stack: Identify suitable programming languages, frameworks,
and tools. Ensure the availability of technical expertise.
 Integration Capability: Ensure the system can integrate with existing
organizational tools like email and project management systems.
Operational Feasibility
 User Adoption: Evaluate the ease of use and user acceptance of the system.
Develop a user-friendly interface with intuitive navigation.
 Training and Support: Plan for comprehensive training sessions and support
resources to ensure smooth user onboarding and ongoing assistance.
 Change Management: Assess the impact on current workflows and prepare
strategies to manage organizational change.
Economic Feasibility
 Cost-Benefit Analysis: Estimate the development, implementation, and
maintenance costs. Compare these with the anticipated benefits such as
improved productivity and efficiency.
 Budget Availability: Ensure sufficient funding is available for the project
lifecycle, including any unforeseen expenses.
 Return on Investment (ROI): Project the potential ROI by quantifying the
system's impact on productivity and efficiency.
Schedule Feasibility
 Timeline: Develop a realistic project timeline, outlining key milestones and
deadlines.
 Resource Allocation: Ensure the availability of necessary human and
technical resources within the specified time frame.
 Risk Management: Identify potential risks and develop contingency plans to
address them promptly.
MMICT&BM 10
Task management system

Legal and Ethical Feasibility


 Data Privacy and Security: Ensure compliance with data protection
regulations and implement robust security measures to safeguard sensitive
information.
 Intellectual Property: Address any intellectual property issues related to the
software and third-party integrations.

3.1 SOFTWARE DEVELOPMENT LIFE CYCLE

A system development life cycle is a logical process by which system


analysts, software engineers, programmers, and end users build information
systems and computer applications to solve business problems and needs.

The major phases involved in the MIS development process are referred to as
system development life cycle. Each phase of the development process must have
well defined objectives, and at the end of each phase, progress towards meeting
the objectives must be evaluated.

The development process should not continue until the objectives of all prior
phases have been met.

System development life cycle is a phased approach to analysis and design to


ensure that systems are best developed.

The system development life cycle can be divided into seven phases as shown

Fig-1.1

MMICT&BM 11
Task management system

CHAPTER-4

SOFTWARE COMPONENTS

4.1 INTRODUCTION TO PHP:

PHP is a server-side scripting language designed primarily for web


development but also used as a general-purpose programming language.
Originally created by Rasmus Lerdorf in 1994, the PHP reference implementation
is now produced by The PHP Development Team. PHP originally stood for
personal home page but it now stands for the recursive acronym PHP: Hypertext
Pre-processor.

Features of PHP:

We have learned about PHP and its uses. But what are the features that make
PHP popular. Now that we have a basic understanding of PHP, let us see some of
the most striking features of PHP .It is a very popular language because it is
simple and is open-source. There are many convincing reasons for why you
should be using PHP, some of them being:

 It is easy to install and learn.


 It is open-source and therefore free.
 Not only that, but it is fast and secure.
 It runs on various platforms (Windows, Linux, etc.).
 PHP can access cookies variable and set cookies.
 It supports many protocols, such as HTTP, POP3, LDAP, IMAP, SNMP,
NNTP, and many more.
 It is well-connected with databases and supports a wide range of databases.
This feature also makes it suitable for handling forms.

MMICT&BM 12
Task management system

4.2 INTRODUCTION TO CSS :

Cascading Style Sheets, fondly referred to as CSS, is a simply designed


language intended to simplify the process of making web pages presentable. CSS
allows you to styles to web pages. More importantly, CSS enables you to dothis
independent of the HTML that makes up each web page. It describes how a
webpage should look: it prescribes colours, fonts, spacing, and much more. In
short, you can make your website look however you want. CSS lets developersand
designers define how it behaves, including how elements are positioned in the
browser.

While html uses tags, CSS uses rulesets. CSS is easy to learn and
understand, but it provides powerful control over the presentation of an HTML
document.

 CSS saves time: You can write CSS once and reuse the same sheet in
multiple HTML pages.
 Easy Maintenance: To make a global change simply change the style, and
all elements in all the webpages will be updated automatically.
 Search Engines: CSS is considered a clean coding technique, which means
search engines won’t have to struggle to “read” its content.
 Superior styles to HTML: CSS has a much wider array of attributes than
HTML, so you can give a far better look to your HTML page in comparison
to HTML attributes.
 Offline Browsing: CSS can store web applications locally with the help of
an offline cache. Using this we can view offline websites.

4.3 INTRODUCTION TO JAVASCRIPT :

JavaScript (JS) is a lightweight, interpreted, or just in time compiled


programming language with first class functions. While it is most well-known as
the scripting language for Web pages, non browser environments also use it, such

MMICT&BM 13
Task management system

as node. JS, Apache CouchDB and Adobe Acrobat. JavaScript is a prototype


based, multi-paradigm, single threaded, dynamic language, supporting object
oriented, imperative, and declarative (e.g. functional programming) styles.

JavaScript's dynamic capabilities include runtime object construction,


variable parameter lists, function variables, dynamic script creation (via eval),
object introspection , and source-code recovery (JavaScript functions store their
source text and can be retrieved through toString()).

This section is dedicated to the JavaScript language itself, and not the parts
that are specific to Web pages or other host environments. For information about
APIs that are specific to Web pages, please see web APIs and DOM.

4.4 INTRODUCTION TO HTML :

HTML stands for Hyper Text Markup Language. It is used to design web
pages using a markup language. HTML is the combination of Hypertext and
Markup language. Hypertext defines the link between web pages. A markup
language is used to define the text document within the tag which defines the
structure of web pages. This language is used to annotate (make notes for the
computer) text so that a machine can understand it and manipulate text
accordingly. Most markup languages (e.g. HTML) are human-readable. The
language uses tags to define what manipulation has to be done on the text.

HTML is a markup language used by the browser to manipulate text,


images, and other content, in order to display it in the required format.
HTMLwas created by Tim Berners-Lee in 1991. The first-ever version of HTML
was HTML 1.0, but the first standard version was HTML 2.0, published in 1995.

Elements and Tags:

HTML uses predefined tags and elements which tell the browser how to properly
display the content. Remember to include closing tags. If omitted, the browser
MMICT&BM 14
Task management system

applies the effect of the opening tag until the end of the page.

Features of HTML:

 It is easy to learn and easy to use.


 It is platform-independent.
 Images, videos, and audio can be added to a web page.
 Hypertext can be added to the text.
 It is a markup language.
 HTML stands for Hyper Text Markup Language
 HTML is the standard markup language for creating Web pages
 HTML describes the structure of a Web page
 HTML consists of a series of elements
 HTML elements tell the browser how to display the content
 HTML elements label pieces of content such as "this is a heading", "this
is a paragraph", "this is a link", etc.

MMICT&BM 15
Task management system

CHAPTER-5

DATABASE TABLE

5.1 Admin

NAME TYPE

id int(11)

name Varchar(53)

email Varchar(50)

password Varchar(50)

5.2 User

NAME TYPE

id int(11)

First name Varchar(50)

Last name Varchar(50)

Email Varchar(50)

MMICT&BM 16
Task management system

Password Varchar(100)

5.3 Project List

NAME TYPE

Id int(11)

Name Varchar(30)

Description text

Status Tinyint(2)

Start Date Date

End Date Date

Manager id Int(30)

User id text

Date created datetime

MMICT&BM 17
Task management system

5.4 System setting

NAME TYPE

id int(30)

name Varchar(30)

email Varchar(30)

contact varchar(20)

address text

Cover img text

MMICT&BM 18
Task management system

5.5 Task list

NAME TYPE

id int(30)

Project id Int(30)

task varchar(200)

description text

status Tinyint(4)

Date time
Date created

MMICT&BM 19
Task management system

5.6 User productivity

NAME TYPE

id int(30)

Project id Int(30)

Task id Int(30)

comment text

subject varchar(200)

date date

Start time time

End time time

User id Int(30)

Time rendered float

Date created datetime

MMICT&BM 20
Task management system

CHAPTER-6

6.1 Diagram between ADMIN and SYSTEM:

View user

Add user

Task
ADMIN SYSTEM

Project

Fig-1.1

6.2 ER Diagram :

Fig-1.2

MMICT&BM 21
Task management system

6.3 Data Flow Diagram :

A graphical tool used to describe and analysis the movement of data through
a system is called data flow diagram. Data flow diagram is the central basis, from
which other components are developed, the transformation of data from input to
output, through process, may be described logically and independent of the
physical components associated with the system.

The DFD is also known as a Data flow, Graph or a bubble chart.

Types of Data Flow Diagram:

1. Physical DFD
2. Logical DFD

1. Physical DFD

Structure analysis states that current system should first understand


correctly. The physical DFD is the model of current system and is used to ensure
that system has been clearly understood. Physical DFD's shows actual devices,
departments and people etc.

2. Logical DFD

Logical DFD are the model of proposed system. They clearly should show
the requirement non which the new system should be built. Later during the
design activity this taken has basis for drawing the system structure charts.

MMICT&BM 22
Task management system

Data Flow Diagram

Fig-1.3

MMICT&BM 23
Task management system

CHAPTER-7
SNAPSHOTS OF THE PROJECT

Login Page-

Admin Dashboard-

MMICT&BM 24
Task management system

User Update Page-

About User List-

MMICT&BM 25
Task management system

Employee Dashboard-

Project List-

MMICT&BM 26
Task management system

Task List-

Report-

MMICT&BM 27
Task management system

CHAPTER-8

TESTING

Software Testing is evaluation of the software against requirements


gathered from users and system specifications. Testing is conducted at the phase
level in software development life cycle or at module level in program code,
Software testing comprises of Validation and Verification.

8.1 UNIT TESTING

Unit testing, a testing technique using which individual modules are tested
to determine if there are any issues by the developer himself. It is concerned with
functional correctness of the standalone modules. The main aim is to isolate each
unit of the system to identify, analyze and fix the defects.

ADVANTAGES OF UNIT TESTING:

 Reduces Defects in the newly developed features or reduces bugs when


changing the existing functionality.
 Reduces Cost of Testing as defects are captured in very early phase.
 Improves design and allows better refactoring of code.
 Unit Tests, when integrated with build gives the quality of the build as well.

Unit Testing Techniques:

 Black Box Testing- Using which the user interface, input and output are
tested.
 White Box Testing- used to test each one of those functions’ behavior is
tested.

MMICT&BM 28
Task management system

8.2 BLACK BOX TESTING

Black-box testing is a method of software testing that examines the


functionality of an application based on the specifications. It is also known as
Specifications based testing Independent Testing Team usually performs this type
of testing during the software testing life cycle. This method of test can be applied
to each and every level of software testing such as unit integration, system and
acceptance testing.

Advantages:

 Efficient when used on large systems.


 Since the tester and developer are independent of each other, testing is
balanced and unprejudiced.
 There is no need for the tester to have detailed functional knowledge of
system.
 Tests will be done from an end user's point of view, because the end user
should accept the system.
 Testing helps to identify vagueness and contradictions in functional
specifications

Disadvantages

 Test cases are challenging to design without having clear functional


specifications.
 It is difficult to identify tricky inputs if the test cases are not developed
based on specifications.
 It is difficult to identify all possible inputs in limited testing time. As a
result, writing test cases may be slow and difficult.
 There are chances of having unidentified paths during the testing process.

MMICT&BM 29
Task management system

8.3 WHITE BOX TESTING

White box testing is a testing technique, which examines the program


structure and derives test data from the program logic/code. The other names of
glass box testing are clear box testing, open box testing, logic driven testing or
path driven testing or structural testing.

Advantages

 Side effects of having the knowledge of the source code are beneficial to
thorough testing.
 Optimization of code becomes easy as inconspicuous bottlenecks are
exposed Gives the programmer introspection because developers carefully
describe any new implementation.
 Provides traceability of tests from the source, thereby allowing future
changes to the source to be easily captured in the newly added or modified
tests.
 Easy to automate.
 Provides clear, engineering-based rules for when to stop testing.

Disadvantages

 White-box testing brings complexity to testing because the tester must have
knowledge of the program, including being a programmer. Whitebox
testing requires a programmer with a high level of knowledge due to the
complexity of the level of testing that needs to be done.
 On some occasions, it is not realistic to be able to test every single existing
condition of the application and some conditions will be untested.

MMICT&BM 30
Task management system

CHAPTETR-9

9.1 Admin

<!DOCTYPE html>
<html lang="en">
<?php session_start() ?>
<?php
if(!isset($_SESSION['login_id']))
header('location:login.php');
include 'db_connect.php';
ob_start();
if(!isset($_SESSION['system'])){

$system = $conn->query("SELECT * FROM system_settings")->fetch_array();


foreach($system as $k => $v){
$_SESSION['system'][$k] = $v;
}
}
ob_end_flush();

include 'header.php'
?>
<body class="hold-transition sidebar-mini layout-fixed layout-navbar-fixed layout-footer-
fixed">
<div class="wrapper">
<?php include 'topbar.php' ?>
<?php include 'sidebar.php' ?>

<!-- Content Wrapper. Contains page content -->


<div class="content-wrapper">
<div class="toast" id="alert_toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-body text-white">
</div>
</div>
<div id="toastsContainerTopRight" class="toasts-top-right fixed"></div>
<!-- Content Header (Page header) -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0"><?php echo $title ?></h1>
</div><!-- /.col -->

</div><!-- /.row -->


<hr class="border-primary">
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->

<!-- Main content -->


MMICT&BM 31
Task management system

<section class="content">
<div class="container-fluid">
<?php
$page = isset($_GET['page']) ? $_GET['page'] : 'home';
if(!file_exists($page.".php")){
include '404.html';
}else{
include $page.'.php';

}
?>
</div><!--/. container-fluid -->
</section>
<!-- /.content -->
<div class="modal fade" id="confirm_modal" role='dialog'>
<div class="modal-dialog modal-md" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Confirmation</h5>
</div>
<div class="modal-body">
<div id="delete_content"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id='confirm' onclick="">Continue</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="uni_modal" role='dialog'>
<div class="modal-dialog modal-md" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id='submit' onclick="$('#uni_modal
form').submit()">Save</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="uni_modal_right" role='dialog'>
<div class="modal-dialog modal-full-height modal-md" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span class="fa fa-arrow-right"></span>
MMICT&BM 32
Task management system

</button>
</div>
<div class="modal-body">
</div>
</div>
</div>
</div>
<div class="modal fade" id="viewer_modal" role='dialog'>
<div class="modal-dialog modal-md" role="document">
<div class="modal-content">
<button type="button" class="btn-close" data-dismiss="modal"><span class="fa fa-
times"></span></button>
<img src="" alt="">
</div>
</div>
</div>
</div>
<!-- /.content-wrapper -->

<!-- Control Sidebar -->


<aside class="control-sidebar control-sidebar-dark">
<!-- Control sidebar content goes here -->
</aside>
<!-- /.control-sidebar -->

<!-- Main Footer -->


<footer class="main-footer">
<strong>Copyright &copy; 2021 <a
href="https://www.campcodes.com/">CampCodes</a>.</strong>
All rights reserved.
<div class="float-right d-none d-sm-inline-block">
<b><?php echo $_SESSION['system']['name'] ?></b>
</div>
</footer>
</div>
<!-- ./wrapper -->

<!-- REQUIRED SCRIPTS -->


<!-- jQuery -->
<!-- Bootstrap -->
<?php include 'footer.php' ?>
</body>
</html>

MMICT&BM 33
Task management system

9.2 Admin Login

<!DOCTYPE html>
<html lang="en">
<?php
session_start();
include('./db_connect.php');
ob_start();
// if(!isset($_SESSION['system'])){

$system = $conn->query("SELECT * FROM system_settings")->fetch_array();


foreach($system as $k => $v){
$_SESSION['system'][$k] = $v;
}
// }
ob_end_flush();
?>
<?php
if(isset($_SESSION['login_id']))
header("location:index.php?page=home");

?>
<?php include 'header.php' ?>
<body class="hold-transition login-page bg-black">
<div class="login-box">
<div class="login-logo">
<a href="#" class="text-white"><b><?php echo $_SESSION['system']['name'] ?> -
Admin</b></a>
</div>
<!-- /.login-logo -->
<div class="card">
<div class="card-body login-card-body">
<form action="" id="login-form">
<div class="input-group mb-3">
<input type="email" class="form-control" name="email" required placeholder="Email">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" class="form-control" name="password" required
placeholder="Password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-8">
MMICT&BM 34
Task management system

<div class="icheck-primary">
<input type="checkbox" id="remember">
<label for="remember">
Remember Me
</label>
</div>
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" class="btn btn-primary btn-block">Sign In</button>
</div>
<!-- /.col -->
</div>
</form>
</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->
<script>
$(document).ready(function(){
$('#login-form').submit(function(e){
e.preventDefault()
start_load()
if($(this).find('.alert-danger').length > 0 )
$(this).find('.alert-danger').remove();
$.ajax({
url:'ajax.php?action=login',
method:'POST',
data:$(this).serialize(),
error:err=>{
console.log(err)
end_load();

},
success:function(resp){
if(resp == 1){
location.href ='index.php?page=home';
}else{
$('#login-form').prepend('<div class="alert alert-danger">Username or password is
incorrect.</div>')
end_load();
}
}
})
})
})
</script>
<?php include 'footer.php' ?>

</body>
</html>

MMICT&BM 35
Task management system

9.3 Dashboard
<?php include('db_connect.php') ?>
<?php
$twhere ="";
if($_SESSION['login_type'] != 1)
$twhere = " ";
?>
<!-- Info boxes -->
<div class="col-12">
<div class="card">
<div class="card-body">
Welcome <?php echo $_SESSION['login_name'] ?>!
</div>
</div>
</div>
<hr>
<?php

$where = "";
if($_SESSION['login_type'] == 2){
$where = " where manager_id = '{$_SESSION['login_id']}' ";
}elseif($_SESSION['login_type'] == 3){
$where = " where concat('[',REPLACE(user_ids,',','],['),']') LIKE
'%[{$_SESSION['login_id']}]%' ";
}
$where2 = "";
if($_SESSION['login_type'] == 2){
$where2 = " where p.manager_id = '{$_SESSION['login_id']}' ";
}elseif($_SESSION['login_type'] == 3){
$where2 = " where concat('[',REPLACE(p.user_ids,',','],['),']') LIKE
'%[{$_SESSION['login_id']}]%' ";
}
?>

<div class="row">
<div class="col-md-8">
<div class="card card-outline card-success">
<div class="card-header">
<b>Project Progress</b>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table m-0 table-hover">
<colgroup>
<col width="5%">
<col width="30%">
<col width="35%">
<col width="15%">
MMICT&BM 36
Task management system

<col width="15%">
</colgroup>
<thead>
<th>#</th>
<th>Project</th>
<th>Progress</th>
<th>Status</th>
<th></th>
</thead>
<tbody>
<?php
$i = 1;
$stat = array("Pending","Started","On-Progress","On-Hold","Over Due","Done");
$where = "";
if($_SESSION['login_type'] == 2){
$where = " where manager_id = '{$_SESSION['login_id']}' ";
}elseif($_SESSION['login_type'] == 3){
$where = " where concat('[',REPLACE(user_ids,',','],['),']') LIKE
'%[{$_SESSION['login_id']}]%' ";
}
$qry = $conn->query("SELECT * FROM project_list $where order by name asc");
while($row= $qry->fetch_assoc()):
$prog= 0;
$tprog = $conn->query("SELECT * FROM task_list where project_id =
{$row['id']}")->num_rows;
$cprog = $conn->query("SELECT * FROM task_list where project_id = {$row['id']}
and status = 3")->num_rows;
$prog = $tprog > 0 ? ($cprog/$tprog) * 100 : 0;
$prog = $prog > 0 ? number_format($prog,2) : $prog;
$prod = $conn->query("SELECT * FROM user_productivity where project_id =
{$row['id']}")->num_rows;
if($row['status'] == 0 && strtotime(date('Y-m-d')) >= strtotime($row['start_date'])):
if($prod > 0 || $cprog > 0)
$row['status'] = 2;
else
$row['status'] = 1;
elseif($row['status'] == 0 && strtotime(date('Y-m-d')) > strtotime($row['end_date'])):
$row['status'] = 4;
endif;
?>
<tr>
<td>
<?php echo $i++ ?>
</td>
<td>
<a>
<?php echo ucwords($row['name']) ?>
</a>
<br>
<small>
Due: <?php echo date("Y-m-d",strtotime($row['end_date'])) ?>

MMICT&BM 37
Task management system

</small>
</td>
<td class="project_progress">
<div class="progress progress-sm">
<div class="progress-bar bg-green" role="progressbar" aria-valuenow="57"
aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $prog ?>%">
</div>
</div>
<small>
<?php echo $prog ?>% Complete
</small>
</td>
<td class="project-state">
<?php
if($stat[$row['status']] =='Pending'){
echo "<span class='badge badge-secondary'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='Started'){
echo "<span class='badge badge-primary'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='On-Progress'){
echo "<span class='badge badge-info'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='On-Hold'){
echo "<span class='badge badge-warning'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='Over Due'){
echo "<span class='badge badge-danger'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='Done'){
echo "<span class='badge badge-success'>{$stat[$row['status']]}</span>";
}
?>
</td>
<td>
<a class="btn btn-primary btn-sm"
href="./index.php?page=view_project&id=<?php echo $row['id'] ?>">
<i class="fas fa-folder">
</i>
View
</a>
</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="row">
<div class="col-12 col-sm-6 col-md-12">
<div class="small-box bg-light shadow-sm border">
<div class="inner">
<h3><?php echo $conn->query("SELECT * FROM project_list $where")->num_rows;
MMICT&BM 38
Task management system

?></h3>

<p>Total Projects</p>
</div>
<div class="icon">
<i class="fa fa-layer-group"></i>
</div>
</div>
</div>
<div class="col-12 col-sm-6 col-md-12">
<div class="small-box bg-light shadow-sm border">
<div class="inner">
<h3><?php echo $conn->query("SELECT t.*,p.name as pname,p.start_date,p.status as
pstatus, p.end_date,p.id as pid FROM task_list t inner join project_list p on p.id = t.project_id
$where2")->num_rows; ?></h3>
<p>Total Tasks</p>
</div>
<div class="icon">
<i class="fa fa-tasks"></i>
</div>
</div>
</div>
</div>
</div>
</div>

9.4 New User


<?php
?>
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<form action="" id="manage_user">
<input type="hidden" name="id" value="<?php echo isset($id) ?
$id : '' ?>">
<div class="row">
<div class="col-md-6 border-right">
<div class="form-group">
<label for="" class="control-label">First
Name</label>
<input type="text" name="firstname"
class="form-control form-control-sm" required value="<?php echo isset($firstname) ?
$firstname : '' ?>">
</div>
<div class="form-group">
<label for="" class="control-label">Last
Name</label>
<input type="text" name="lastname"
class="form-control form-control-sm" required value="<?php echo isset($lastname) ? $lastname
: '' ?>">
</div>
<?php if($_SESSION['login_type'] == 1): ?>
MMICT&BM 39
Task management system

<div class="form-group">
<label for="" class="control-label">User
Role</label>
<select name="type" id="type"
class="custom-select custom-select-sm">
<option value="3" <?php echo
isset($type) && $type == 3 ? 'selected' : '' ?>>Employee</option>
<option value="2" <?php echo
isset($type) && $type == 2 ? 'selected' : '' ?>>Project Manager</option>
<option value="1" <?php echo
isset($type) && $type == 1 ? 'selected' : '' ?>>Admin</option>
</select>
</div>
<?php else: ?>
<input type="hidden" name="type"
value="3">
<?php endif; ?>
<div class="form-group">
<label for="" class="control-
label">Avatar</label>
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFile"
name="img" onchange="displayImg(this,$(this))">
<label class="custom-file-label" for="customFile">Choose
file</label>
</div>
</div>
<div class="form-group d-flex justify-content-
center align-items-center">
<img src="<?php echo isset($avatar) ?
'assets/uploads/'.$avatar :'' ?>" alt="Avatar" id="cimg" class="img-fluid img-thumbnail ">
</div>
</div>
<div class="col-md-6">

<div class="form-group">
<label class="control-label">Email</label>
<input type="email" class="form-control
form-control-sm" name="email" required value="<?php echo isset($email) ? $email : '' ?>">
<small id="#msg"></small>
</div>
<div class="form-group">
<label class="control-
label">Password</label>
<input type="password" class="form-
control form-control-sm" name="password" <?php echo !isset($id) ? "required":'' ?>>
<small><i><?php echo isset($id) ? "Leave
this blank if you dont want to change you password":'' ?></i></small>
</div>
<div class="form-group">
<label class="label control-label">Confirm
Password</label>
<input type="password" class="form-
MMICT&BM 40
Task management system

control form-control-sm" name="cpass" <?php echo !isset($id) ? 'required' : '' ?>>


<small id="pass_match" data-
status=''></small>
</div>
</div>
</div>
<hr>
<div class="col-lg-12 text-right justify-content-center d-flex">
<button class="btn btn-primary mr-2">Save</button>
<button class="btn btn-secondary" type="button"
onclick="location.href = 'index.php?page=user_list'">Cancel</button>
</div>
</form>
</div>
</div>
</div>
<style>
img#cimg{
height: 15vh;
width: 15vh;
object-fit: cover;
border-radius: 100% 100%;
}
</style>
<script>
$('[name="password"],[name="cpass"]').keyup(function(){
var pass = $('[name="password"]').val()
var cpass = $('[name="cpass"]').val()
if(cpass == '' ||pass == ''){
$('#pass_match').attr('data-status','')
}else{
if(cpass == pass){
$('#pass_match').attr('data-status','1').html('<i class="text-
success">Password Matched.</i>')
}else{
$('#pass_match').attr('data-status','2').html('<i class="text-
danger">Password does not match.</i>')
}
}
})
function displayImg(input,_this) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#cimg').attr('src', e.target.result);
}

reader.readAsDataURL(input.files[0]);
}
}
$('#manage_user').submit(function(e){
e.preventDefault()
$('input').removeClass("border-danger")
MMICT&BM 41
Task management system

start_load()
$('#msg').html('')
if($('[name="password"]').val() != '' && $('[name="cpass"]').val() != ''){
if($('#pass_match').attr('data-status') != 1){
if($("[name='password']").val() !=''){
$('[name="password"],[name="cpass"]').addClass("border-
danger")
end_load()
return false;
}
}
}
$.ajax({
url:'ajax.php?action=save_user',
data: new FormData($(this)[0]),
cache: false,
contentType: false,
processData: false,
method: 'POST',
type: 'POST',
success:function(resp){
if(resp == 1){
alert_toast('Data successfully saved.',"success");
setTimeout(function(){
location.replace('index.php?page=user_list')
},750)
}else if(resp == 2){
$('#msg').html("<div class='alert alert-danger'>Email
already exist.</div>");
$('[name="email"]').addClass("border-danger")
end_load()
}
}
})
})
</script>

9.5. User List

<?php include'db_connect.php' ?>


<div class="col-lg-12">
<div class="card card-outline card-success">
<div class="card-header">
<div class="card-tools">
<a class="btn btn-block btn-sm btn-default btn-flat border-
primary" href="./index.php?page=new_user"><i class="fa fa-plus"></i> Add New User</a>
</div>
</div>
<div class="card-body">
<table class="table tabe-hover table-bordered" id="list">
<thead>
<tr>
MMICT&BM 42
Task management system

<th class="text-center">#</th>
<th>Name</th>
<th>Email</th>
<th>Role</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
$i = 1;
$type = array('',"Admin","Project Manager","Employee");
$qry = $conn->query("SELECT *,concat(firstname,'
',lastname) as name FROM users order by concat(firstname,' ',lastname) asc");
while($row= $qry->fetch_assoc()):
?>
<tr>
<th class="text-center"><?php echo $i++ ?></th>
<td><b><?php echo ucwords($row['name'])
?></b></td>
<td><b><?php echo $row['email'] ?></b></td>
<td><b><?php echo $type[$row['type']]
?></b></td>
<td class="text-center">
<button type="button" class="btn btn-
default btn-sm btn-flat border-info wave-effect text-info dropdown-toggle" data-
toggle="dropdown" aria-expanded="true">
Action
</button>
<div class="dropdown-menu" style="">
<a class="dropdown-item view_user" href="javascript:void(0)"
data-id="<?php echo $row['id'] ?>">View</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item"
href="./index.php?page=edit_user&id=<?php echo $row['id'] ?>">Edit</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item delete_user" href="javascript:void(0)"
data-id="<?php echo $row['id'] ?>">Delete</a>
</div>
</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$('#list').dataTable()
$('.view_user').click(function(){
uni_modal("<i class='fa fa-id-card'></i> User
Details","view_user.php?id="+$(this).attr('data-id'))
})
MMICT&BM 43
Task management system

$('.delete_user').click(function(){
_conf("Are you sure to delete this user?","delete_user",[$(this).attr('data-id')])
})
})
function delete_user($id){
start_load()
$.ajax({
url:'ajax.php?action=delete_user',
method:'POST',
data:{id:$id},
success:function(resp){
if(resp==1){
alert_toast("Data successfully deleted",'success')
setTimeout(function(){
location.reload()
},1500)

}
}
})
}
</script>

9.6. Project List

<?php include'db_connect.php' ?>


<div class="col-lg-12">
<div class="card card-outline card-success">
<div class="card-header">
<?php if($_SESSION['login_type'] != 3): ?>
<div class="card-tools">
<a class="btn btn-block btn-sm btn-default btn-flat border-
primary" href="./index.php?page=new_project"><i class="fa fa-plus"></i> Add New
project</a>
</div>
<?php endif; ?>
</div>
<div class="card-body">
<table class="table tabe-hover table-condensed" id="list">
<colgroup>
<col width="5%">
<col width="35%">
<col width="15%">
<col width="15%">
<col width="20%">
<col width="10%">
</colgroup>
<thead>
<tr>
<th class="text-center">#</th>

MMICT&BM 44
Task management system

<th>Project</th>
<th>Date Started</th>
<th>Due Date</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
$i = 1;
$stat = array("Pending","Started","On-Progress","On-
Hold","Over Due","Done");
$where = "";
if($_SESSION['login_type'] == 2){
$where = " where manager_id =
'{$_SESSION['login_id']}' ";
}elseif($_SESSION['login_type'] == 3){
$where = " where
concat('[',REPLACE(user_ids,',','],['),']') LIKE '%[{$_SESSION['login_id']}]%' ";
}
$qry = $conn->query("SELECT * FROM project_list
$where order by name asc");
while($row= $qry->fetch_assoc()):
$trans =
get_html_translation_table(HTML_ENTITIES,ENT_QUOTES);
unset($trans["\""], $trans["<"], $trans[">"],
$trans["<h2"]);
$desc =
strtr(html_entity_decode($row['description']),$trans);
$desc=str_replace(array("<li>","</li>"), array("",",
"), $desc);

$tprog = $conn->query("SELECT * FROM


task_list where project_id = {$row['id']}")->num_rows;
$cprog = $conn->query("SELECT * FROM task_list where project_id
= {$row['id']} and status = 3")->num_rows;
$prog = $tprog > 0 ? ($cprog/$tprog) * 100 : 0;
$prog = $prog > 0 ? number_format($prog,2) : $prog;
$prod = $conn->query("SELECT * FROM user_productivity where
project_id = {$row['id']}")->num_rows;
if($row['status'] == 0 && strtotime(date('Y-m-d'))
>= strtotime($row['start_date'])):
if($prod > 0 || $cprog > 0)
$row['status'] = 2;
else
$row['status'] = 1;
elseif($row['status'] == 0 && strtotime(date('Y-m-
d')) > strtotime($row['end_date'])):
$row['status'] = 4;
endif;
?>
<tr>
<th class="text-center"><?php echo $i++ ?></th>
MMICT&BM 45
Task management system

<td>
<p><b><?php echo ucwords($row['name'])
?></b></p>
<p class="truncate"><?php echo
strip_tags($desc) ?></p>
</td>
<td><b><?php echo date("M d,
Y",strtotime($row['start_date'])) ?></b></td>
<td><b><?php echo date("M d,
Y",strtotime($row['end_date'])) ?></b></td>
<td class="text-center">
<?php
if($stat[$row['status']] =='Pending'){
echo "<span class='badge badge-
secondary'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='Started'){
echo "<span class='badge badge-
primary'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='On-
Progress'){
echo "<span class='badge badge-
info'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='On-Hold'){
echo "<span class='badge badge-
warning'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='Over Due'){
echo "<span class='badge badge-
danger'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='Done'){
echo "<span class='badge badge-
success'>{$stat[$row['status']]}</span>";
}
?>
</td>
<td class="text-center">
<button type="button" class="btn btn-
default btn-sm btn-flat border-info wave-effect text-info dropdown-toggle" data-
toggle="dropdown" aria-expanded="true">
Action
</button>
<div class="dropdown-menu" style="">
<a class="dropdown-item view_project"
href="./index.php?page=view_project&id=<?php echo $row['id'] ?>" data-id="<?php echo
$row['id'] ?>">View</a>
<div class="dropdown-divider"></div>
<?php if($_SESSION['login_type'] != 3): ?>
<a class="dropdown-item"
href="./index.php?page=edit_project&id=<?php echo $row['id'] ?>">Edit</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item delete_project" href="javascript:void(0)"
data-id="<?php echo $row['id'] ?>">Delete</a>
<?php endif; ?>
</div>
MMICT&BM 46
Task management system

</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</div>
</div>
</div>
<style>
table p{
margin: unset !important;
}
table td{
vertical-align: middle !important
}
</style>
<script>
$(document).ready(function(){
$('#list').dataTable()

$('.delete_project').click(function(){
_conf("Are you sure to delete this project?","delete_project",[$(this).attr('data-id')])
})
})
function delete_project($id){
start_load()
$.ajax({
url:'ajax.php?action=delete_project',
method:'POST',
data:{id:$id},
success:function(resp){
if(resp==1){
alert_toast("Data successfully deleted",'success')
setTimeout(function(){
location.reload()
},1500)

}
}
})
}
</script>

9.7. Task List-

<?php include'db_connect.php' ?>


<div class="col-lg-12">
<div class="card card-outline card-success">
<div class="card-header">
<div class="card-tools">
<a class="btn btn-block btn-sm btn-default btn-flat border-

MMICT&BM 47
Task management system

primary" href="./index.php?page=new_project"><i class="fa fa-plus"></i> Add New


project</a>
</div>
</div>
<div class="card-body">
<table class="table tabe-hover table-condensed" id="list">
<colgroup>
<col width="5%">
<col width="15%">
<col width="20%">
<col width="15%">
<col width="15%">
<col width="10%">
<col width="10%">
<col width="10%">
</colgroup>
<thead>
<tr>
<th class="text-center">#</th>
<th>Project</th>
<th>Task</th>
<th>Project Started</th>
<th>Project Due Date</th>
<th>Project Status</th>
<th>Task Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
$i = 1;
$where = "";
if($_SESSION['login_type'] == 2){
$where = " where p.manager_id =
'{$_SESSION['login_id']}' ";
}elseif($_SESSION['login_type'] == 3){
$where = " where
concat('[',REPLACE(p.user_ids,',','],['),']') LIKE '%[{$_SESSION['login_id']}]%' ";
}

$stat = array("Pending","Started","On-Progress","On-
Hold","Over Due","Done");
$qry = $conn->query("SELECT t.*,p.name as
pname,p.start_date,p.status as pstatus, p.end_date,p.id as pid FROM task_list t inner join
project_list p on p.id = t.project_id $where order by p.name asc");
while($row= $qry->fetch_assoc()):
$trans =
get_html_translation_table(HTML_ENTITIES,ENT_QUOTES);
unset($trans["\""], $trans["<"], $trans[">"],
$trans["<h2"]);
$desc =
strtr(html_entity_decode($row['description']),$trans);
$desc=str_replace(array("<li>","</li>"), array("",",
MMICT&BM 48
Task management system

"), $desc);
$tprog = $conn->query("SELECT * FROM
task_list where project_id = {$row['pid']}")->num_rows;
$cprog = $conn->query("SELECT * FROM task_list where project_id
= {$row['pid']} and status = 3")->num_rows;
$prog = $tprog > 0 ? ($cprog/$tprog) * 100 : 0;
$prog = $prog > 0 ? number_format($prog,2) : $prog;
$prod = $conn->query("SELECT * FROM user_productivity where
project_id = {$row['pid']}")->num_rows;
if($row['pstatus'] == 0 && strtotime(date('Y-m-d')) >=
strtotime($row['start_date'])):
if($prod > 0 || $cprog > 0)
$row['pstatus'] = 2;
else
$row['pstatus'] = 1;
elseif($row['pstatus'] == 0 && strtotime(date('Y-m-d')) >
strtotime($row['end_date'])):
$row['pstatus'] = 4;
endif;

?>
<tr>
<td class="text-center"><?php echo $i++ ?></td>
<td>
<p><b><?php echo ucwords($row['pname'])
?></b></p>
</td>
<td>
<p><b><?php echo ucwords($row['task'])
?></b></p>
<p class="truncate"><?php echo
strip_tags($desc) ?></p>
</td>
<td><b><?php echo date("M d,
Y",strtotime($row['start_date'])) ?></b></td>
<td><b><?php echo date("M d,
Y",strtotime($row['end_date'])) ?></b></td>
<td class="text-center">
<?php
if($stat[$row['pstatus']] =='Pending'){
echo "<span class='badge badge-
secondary'>{$stat[$row['pstatus']]}</span>";
}elseif($stat[$row['pstatus']] =='Started'){
echo "<span class='badge badge-
primary'>{$stat[$row['pstatus']]}</span>";
}elseif($stat[$row['pstatus']] =='On-
Progress'){
echo "<span class='badge badge-
info'>{$stat[$row['pstatus']]}</span>";
}elseif($stat[$row['pstatus']] =='On-Hold'){
echo "<span class='badge badge-
warning'>{$stat[$row['pstatus']]}</span>";
MMICT&BM 49
Task management system

}elseif($stat[$row['pstatus']] =='Over
Due'){
echo "<span class='badge badge-
danger'>{$stat[$row['pstatus']]}</span>";
}elseif($stat[$row['pstatus']] =='Done'){
echo "<span class='badge badge-
success'>{$stat[$row['pstatus']]}</span>";
}
?>
</td>
<td>
<?php
if($row['status'] == 1){
echo "<span class='badge badge-
secondary'>Pending</span>";
}elseif($row['status'] == 2){
echo "<span class='badge badge-
primary'>On-Progress</span>";
}elseif($row['status'] == 3){
echo "<span class='badge badge-
success'>Done</span>";
}
?>
</td>
<td class="text-center">
<button type="button" class="btn btn-
default btn-sm btn-flat border-info wave-effect text-info dropdown-toggle" data-
toggle="dropdown" aria-expanded="true">
Action
</button>
<div class="dropdown-menu" style="">
<a class="dropdown-item new_productivity" data-pid =
'<?php echo $row['pid'] ?>' data-tid = '<?php echo $row['id'] ?>' data-task = '<?php echo
ucwords($row['task']) ?>' href="javascript:void(0)">Add Productivity</a>
</div>
</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</div>
</div>
</div>
<style>
table p{
margin: unset !important;
}
table td{
vertical-align: middle !important
}
</style>
<script>
$(document).ready(function(){
MMICT&BM 50
Task management system

$('#list').dataTable()
$('.new_productivity').click(function(){
uni_modal("<i class='fa fa-plus'></i> New Progress for: "+$(this).attr('data-
task'),"manage_progress.php?pid="+$(this).attr('data-pid')+"&tid="+$(this).attr('data-tid'),'large')
})
})
function delete_project($id){
start_load()
$.ajax({
url:'ajax.php?action=delete_project',
method:'POST',
data:{id:$id},
success:function(resp){
if(resp==1){
alert_toast("Data successfully deleted",'success')
setTimeout(function(){
location.reload()
},1500)

}
}
})
}
</script>

9.8. Report

<?php include 'db_connect.php' ?>


<div class="col-md-12">
<div class="card card-outline card-success">
<div class="card-header">
<b>Project Progress</b>
<div class="card-tools">
<button class="btn btn-flat btn-sm bg-gradient-success btn-success" id="print"><i
class="fa fa-print"></i> Print</button>
</div>
</div>
<div class="card-body p-0">
<div class="table-responsive" id="printable">
<table class="table m-0 table-bordered">
<!-- <colgroup>
<col width="5%">
<col width="30%">
<col width="35%">
<col width="15%">
<col width="15%">
</colgroup> -->
<thead>
<th>#</th>
<th>Project</th>
<th>Task</th>

MMICT&BM 51
Task management system

<th>Completed Task</th>
<th>Work Duration</th>
<th>Progress</th>
<th>Status</th>
</thead>
<tbody>
<?php
$i = 1;
$stat = array("Pending","Started","On-Progress","On-Hold","Over Due","Done");
$where = "";
if($_SESSION['login_type'] == 2){
$where = " where manager_id = '{$_SESSION['login_id']}' ";
}elseif($_SESSION['login_type'] == 3){
$where = " where concat('[',REPLACE(user_ids,',','],['),']') LIKE
'%[{$_SESSION['login_id']}]%' ";
}
$qry = $conn->query("SELECT * FROM project_list $where order by name asc");
while($row= $qry->fetch_assoc()):
$tprog = $conn->query("SELECT * FROM task_list where project_id =
{$row['id']}")->num_rows;
$cprog = $conn->query("SELECT * FROM task_list where project_id = {$row['id']}
and status = 3")->num_rows;
$prog = $tprog > 0 ? ($cprog/$tprog) * 100 : 0;
$prog = $prog > 0 ? number_format($prog,2) : $prog;
$prod = $conn->query("SELECT * FROM user_productivity where project_id =
{$row['id']}")->num_rows;
$dur = $conn->query("SELECT sum(time_rendered) as duration FROM
user_productivity where project_id = {$row['id']}");
$dur = $dur->num_rows > 0 ? $dur->fetch_assoc()['duration'] : 0;
if($row['status'] == 0 && strtotime(date('Y-m-d')) >= strtotime($row['start_date'])):
if($prod > 0 || $cprog > 0)
$row['status'] = 2;
else
$row['status'] = 1;
elseif($row['status'] == 0 && strtotime(date('Y-m-d')) > strtotime($row['end_date'])):
$row['status'] = 4;
endif;
?>
<tr>
<td>
<?php echo $i++ ?>
</td>
<td>
<a>
<?php echo ucwords($row['name']) ?>
</a>
<br>
<small>
Due: <?php echo date("Y-m-d",strtotime($row['end_date'])) ?>
</small>
</td>
<td class="text-center">
<?php echo number_format($tprog) ?>
MMICT&BM 52
Task management system

</td>
<td class="text-center">
<?php echo number_format($cprog) ?>
</td>
<td class="text-center">
<?php echo number_format($dur).' Hr/s.' ?>
</td>
<td class="project_progress">
<div class="progress progress-sm">
<div class="progress-bar bg-green" role="progressbar" aria-valuenow="57"
aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $prog ?>%">
</div>
</div>
<small>
<?php echo $prog ?>% Complete
</small>
</td>
<td class="project-state">
<?php
if($stat[$row['status']] =='Pending'){
echo "<span class='badge badge-secondary'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='Started'){
echo "<span class='badge badge-primary'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='On-Progress'){
echo "<span class='badge badge-info'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='On-Hold'){
echo "<span class='badge badge-warning'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='Over Due'){
echo "<span class='badge badge-danger'>{$stat[$row['status']]}</span>";
}elseif($stat[$row['status']] =='Done'){
echo "<span class='badge badge-success'>{$stat[$row['status']]}</span>";
}
?>
</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script>
$('#print').click(function(){
start_load()
var _h = $('head').clone()
var _p = $('#printable').clone()
var _d = "<p class='text-center'><b>Project Progress Report as of (<?php echo
date("F d, Y") ?>)</b></p>"
_p.prepend(_d)
_p.prepend(_h)
var nw = window.open("","","width=900,height=600")
nw.document.write(_p.html())
MMICT&BM 53
Task management system

nw.document.close()
nw.print()
setTimeout(function(){
nw.close()
end_load()
},750)
})
</script>

MMICT&BM 54
Task management system

CHAPTER-10

FUTURE ENHANCEMENTS

Integration with AI and Machine Learning


 Implement AI-driven analytics to predict task completion times and identify
potential delays.
 Use machine learning algorithms to recommend task assignments based on
team member performance and workload.
Mobile Application
 Develop a mobile app version to allow users to manage tasks on-the-go, with
offline capabilities for uninterrupted access.
Advanced Reporting and Analytics
 Introduce more sophisticated reporting tools with customizable dashboards
and real-time analytics.
 Provide predictive analytics to forecast future workloads and resource needs.
Automated Workflow Management
 Automate repetitive tasks and workflows using pre-defined rules and
conditions to increase efficiency.
Enhanced Collaboration Features
 Integrate with popular communication platforms like Slack, Microsoft Teams,
and Zoom to facilitate seamless communication.
 Add features like video conferencing, real-time chat, and collaborative
document editing.
Gamification
 Implement gamification elements to increase user engagement, such as badges,
leaderboards, and achievement tracking.
Time Tracking and Billing
 Add time tracking features to monitor the time spent on tasks and projects, and
generate billing reports for clients.

MMICT&BM 55
Task management system

Customizable Templates
 Provide users with customizable templates for common project types and
tasks, streamlining setup and configuration.
Enhanced Security Features
 Strengthen security measures with features like multi-factor authentication,
single sign-on (SSO), and advanced encryption.
API Integration
 Develop APIs to enable seamless integration with other enterprise systems,
such as ERP, CRM, and HR management systems.
User Feedback Mechanism
 Implement a feedback system where users can suggest features and report
issues, fostering continuous improvement.

MMICT&BM 56
Task management system

CONCLUSION
The development and implementation of the Task Management System represent a
significant advancement in addressing the challenges of efficient task management
within organizations. This system not only streamlines task allocation, tracking, and
completion but also fosters improved collaboration and accountability among team
members. By incorporating features such as real-time updates, comprehensive
reporting, and user-friendly interfaces, the Task Management System enhances
productivity and operational efficiency.
Throughout this project, we have demonstrated the system’s ability to mitigate
common issues like miscommunication, missed deadlines, and resource
inefficiencies. The system's scalability and adaptability ensure that it can meet the
evolving needs of various organizations, making it a versatile tool in diverse
contexts.
In conclusion, the Task Management System stands as a pivotal solution for modern
organizations seeking to optimize their workflows and achieve higher levels of
efficiency and effectiveness. As we look to the future, the potential for further
enhancements, such as AI integration and mobile accessibility, promises even
greater benefits and innovations in task management.

MMICT&BM 57

You might also like