Django Task-manager Documentation

Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

Academic Internship Project report

On

TASK MANAGER WEBSITE USING DJANGO

In partial fulfilment of the requirements for the award of

BACHELOR OF TECHNOLOGY
in

Computer Science Engineering- AIML


A. SHARANYA (23E51A6605)
P. ARCHITHA REDDY (23E51A6609)
CH. VARSHA (23E51A6627)
K. RAKSHITHA (23E51A6654)
Under the guidance of

Mr. SHIVA KUMAR


Professor

HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT


Autonomous, Approved by AICTE, Accredited by NAAC, NBA.
Gowdavelly (Village), Medchal (Mandal), Medchal - Malkajgiri (Dist.), Hyderabad, TS- 501401.
2022–2023
HYDERABAD INSTITUTE OF TECHNOLOGY AND MANAGEMENT
(Affiliated to JNTUH, Approved by AICTE, Accredited by NAAC, NBA – TS 501401)

DEPARTMENT OF COMPUTER SCIENCE ENGINEERING

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.

Internal Guide Head of Department

Mr. Shiva Kumar Dr. Padmaja Pulicherla

Professor Professor & Head

Department of CSM, HITAM

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)

P. ARCHITHA REDDY (23E51A6609)

CH. VARSHA (23E51A6627)

K. RAKSHITHA (23E51A6654)

2
ABSTRACT

This Django-powered task management application is designed to optimize task organization,


boosting productivity and efficiency for individuals and teams. It features robust user
authentication and authorization mechanisms to ensure the security of sensitive information,
making it a reliable tool for professional and personal use. With a user-friendly interface,
users can easily create, edit, and delete tasks, enabling seamless task management and
reducing time spent on administrative activities. Additionally, timely reminders help users
stay on track and meet their deadlines effectively.

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

CONTENT PAGE NO.

ABSTRACT 3

LIST OF FIGURES 5

CHAPTER 1: INTRODUCTION (06-08)

1.1: Objective of the project 08

CHAPTER 2: HARDWARE & SOFTWARE REQUIREMENTS (09-10)

2.1: Hardware requirements 10


2.2: Software requirements 10

CHAPTER 3: DESIGN & METHODOLOGY (11-21)

3.1: Block diagram 14

3.2: Working 15

3.3: Code 16-19

3.4: Discussion 20

3.5: Conclusion 21

3.6: References 22

4
LIST OF FIGURES

FIGURE NO. NAME OF THE FIGURE PAGE NO.

Figure 3.1.i Block diagram of working of project. 14

Figure 3.1.ii Context diagram of working. 15

5
CHAPTER 1
INTRODUCTION

6
CHAPTER 1

1.1 INTRODUCTION

Task management is an integral part of personal and professional productivity in


today’s fast-paced world. People often struggle with keeping track of their daily
responsibilities, meeting deadlines, and prioritizing tasks. The need for an efficient,
user-friendly, and accessible system to manage tasks has become more critical than ever. A
well-designed To-Do List Application serves as a simple yet powerful solution to this
problem, enabling users to organize their activities effectively and stay productive.

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:

1. User Authentication: Provide secure login and registration functionalities, ensuring


tasks are private and user-specific.
2. Task Creation and Management: Allow users to create, update, and delete tasks with
titles, descriptions, and deadlines.
3. Search and Filter Tasks: Enable searching for specific tasks by their titles and filtering
tasks based on deadlines or completion status.
4. Deadline Reminders: Highlight tasks that are overdue or approaching their deadlines
within 24 hours.
5. Celebrate Completion: Congratulate users when all tasks are completed to motivate
consistent productivity.

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:

Processor : Intel i3 or higher


RAM : 4GB or higher
Hard Disk : Minimum 1GB free space
Network : Internet connectivity for testing and deploying the
application

Software Requirements:

Operating System : Windows 10 or later / Linux (Ubuntu preferred) / macOS 10.15 or later

Programming Language : Python 3.9 or later


Framework : Django 4.x
Database : SQLite (default Django database)
Browser : Google Chrome
IDE/Editor : Visual Studio Code (recommended)

10
CHAPTER 3
DESIGN AND
METHODOLOGY

11
CHAPTER 3

DESIGN AND METHODOLOGY


INTRODUCTION :

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.

We look at the design process from three distinct perspectives:

● Conceptual Design
● Logical Design
● Physical Design

INPUT DESIGN

Input design is the process of converting user-oriented input to a computer-based format. It is a


critical part of overall system design, which requires careful attention. Often, the collection of
input data is the most expensive part of the system. The main objectives of input design are:

1. Produce cost-effective methods of input


2. Achieve the highest possible level of accuracy
3. Ensure that the input is acceptable to and understood by the staff

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:

● End User Training


● Parallel Run and Transition to New System

End User Training:

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.

End User Education:


End-user education begins after implementation and testing are complete. If the system is difficult
to understand or complex, additional efforts will be made to educate the users, providing them
with lectures and necessary materials to familiarize them with the new system.

Training of Application Software:


After providing basic training in computer awareness, the users will be trained on the new system.
This training will cover aspects such as screen flows, screen design, types of help on the screen,
types of errors encountered when entering data, corresponding validation checks, and how to
correct data entered.

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.

Fig 3.1.i BLOCK DIAGRAM OF WORKING OF PROJECT.

14
Fig 3.1.ii CONTEXT DIAGRAM OF WORKING.

3.2 Working

The To-Do List Application follows a structured workflow:

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.

Models (Task Model):

The Task model is the core component of the backend.

code:

from django.db import models


from django.contrib.auth.models import User

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)

class TaskList(LoginRequiredMixin, ListView):

model = Task

context_object_name = 'tasks'

def get_context_data(self, **kwargs):

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

context['due_tasks'] = tasks.filter(deadline__lte=current_time, complete=False)

return context

Task CRUD Views

● CreateView: Allows users to add tasks.


● UpdateView: Edits existing tasks.
● DeleteView: Deletes tasks.

Templates

The frontend is styled with HTML,CSS and JS, incorporating dynamic elements like:

1. Congratulatory Popup

<div id="congrats-popup" style="display:none;">

17
<h2> 🎉 Congratulations! 🎉</h2>
<p>You have completed all your tasks!</p>

</div>

<script>

window.onload = function () {

if ({{ no_incomplete_tasks }}) {

document.getElementById('congrats-popup').style.display = 'block';

};

</script>

2. Task Reminders

{% if upcoming_tasks %}

<h3> 📅 Reminder: Tasks Due Soon</h3>


{% for task in upcoming_tasks %}

<p>{{ task.title }} - Due: {{ task.deadline|date:"M d, Y H:i" }}</p>

{% endfor %}

{% endif %}

3. Task List

Displays tasks categorized as complete, incomplete, overdue, or upcoming.

body {

background-color: #edcfc7;

color: #382A14;

font-family: 'Lilita One', sans-serif;

.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

You might also like