Task Tracker Final1
Task Tracker Final1
Task Tracker Final1
APPLICATION SYSTEM
BY
TO
JULY, 2024.
i
CERTIFICATION
This is to certify that this project report title “DESIGN AND IMPLEMENTATION OF A
TASK TRACKER WEB APPLICATION SYSTEM” was carried out by ADENIRAN
GABRIEL OLUWADAMILARE(P/ND/21/3210037), OKORONKWO EMMANUEL
CHIDIEBUBE(P/ND/21/3210211), UGURU JOEL ONYENATARUCHI(P/ND/21/3210239),
CHINEDU ISREAL OBINNA(P/ND/21/3210168),ADAMS ABDULGAFAR
HASSAN(P/ND/21/3210137) under the supervision of MR. FATOKI O.K and submitted to the
Department of Computer Technology, Yaba College of Technology, Yaba, Lagos in partial
fulfilment of the requirement for the award of National Diploma (OND) in Computer Science.
______________ ______________
MR FATOKI O.K DATE
Project Supervisor
______________ ______________
DR RUFAI M.M DATE
Head of Department (HOD) Computer Science
ii
DEDICATION
We dedicate this project work to the Almighty God, whose grace, strength, knowledge, wisdom,
and understanding have guided us to complete this endeavor successfully.
Additionally, we dedicate this project to our parents, and friends for their unwavering love,
understanding, and moral support. Without their encouragement and assistance, this achievement
would not have been possible.
May the Almighty God, in His infinite mercy, continue to bless and guide us all.
iii
ACKNOWLEDGEMENT
We seize this opportunity to extend our heartfelt gratitude to all who have contributed to the
successful completion of this project. First and foremost, we express our deep appreciation to our
supervisor, MR. FATOKI O.K, whose invaluable guidance, dedication, and insightful advice
were instrumental in shaping this project's outcome. We also take this opportunity to express our
deep sense of gratitude to the Head of Department of Computer Technology, DR. RUFAI M.M.
Also, our gratitude goes to our family for their financial, spiritual, and moral support, to all our
friends for their support and encouragement all through the courses of this project. May
Almighty God Bless you all.
iv
ABSTRACT
The Task Tracker project aims to develop a comprehensive web-based application designed to
streamline task management and enhance productivity for staff users. This application addresses
common challenges associated with task organization, assignment, tracking, and collaboration.
Utilizing a robust technological stack, including JavaScript, React.js, Node.js, and MongoDB,
the project delivers a user-friendly interface coupled with advanced functionalities such as user
authentication, data validation, and RESTful APIs. The system integrates with third-party tools
and services to extend its functionality and provides a seamless user experience through intuitive
UI components.
v
TABLE OF CONTENT
TITLE PAGE Ⅰ
CERTIFICATION Ⅱ
DEDICATION Ⅲ
ACKNOWLEDGEMENT Ⅳ
ABSTRACT Ⅴ
TABLE OF CONTENT Ⅵ
CHAPTER ONE – INTRODUCTION
2.0 Introduction 8
vi
3.1 Analysis of Existing System 14
5.1 Summary 38
5.2 Conclusion 38
5.4 Recommendation 39
REFERENCES 40
APPENDIX 41-58
vii
CHAPTER ONE
INTRODUCTION
At their core, task-tracking systems harness the power of technology to provide centralized
platforms dedicated to the assignment, monitoring, and tracking of tasks. By offering a single,
cohesive interface for managing tasks across departments and teams, these systems eliminate the
inefficiencies associated with traditional, fragmented approaches to task management. Instead of
relying on manual methods or disparate tools, institutions like Yabatech can leverage task
trackers to create a unified environment where tasks are assigned, monitored, and completed
with ease.
One of the primary advantages of task-tracking systems lies in their ability to streamline
workflow processes. By providing clear visibility into the status of tasks and assignments, these
systems empower stakeholders to prioritize and allocate resources effectively. Tasks can be
assigned with defined deadlines and priority levels, ensuring that critical activities receive the
necessary attention while minimizing bottlenecks and delays. This streamlined approach not only
enhances overall efficiency but also fosters a culture of accountability among staff members.
In the context of educational institutions like Yabatech, the adoption of task-tracking systems
holds immense promise for enhancing operational efficiency and optimizing resource utilization.
Academic and administrative processes, which often involve a myriad of tasks and
responsibilities, can benefit from the structured framework provided by these systems. From
managing course assignments and academic projects to coordinating administrative tasks and
1
facility maintenance, task trackers offer a comprehensive solution tailored to the unique needs of
educational environments.
3. Limited Visibility and Accountability: Manual task tracking methods may lack real-time
visibility into task progress and completion status. This lack of visibility makes it challenging for
administrators to hold individuals or teams accountable for their assigned tasks, leading to
potential delays and inefficiencies.
4. Resource Misallocation: Without proper tracking and analysis of task allocation and workload
distribution, there's a risk of resources being misallocated. Some departments or individuals
2
might be overloaded with tasks, while others remain underutilized, leading to imbalances in
productivity and efficiency.
6. Risk of Errors and Delays: Manual task management processes are prone to errors, such as
data entry mistakes, missed updates, and overlooked deadlines. These errors can lead to delays in
task completion, negatively impacting overall productivity and organizational effectiveness.
In summary, the problem statement highlights the need for a centralized task tracker system in
Yabatech to address the challenges faced with decentralized task management, ineffective
communication, limited visibility, accountability issues, resource misallocation, and the lack of
data-driven decision-making capabilities.
3
1. Provide a centralized platform for assigning, monitoring, and tracking tasks across
various departments within the institution.
2. Enhance communication and collaboration among faculty and staff members, facilitating
seamless coordination and information sharing.
3. Streamline workflow processes and improve efficiency in task management, thereby
reducing delays and bottlenecks.
4. Promote accountability by establishing clear task assignments and enabling real-time
progress tracking, fostering a culture of responsibility and ownership.
5. Facilitate data-driven decision-making through the provision of comprehensive reports
and analytics, enabling administrators to gain insights into performance metrics and identify
areas for improvement.
4
3. User Training: To ensure the successful adoption and utilization of the task tracker system, the
study will include comprehensive training sessions for faculty and staff members. Training
materials and workshops will be developed to educate users on system functionalities, best
practices, and troubleshooting procedures.
4. Pilot Phase: Before full implementation, the task tracker system will undergo a pilot phase
involving a select group of departments or users. During this phase, feedback will be collected to
identify any issues or areas for improvement before rolling out the system college-wide.
5. Full Rollout: Upon successful testing and refinement in the pilot phase, the task tracker system
will be fully rolled out across Yabatech. The implementation process will involve deploying the
system to all relevant departments and users, ensuring seamless integration into existing
workflow processes.
6. Monitoring and Evaluation: Following the full rollout, the study will include mechanisms for
monitoring and evaluating the effectiveness of the task tracker system. This may involve
collecting user feedback, analyzing system usage metrics, and assessing the impact of the system
on productivity, communication, and accountability within the institution.
In summary, the scope of the study covers the development, implementation, training, pilot
testing, full rollout, monitoring, and evaluation of a task tracker system at Yabatech, with a focus
on addressing the specific needs and challenges of the institution's academic and administrative
tasks.
2. User Adoption and Training: Ensuring widespread adoption and effective utilization of the
task tracker system among faculty, staff, and administrators may be a challenge. Resistance to
5
change, lack of familiarity with the new technology, and insufficient training and support
resources could hinder user acceptance and engagement.
3. Customization and Flexibility: While the system aims to meet the specific requirements of
Yabatech, it may lack certain customization options or flexibility to accommodate unique
workflow processes or user preferences.
4. Maintenance and Support: Sustaining the functionality, performance, and security of the task
tracker system over time requires regular maintenance, updates, and technical support. Adequate
resources, expertise, and processes must be in place to address software bugs, system errors, and
user inquiries in a timely manner.
Addressing these limitations requires careful planning, staff engagement, and ongoing
monitoring and evaluation to ensure that the task tracker system effectively meets the needs of
Yabatech and delivers tangible benefits to its users.
7
CHAPTER TWO
LITERATURE REVIEW
2.0 Introduction
Task tracking system is a web based application system that plays a pivotal role in modern
organizations, facilitating efficient allocation of resources, clear communication, and streamlined
workflow processes. It’s is designed to simplify and enhance management and tracking of tasks
assigned to individuals within an organization. In today's fast-paced world, staying organized and
managing time effectively is crucial for both individuals and organizations. A task tracker system
is a powerful tool designed to streamline the process of task management, enhancing
productivity and ensuring that nothing falls through the cracks. This write-up delves into the
fundamentals of a task tracker system, its benefits, key features, and the impact it can have on
various aspects of personal and professional life.
8
A task tracking system, also known as task management software or project management tool, is
an application used to keep track of tasks, manage workflow, and facilitate collaboration among
staffs. Its primary purpose is to streamline task management processes, ensuring that tasks are
completed on time and within scope.
Key Components
1. Task Creation: Users can create tasks with detailed descriptions, ensuring clarity and
understanding of the task requirements.
2. Task Assignment: Tasks can be assigned to specific individuals or teams, defining
roles and responsibilities clearly.
3. Prioritization: Tasks can be prioritized based on urgency and importance, helping
users focus on critical activities first.
4. Deadlines and Reminders: Users can set deadlines for tasks and receive automated
reminders, ensuring timely completion.
5. Progress Tracking: The system provides tools to monitor the progress of each task,
offering visual representations such as progress bars or kanban boards.
6. Collaboration Tools: Built-in communication features like comments, file sharing,
and notifications facilitate seamless collaboration among team members.
7. Reporting and Analytics: Advanced reporting features provide insights into task
completion rates, project timelines, and team performance.
8. Integration: Many task tracking systems integrate with other software applications
(e.g., email, calendars, and project management tools) to create a cohesive workflow.
10
2.3 The History of Task Tracking
The evolution of task tracking is a fascinating journey that mirrors the advancements in
technology and changes in work culture over the centuries. From simple paper-based methods to
sophisticated digital applications, task tracking has continuously evolved to meet the growing
complexity and demands of personal and professional life. This write-up provides an overview of
the history of task tracking, highlighting key developments and milestones.
Ancient Civilizations: Task tracking can trace its roots back to ancient civilizations. The
Sumerians, for instance, used clay tablets to record and manage agricultural activities and trade.
Similarly, the Egyptians employed hieroglyphics on papyrus to document tasks related to
construction, trade, and governance. The Middle Ages: During the Middle Ages, task tracking
was primarily managed through written records maintained by scribes. Monasteries, for example,
used meticulous record-keeping to track tasks related to agricultural production, construction,
and daily routines.
1. The Industrial Revolution: The Industrial Revolution in the 18th and 19th centuries
marked a significant shift in task management. As factories and large-scale enterprises
emerged, there was a growing need for more organized and efficient task tracking
systems. The introduction of timekeeping and shift management systems helped track
labor and productivity.
2. The Birth of Management Theories: In the late 19th and early 20th centuries, pioneers
like Frederick Winslow Taylor and Henry Gantt introduced scientific management
theories that emphasized efficiency and productivity. Taylor’s time and motion studies
aimed to optimize task performance, while Gantt’s eponymous Gantt Chart provided a
visual representation of project schedules and task dependencies.
The Digital Revolution
The Advent of Computers: The introduction of computers in the mid-20th century revolutionized
task tracking. Early computer systems, such as IBM's mainframes, were used to manage complex
11
tasks and projects in industries like aerospace and manufacturing. These systems provided
unprecedented computational power and data storage capabilities.
The Rise of Personal Computers: The 1980s saw the advent of personal computers, making task
tracking more accessible to individuals and small businesses. Software applications like Lotus 1-
2-3 and Microsoft Excel became popular tools for managing tasks, creating schedules, and
tracking progress.
The Internet Era
Web-Based Applications: The rise of the internet in the 1990s and early 2000s brought about
web-based task tracking applications. These tools allowed users to manage tasks online, enabling
real-time collaboration and remote access. Pioneering applications like Basecamp and Trello
introduced features such as task lists, project boards, and collaborative tools.
Integration and Automation: The 2010s saw the integration of task tracking systems with other
productivity tools. Applications like Asana, Jira, and Monday.com offered seamless integration
with email, calendars, and project management software. Automation features, such as
automated reminders and recurring tasks, further enhanced efficiency.
1. Integration Issues: Difficulty integrating with existing systems or other software tools
used by the organization can hinder adoption and efficiency.
2. Customization Limitations: Lack of flexibility in customization options may not meet
the specific needs or workflows of different teams or organizations.
3. Scalability Concerns: As the number of users and tasks increases, performance issues
can arise, affecting speed and responsiveness.
4. Data Security: Concerns about data privacy and security breaches, especially when
dealing with sensitive task information or user data.
5. Cost: High initial setup costs or ongoing subscription fees may be prohibitive for smaller
teams or organizations with limited budgets.
12
6. User Adoption: Resistance from team members to adopt new tools or processes,
especially if they perceive the system as cumbersome or redundant.
7. Training Needs: Significant training may be required to educate users on how to
effectively use the task tracking system, adding to the overall implementation cost and
time.
8. Maintenance and Support: Dependence on timely updates, patches, and responsive
customer support to address issues or bugs that may arise.
9. Performance Monitoring: Difficulty in tracking and monitoring the performance and
effectiveness of tasks and workflows within the system itself.
13
CHAPTER THREE
SYSTEM ANALYSIS AND DESIGN
Delving deep into the description and analysis of the old Systems for task tracking, we have the
manual method, the use of spreadsheets and lastly project management tools.
14
3.3 Program Module Specification
The program module specification of a task tracker web application system typically includes
several key modules or components designed to manage various aspects of task tracking and
management. Here’s a general outline of what such a specification might include:
15
Task Management Module:
Task Deletion
16
Task Allocation
Task Allocation
17
Task Notification
1. User Inputs:
Registration Data: Name, email, password, etc., for creating new user accounts.
Task Creation: Title, description, assignee, due date, priority, etc., when creating
new tasks.
18
Project Details: Name, description, team members, deadlines, milestones, etc.,
when creating new projects.
Updates and Edits: Changes to existing tasks, projects, user profiles, etc.
2. System Inputs:
API Inputs: Data received from third-party integrations (e.g., calendar events,
updates from other software).
Scheduled Tasks: Automated system tasks (e.g., backups, notifications).
3. File Uploads:
Attachments and documents related to tasks or projects.
4. Configuration Inputs:
Settings adjustments (e.g., user permissions, notification preferences).
Output Specifications:
1. User Outputs:
• Task Lists: Displaying tasks assigned to a user or team, filtered by status, priority,
etc.
• Project Overviews: Summaries of projects, including tasks, deadlines, and
progress.
• Reports: Generated reports on task completion rates, team productivity, etc.
• Notifications: Real-time alerts and notifications for task updates, deadlines, etc.
2. System Outputs:
• API Outputs: Responses to third-party applications (e.g., confirmation of data
sync).
3. File Downloads:
• Access to attachments and documents associated with tasks or projects.
19
4. Configuration Outputs:
• Confirmation messages for settings changes.
• System logs and audit trails for user actions.
20
3.5 System Flowchart
The flow chart diagram for the Task Tracker system provides a visual representation of the
workflow and processes within the system. It illustrates the key steps involved from user
registration to task creation, updating, deletion, and retrieval. This flow chart helps in
understanding the sequence of operations and the interaction between different components of
the task tracking web application.
Start
Input Task
Details
No
Validate the input
Yes
Assign Task To
Store Task
User
Update Task
Task Track Progress Error Handling
Status
Check Task
Completion
Notify Task
Completion
End
21
Components of the Flow Chart
1. User Registration and Authentication
- New User Registration: Users provide their details (name, email, password) to create an
account. The system generates a unique ID for each user.
- Existing User Authentication: Users log in with their email and password to access the
system.
3. Task Management
- Updating Task: Users can update task details, including status, description, and deadline.
- Task Deletion: Users can delete tasks that are no longer needed or completed.
4. Task Notification
- The system sends notifications to users about task assignments, updates, and upcoming
deadlines.
6. Database Interaction
- Task Collection: Tasks are stored in a database, with each task associated with the user who
created or is responsible for it.
- User Collection: User information, including login credentials and profile details, is stored in
a separate database collection.
22
Flow Chart Description
The flow chart diagram for the Task Tracker system provides a clear and organized visualization
of how users interact with the system and how various processes are managed. This aids in both
the development and troubleshooting of the application by providing a comprehensive overview
of the system's functionality.
The flow chart begins with user registration and authentication, ensuring that only authorized
users can access the system. It then moves on to task creation and allocation, highlighting the
importance of task details and the assignment process. The task management section shows how
tasks can be updated or deleted as needed. The inclusion of task notifications ensures that users
are kept informed about their tasks, improving overall efficiency and productivity. Finally, the
flow chart emphasizes the critical role of database interactions in maintaining and organizing
user and task data.
This structured approach ensures that the Task Tracker system is user-friendly, efficient, and
scalable, meeting the needs of individual users and teams alike.
3.6 Use Case Study for the Task Tracker Web Application System
The Task Tracker Web Application is designed to help individuals and teams manage their tasks
effectively. It provides functionalities for creating, assigning, and tracking tasks, ensuring that
users can stay organized and productive.
23
Review Task
View To Do List
Retrieve To Do List
LOGIN
Update Task
Application
Add Task
Admin
Delete Task
Assign Task
All Task
Filter Task Complete
Task
Incomplete
Task
Stakeholders
End Users: Staffs who will use the application to manage their tasks.
Admin: Those who need to assign tasks and monitor the progress of other staffs.
Primary Actors
Use Cases
24
• Actors: Staffs
• Preconditions: The user must have access to the registration page.
• Postconditions: The user is registered and can log in to the application.
• Steps:
1. Staff navigates to the registration page.
2. Staff fills in the registration form with required details (e.g., name, email,
password).
3. Staff submits the form.
4. System validates the details and creates a new user account.
5. Staff receives a confirmation email and logs in to the application.
2. Task Creation
• Description: Staffs can create tasks and assign them to themselves or other team
members.
• Actors: User
• Preconditions: The staff must be logged in.
• Postconditions: A new task is created and visible in the task list.
• Steps:
1. Staff navigates to the task creation page.
2. Staff enters task details (e.g., title, description, due date, assignee).
3. Staff submits the task form.
4. System saves the task and updates the task list.
4. Notification System
• Description: Users receive notifications for task assignments, updates, and
deadlines.
• Actors: User
• Preconditions: User must have tasks assigned to them.
• Postconditions: User is notified about relevant task updates.
• Steps:
1. System monitors task events (e.g., assignments, status changes).
2. System sends notifications to users (e.g., email, in-app notifications).
3. User receives and acknowledges notifications.
Description: Admins can manage user accounts, including creating, updating, and
deleting accounts.
• Actors: Admin
• Preconditions: Admin must be logged in with appropriate privileges.
• Postconditions: User accounts are managed as required.
• Steps:
1. Admin navigates to the user management page.
2. Admin views the list of users.
26
3. Admin performs actions such as adding, updating, or deleting user
accounts.
4. System updates the user database accordingly.
Benefits
27
CHAPTER FOUR
SYSTEM IMPLEMENTATION
During the implementation phase, key tasks include defining project scope, gathering
requirements, designing the system architecture, developing the software, testing for quality
assurance, deploying the system into production, and providing ongoing support and
maintenance. Effective system implementation requires collaboration between developers,
testers, and end-users to ensure that the system is delivered on time, within specific time, and
meets quality standards. Clear communication, thorough planning, and diligent execution were
essential to the success of the implementation process. Throughout the implementation phase, we
ensured that user experience was one of our top most priority, alongside usability, scalability to
ensure that the web app effectively supports task management workflows and contributes to the
28
institution efficiency and productivity. Regular feedback, monitoring, and adaptation are
necessary to address any issues, refine functionality, and optimize system performance over time.
1. Architecture Overview
Presentation Layer: User interface (UI) components that interact with end-users.
Business Logic Layer: Core functionalities and services that handle task management.
Data Layer: Database components for storing and retrieving data.
2. Components
1. Presentation Layer
o Frontend Framework: React.js
o Features:
User registration and login forms
Dashboard displaying task lists and statuses
Task creation and update forms
Notification system for task updates
Filtering and sorting tasks
User profile management
30
5. Notification Service triggers an email and in-app notification to the
assignee.
6. Task is displayed on the dashboard, and users can update or delete tasks as
needed.
3. Notification System
o Flow:
1. Task Service triggers events for task creation, updates, and deadlines.
2. Notification Service listens for these events and generates appropriate
notifications.
3. Notifications are sent via email using an email service provider (e.g.,
SendGrid).
4. In-app notifications are updated in real-time using WebSockets.
4. Analytics and Reporting
o Flow:
1. Analytics Service aggregates task data and user activity from MongoDB.
2. Generates reports on task completion rates, user performance, and system
usage statistics.
3. Reports are accessible to admins via the admin dashboard.
4. Data visualizations are created using a library such as D3.js or Chart.js.
Fields:
o Name: Text input for the user’s full name.
o Email: Email input to ensure a valid email format.
o Password: Password input with visibility toggle and strength indicator.
o Confirm Password: Password input to confirm the user's password.
Validations:
o Name: Required, alphabetic characters only.
31
o Email: Required, valid email format.
o Password: Required, minimum 8 characters, including uppercase, lowercase,
numeric, and special characters.
o Confirm Password: Must match the password field.
Login Form
Fields:
Fields:
o Task Title: Text input for the task title.
o Description: Text area for a detailed description of the task.
o Priority: Dropdown menu with options (Low, Medium, High).
o Due Date: Date picker to select the due date.
o Assignee: Dropdown menu to select a team member.
Validations:
o Task Title: Required, alphanumeric characters only.
o Description: Optional, but if provided, it should not exceed 500 characters.
o Priority: Required, must select one from the dropdown.
32
o Due Date: Required, must be a future date.
o Assignee: Required, must select a user from the list.
Fields:
o Task Title: Text input (pre-filled with existing title).
o Description: Text area (pre-filled with existing description).
o Priority: Dropdown menu (pre-selected with current priority).
o Due Date: Date picker (pre-filled with current due date).
o Assignee: Dropdown menu (pre-selected with current assignee).
o Status: Dropdown menu with options (Not Started, In Progress, Completed).
o Loading indicator while processing the task update.
33
Output interface for the Performance Metrics for Staffs
34
The Output Interface for Task Assigning and List of Staffs
35
The Output Interface for the Profile Information
3.Web Server:
36
The Task Tracker System is hosted on a web server software, such as Apache HTTP Server,
Nginx, or Microsoft Internet Information Services (IIS), to serve web pages and handle HTTP
requests from users' web browsers.
The web server is configured to support secure communication protocols (e.g., HTTPS) and
optimize performance through caching and compression techniques.
37
HTML (Hypertext Markup Language)
HTML forms the web application's backbone, providing the web pages' structure and layout. It
was used to create the user interface ensuring that the content was organized and accessible.
CSS (Cascading Style Sheets)
CSS was used for styling the HTML elements, ensuring that the application has an appealing and
consistent look and feel.
JavaScript
JavaScript is crucial for adding interactivity and dynamic functionalities to the web application.
It enables features such as form validation, dynamic content updates, and interactive user
interfaces.
Node.JS
Node.js is utilized for the backend development of the application. It is a powerful, event-driven
JavaScript runtime that allows for the creation of scalable and high-performance server-side
applications.
TypeScript
TypeScript is a superset of JavaScript that adds static typing to the language. It was used in
catching errors during development, improving code quality, and making the codebase more
maintainable.
38
5c3ff0.netlify.app, you can either click on the link or copy it and then paste it to any browser
either from your phone or a laptop.
2. Navigating the App: Familiarize yourself with the app's interface and navigation. Discover
how to move between different sections, access menus, and use shortcuts to streamline your
workflow.
3. Managing Tasks: Explore the various features for creating, assigning, prioritizing, and tracking
tasks. Learn how to add due dates, set reminders, attach files, and collaborate with other Staffs
on tasks.
CHAPTER FIVE
39
SUMMARY, CONCLUSION, AND RECOMMENDATION
5.1 Summary
This is our project “Task Tracker Web Application System ” which will allow staffs to assign,
retrieve, manage and track tasks on the web seamlessly from the comfort of their office without
the need for physical meetings. The is a web based application that was developed with HTML,
CSS, JavaScript, Node.JS, and lastly TypeScript. The main objective of this project was that,
staffs can be able to assign task seamlessly and conveniently.
Many efforts were required in developing this project, Development of this website gave us a lot
of satisfaction.
5.2 Conclusion
The Task Tracker project is a comprehensive web-based application designed to streamline task
management and enhance productivity for staff and users. Developed by a team of skilled
professionals with extensive experience in software development and project management, this
project aims to address the challenges associated with task organization, assignment tracking,
and collaboration. The Task Tracker project offers a user-friendly interface, robust features, and
advanced functionalities to empower users to efficiently manage their tasks, meet deadlines, and
achieve their goals. By leveraging a robust technological stack including JavaScript, React.js,
Node.js, and MongoDB, the application integrates seamlessly with third-party tools and services
to extend its functionality and provides a seamless user experience through intuitive UI
components.
40
added would be AI-powered Task which will enable AI to generate task priorities and deadlines
based on workload and past performance.
5.4 Recommendation
The Task Tracker Web Application stands out as an exceptional tool for staff, significantly
enhancing task management and boosting productivity. Its intuitive interface and comprehensive
features foster seamless communication and collaboration among team members. Real-time
tracking capabilities and data-driven insights provided by the application enhance accountability
and support informed decision-making processes. Seamless integration with existing systems
ensures a smooth workflow, making it an invaluable resource for organizational efficiency.
Overall, this application serves as a highly efficient and effective solution for managing tasks
within the institution, empowering staff to accomplish goals more effectively.
41
References
1. Atkinson, R. (1999). Project Management: Cost, Time and Quality, Two Best Guesses and a
Phenomenon, Its Time to Accept Other Success Criteria. International Journal of Project
Management, 17(6), 337-342.
2. Black, P. E., & Sloan, T. (2020). Managing and Developing Open Source Projects. The Journal
of Open Source Software, 5(45), 1-5.
5. Collins, J. C., & Porras, J. I. (1996). Building Your Company's Vision. Harvard Business
Review, 74(5), 65-77.
6. Dingsøyr, T., Nerur, S., Balijepally, V., & Moe, N. B. (2012). A Decade of Agile
Methodologies: Towards Explaining Agile Software Development. Journal of Systems and
Software, 85(6), 1213-1221.
7. Drury, M., Conboy, K., & Power, K. (2012). Obstacles to Decision Making in Agile Software
Development Teams. Journal of Systems and Software, 85(6), 1239-1254.
8. Fitzgerald, B., & Stol, K. J. (2014). Continuous Software Engineering: A Roadmap and
Agenda. Journal of Systems and Software, 123, 176-189.
10. Larman, C., & Basili, V. R. (2003). Iterative and Incremental Development: A Brief History.
Computer, 36(6), 47-56.
42
Appendix A (Front-End Design)
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Task Tracker System </title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
43
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:react-hooks/recommended',
],
ignorePatterns: ['dist', '.eslintrc.cjs'],
parser: '@typescript-eslint/parser',
plugins: ['react-refresh'],
rules: {
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
}
(Users Authentication)
dotenv.config();
44
req.body.password,
process.env.PassKey
).toString();
45
const { password, ...others } = user._doc;
46
Appendix (Task Allocation)
import Task from "../models/Task.js";
import User from "../models/User.js";
import nodecron from "node-cron";
import { sendTaskNotification } from "../notification.js";
sendTaskNotification(savedTask.assignedBy, savedTask.assignedUser);
//since it is automated, we will now use crom
// Schedule a cron job to run every day
nodecron.schedule("0 0 * * *", async () => {
47
// Get all tasks from the database
const tasks = await Task.find();
// Calculate the reminder date (one day before the deadline) for each task
tasks.forEach((task) => {
const deadline = new Date(task.deadLine);
const reminderDate = new Date(deadline);
reminderDate.setDate(reminderDate.getDate() - 1);
res.status(200).json(savedTask);
} catch (err) {
res.status(500).json(err);
}
48
};
theAssignedUser.tasks.push(updatedTask);
theAssignedUser.save();
res.status(200).json(updatedTask);
} catch (err) {
console.log(err);
res.status(500).send(err);
}
};
49
taskAssignedUser.tasks.pull(task);
taskAssignedUser.save();
await Task.findByIdAndDelete(req.params.id);
50
createdAt: "desc",
});
} else if (inProgress) {
tasks = await Task.find({ taskStatus: "in progress" }).sort({
createdAt: "desc",
});
} else {
tasks = await Task.find().sort({ createdAt: "desc" });
}
res.status(200).json(tasks);
} catch (err) {
res.status(500).json(err);
}
};
dotenv.config();
51
app.use(express.json());
app.use(cookieParser());
app.use(
cors({
origin: "https://dazzling-praline-5c3ff0.netlify.app",
methods: ["GET", "POST", "PUT", "DELETE"],
credentials: true,
exposedHeaders: ["*"],
preflightContinue: false,
optionsSuccessStatus: 204,
})
);
app.options(
"*",
cors({
credentials: true,
origin: "https://dazzling-praline-5c3ff0.netlify.app",
methods: ["GET", "POST", "PUT", "DELETE"],
exposedHeaders: ["*"],
preflightContinue: false,
optionsSuccessStatus: 204,
})
);
mongoose
.connect(process.env.mongoUrL)
.then(() => console.log("db connected"))
.catch((err) => console.log("db is not connected. This is the" + err));
52
app.get("/health", (req, res) => {
res.status(200).json({ status: "UP" });
});
app.use("/api/auth", AuthRoute);
app.use("/api/user", UserRoute);
app.use("/api/task", TaskRoute);
Notification.JS
// notificationService.js
53
try {
// Compose the email message
const mailOptions = {
from: assignerEmail,
to: assignedUserEmail,
subject: "Task Notification",
text: `Dear ${assignedUserEmail}, you have a new task, kindly log in to your app to view.
Best regards, ${assignerEmail}`,
};
54
};
Token Verification
import jwt from "jsonwebtoken";
import dotenv from "dotenv";
dotenv.config();
55
export const verifyTokenAndAuthorization = (req, res, next) => {
try {
verifyToken(req, res, () => {
if (req.user.id === req.params.id || req.user.isAdmin) {
next();
} else {
return res.status(403).json("You're not allowed to do that");
}
});
} catch (err) {
res.status(500).json(err);
}
};
Users Model
import mongoose from "mongoose";
56
const UserSchema = new mongoose.Schema(
{
fullName: { type: String, required: true },
username: { type: String, required: true, unique: true },
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
uniqueId: { type: String, required: true },
isAdmin: { type: Boolean, required: true },
tasks: [
{
taskName: { type: String, default: null },
description: { type: String },
assignedBy: { type: String },
assignedUser: { type: String },
deadLine: { type: String },
priority: { type: String },
taskStatus: { type: String, default: "not started" },
createdAt: { type: String },
updatedAt: { type: String },
},
],
},
{ timestamps: true }
);
Authentication Model
import mongoose from "mongoose";
57
const TaskSchema = new mongoose.Schema(
{
taskName: { type: String, required: true, unique: true, default: null },
description: { type: String },
assignedUser: { type: String, required: true },
assignedBy: { type: String, required: true },
deadLine: { type: String, required: true },
priority: { type: String, required: true },
taskStatus: { type: String, default: "not started" },
},
{ timestamps: true }
);
router.post("/register", register);
router.post("/login", login);
router.post("/logout", logout);
58
import {
createTask,
deleteTask,
getTask,
getTasks,
updateTask,
} from "../collections/Task.js";
router.post("/createTask", createTask);
router.put("/updateTask/:id", updateTask);
router.delete("/deleteTask/:id", deleteTask);
router.get("/getTask/:id", getTask);
router.get("/getTasks", getTasks);
59
} from "../TokenVerification.js";
60