Django Task-manager Documentation
Django Task-manager Documentation
Django Task-manager Documentation
On
BACHELOR OF TECHNOLOGY
in
CERTIFICATE
This is to certify that the internship project work entitled “TASK MANAGER WEBSITE
USING DJANGO” is being submitted by SHARANYA, ARCHITHA, VARSHA,
RAKSHITHA bearing Roll No.23E151A6605, 23E51A6609, 23E51A6627, 23E51A6654,
21E51A6624 in partial fulfilment of the academic requirement, at Hyderabad Institute of
Technology and Management, Hyderabad is a record of bonafide work carried out by them under
our guidance. The matter contained in this document has not been submitted to any other
University or institute.
1
DECLARATION
We hereby declare that the internship project entitled “TASK MANAGER WEBSITE USING
DJANGO” submitted to Hyderabad Institute of Technology and Management affiliated to
Jawaharlal Nehru Technological University Hyderabad (JNTUH) as part of academic
requirement, is a result of original research work and done by us. It is further declared that the
internship project report or any part thereof has not been previously submitted to any other
university or institute.
A. SHARANYA (23E51A6605)
K. RAKSHITHA (23E51A6654)
2
ABSTRACT
The application goes beyond basic task management by offering advanced features such as
comprehensive progress tracking and task completion insights. Users can monitor their
progress with ease and collaborate effortlessly with team members, thanks to its built-in
collaboration capabilities. Powerful search and filtering tools allow for quick retrieval of
tasks, ensuring users can access what they need without hassle. These features make it an
efficient solution for both individual users and team-based workflows, promoting smooth
operations across projects.
Leveraging the robust and scalable Django framework, the application offers a feature-rich
and reliable platform that adapts to diverse user needs. With insightful reporting and
analytics, users can gain valuable insights into task performance and trends, enabling
informed decision-making and continuous improvement. This holistic approach to task
management positions the application as an indispensable tool, ensuring productivity and
efficiency remain at the forefront of any task or project.
3
LIST OF CONTENTS
ABSTRACT 3
LIST OF FIGURES 5
3.2: Working 15
3.4: Discussion 20
3.5: Conclusion 21
3.6: References 22
4
LIST OF FIGURES
5
CHAPTER 1
INTRODUCTION
6
CHAPTER 1
1.1 INTRODUCTION
The To-Do List Application is developed using Django, a high-level Python web framework
that promotes rapid development and clean, pragmatic design. The application is built to help
users manage their tasks by providing essential functionalities such as task creation, updates,
deletion, and deadline management. Additionally, the system incorporates advanced features
like reminders for overdue or upcoming tasks and an interactive congratulatory popup to
celebrate task completion.
The project aims to bridge the gap between simple paper-based task lists and overly complex
task management software. By leveraging Django’s robust capabilities, this application delivers
a scalable, secure, and intuitive interface for managing daily tasks efficiently. The integration of
a responsive design ensures accessibility across various devices, making it suitable for students,
professionals, and individuals alike.
7
1.1 Objective of the project
The primary objective of the To-Do List Application is to facilitate efficient task management
through the following functionalities:
This project also emphasizes scalability and user-friendliness, aiming to serve as a versatile
tool for both personal and professional task management.
8
CHAPTER 2
HARDWARE AND
SOFTWARE
REQUIREMENTS
9
CHAPTER 2
HARDWARE AND SOFTWARE REQUIREMENTS
Hardware Requirement:
Software Requirements:
Operating System : Windows 10 or later / Linux (Ubuntu preferred) / macOS 10.15 or later
10
CHAPTER 3
DESIGN AND
METHODOLOGY
11
CHAPTER 3
System design is a process through which requirements are translated into a representation of
software. Initially, the representation depicts a holistic view of software. Subsequent refinement
leads to a design representation that is very close to the source code. Design is a place where
quality is fostered in software development. Design provides us with a representation of software
that can be assessed for quality; this is the only way that can accurately translate customer
requirements into a finished software product or system. System design serves as the foundation
for all software engineering and software maintenance steps that follow.
● Conceptual Design
● Logical Design
● Physical Design
INPUT DESIGN
INPUT DATA:
The goal of designing input data is to make entry easy, logical, and as free from errors as possible.
The entering data entry operators need to know the allocated space for each field, the field
sequence, and how these must match with the source document. The format in which the data
fields are entered should be given in the input form. Here, data entry is online and makes use of
processors that accept commands and data from the operator through a keyboard. The input
required is analyzed by the processor and is either accepted or rejected.
12
Input stages include the following processes:
● Data Recording
● Data Transcription
● Data Conversion
● Data Verification
● Data Control
● Data Transmission
● Data Correction
One of the aims of the system analyst must be to select the data capture method and devices,
which reduce the number of stages, minimizing both the chances of errors and the cost. Input
types can be characterized as:
● External
● Internal
● Operational
● Computerized
● Interactive
Input files may exist in document form before being input into the computer. Input design is
complex since it involves procedures for capturing data as well as inputting it into the computer.
13
METHODOLOGY:
Implementation is the stage in the project where the theoretical design is turned into a working
system. The implementation phase constructs, installs, and operates the new system. The most
crucial stage in achieving a successful new system is ensuring that it works efficiently and
effectively.
Several activities are involved in the implementation of a new project. They are:
The successful implementation of the new system will depend heavily on the involvement of the
officers working in that department. These officers will be trained on the new technology and the
system's capabilities.
Post-Implementation View:
The department plans to evaluate the state of the past implementation process. Regular meetings
will be arranged by the concerned officers to address any implementation problems and assess
successes.
14
Fig 3.1.ii CONTEXT DIAGRAM OF WORKING.
3.2 Working
1. User Authentication:
○ Users can register, log in, or log out. Only authenticated users can access their
tasks.
2. Task Management:
○ Tasks are associated with individual users.
○ Each task has attributes like title, description, deadline, and completion status.
3. Search and Filters:
○ Users can search for tasks by keywords in their titles.
○ Tasks are categorized into overdue, upcoming, or incomplete lists.
4. Dynamic Features:
○ Overdue tasks are highlighted in red, while tasks due within 24 hours are
highlighted with reminders.
○ A congratulatory popup is displayed when all tasks are completed.
5. CRUD Operations:
○ Users can perform Create, Read, Update, and Delete operations on tasks
through interactive forms and buttons.
15
Code Implementation
This section provides an in-depth look at the implementation of models, views, templates,
and styling.
code:
class Task(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
title = models.CharField(max_length=200)
description = models.TextField(null=True, blank=True)
complete = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
deadline = models.DateTimeField(null=True, blank=True)
def __str__(self):
return self.title
class Meta:
ordering = ['complete', 'deadline']
Views:
The application employs class-based views (CBVs) for modularity and ease of use.
1. CustomLoginView
class CustomLoginView(LoginView):
template_name = 'base/login.html'
redirect_authenticated_user = True
16
def get_success_url(self):
return reverse_lazy('tasks')
2. TaskList (Homepage)
model = Task
context_object_name = 'tasks'
context = super().get_context_data(**kwargs)
current_time = datetime.now()
tasks = context['tasks'].filter(user=self.request.user)
context['count'] = tasks.filter(complete=False).count()
context['upcoming_tasks'] = tasks.filter(
deadline__gte=current_time,
deadline__lte=current_time + timedelta(days=1),
complete=False
return context
Templates
The frontend is styled with HTML,CSS and JS, incorporating dynamic elements like:
1. Congratulatory Popup
17
<h2> 🎉 Congratulations! 🎉</h2>
<p>You have completed all your tasks!</p>
</div>
<script>
window.onload = function () {
document.getElementById('congrats-popup').style.display = 'block';
};
</script>
2. Task Reminders
{% if upcoming_tasks %}
{% endfor %}
{% endif %}
3. Task List
body {
background-color: #edcfc7;
color: #382A14;
.task-wrapper {
display: flex;
18
justify-content: space-between;
padding: 10px;
background: #FFF;
margin-bottom: 5px;
.delete-link {
color: red;
font-weight: bold;
19
3.4 Discussion
The project successfully demonstrates the capabilities of Django for building robust web
applications. It ensures secure user authentication, efficient task management, and a
user-friendly interface.
● Strengths:
○ Personalized user experiences.
○ Interactive features like reminders and popups enhance usability.
○ Scalability for adding more features like task categories or priority levels.
● Limitations:
○ Currently lacks collaborative task sharing.
○ Requires manual deadline input instead of automated suggestion.
20
3.5 Conclusion
The Task Manager project simplifies task management by enabling users to create,
edit, delete, update, and search tasks with ease. Its user-friendly interface ensures smooth
navigation and efficient handling of tasks, making it an accessible tool for everyday use.
The project emphasizes effective data management to ensure seamless task organization.
Future updates aim to enhance functionality by introducing user authentication for
personalized task lists and integrating features like notifications, task prioritization, and
advanced sorting options.
These planned improvements will make the Task Manager more versatile, catering to diverse
user needs and elevating its effectiveness in managing tasks efficiently.
3.6 Reference
1) https://www.techinsight.com/task-management
2) https://www.codeacademy.com/django-task-manager.
3) https://www.techradar.com/task-manager-apps-best-practices.
4) https://www.webdevweekly.com/django-react-task-manager.
5) https://www.digitalocean.com/tutorials/task-manager-django.
6) https://www.productivityhacks.com/task-management-systems.
7) https://www.pmjournal.com/task-management-agile.
8) https://www.uxdesignweekly.com/user-friendly-task-manager.
9) https://www.fullstackdeveloperblog.com/django-vue-task-manager.
10) https://www.techstrategies.com/task-management-tools.
21
28
22