0% found this document useful (0 votes)
37 views

PWP Project

The document describes a microproject on developing a To-Do list application in Python. It discusses the rationale, aims, course outcomes achieved, literature review, and methodology followed for the project. The project aims to reinforce programming concepts, develop problem-solving skills, and enhance understanding of data structures through a practical application.

Uploaded by

Arman Shaikh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views

PWP Project

The document describes a microproject on developing a To-Do list application in Python. It discusses the rationale, aims, course outcomes achieved, literature review, and methodology followed for the project. The project aims to reinforce programming concepts, develop problem-solving skills, and enhance understanding of data structures through a practical application.

Uploaded by

Arman Shaikh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

MAHARASHTRA STATE BOARD OF TECHNICAL

EDUCATION,MUMBAI

GOVERNMENT POLYTECHNIC,BEED
[Institute Code:0032 ]

MICROPROJECT

Course & Code: PWP (22616)


1. Title of Micro project: To–Do-List

Subject Teacher Head of Department Principal


Mr.S.B Veer Mr.WaghmarA.K Dr.M.R.Lohokare

Seal of
institute

1
MAHARASHTRA STATE BOARD OF TECHNICAL
EDUCATION,MUMBAI

CERTIFICATE OF MICROPROJECT

This is to certify that following students of CM6I (Division-A/B) of


Diploma in COMPUTER ENGINEERING of the institute GOVERNMENT
POLYTECHNIC,BEED, Institute code:0032, have satisfactorily completed
MICROPROJECT work in Operating System for academic year 2023-24 as
prescribed in the curriculum.

Roll Exam Seat


Name of Student Title of Microproject
No. No.

Arman Amin Shaikh To–Do-List .


347 385000

Place:Beed Date:- / /2024

Subject Teacher Headof Department Principal


Mr.S.B Veer Waghmare.A.K M.R.Lohokare

Seal of
Institute

2
Teacher Evaluation Sheet
Name of Student: Arman Amin Shaikh Enrollment No. 2100320115
Programme: Computer Technology Semester:cm6i
Course Title & Code: PWP (22616) Roll no:347

2. Title of the Micro-Project: To–Do-List


Evaluation as per Suggested Rubric for Assessment of Micro Project

Sr
. Characteristic to be Poor Average Good
Excellent
( Marks 9- 10
N assessed ( Marks 1 - 3 ) ( Marks 4 - 5 ) ( Marks 6 - 8 )
)
o.
[A] Process and Product Assessment (Convert total marks out of 06)
1 Relevance to the course
Literature
2 Review/information
collection
3
Completion of the Target
as per project proposal
4
Analysis and data
representation
5
Quality of
Prototype/Model
6 Report Preparation
Total Marks Out of (6)
[B] Individual Presentation/Viva (Convert total marks out of 04)
1 Presentation
2 Viva
Total Marks Out of (4)
Micro-Project Evaluation Sheet
Process and Product Assessment Total
(6 marks) Individual Presentation/Viva Marks
(Note: The total marks taken from the above Rubrics (4 marks) 10
is to be converted in proportion of ‘6’ marks)

Name and designation of the Teacher Mr.S.B VEER (Lecturer in CM)

Dated Signature………………………………………………………………………

3
Annexure – II

Part – B Micro-Project Report


(Outcomes after Execution) Format for Micro-Project Report (Minimum 6 pages)

Title of Micro-Project: Study of Indian Dispute Act and Minimum wages


Act

1.0 Rationale
1. Legal Compliance and Governance: Understanding these acts is crucial for businesses
Real-world Application: To-Do Lists are widely used tools for managing tasks and
organizing daily activities. By creating a To-Do List application, you're building
something that has direct practical relevance to people's lives. This makes the project
engaging and meaningful.
2. Understanding Data Structures: Developing a To-Do List involves working with
fundamental data structures such as lists, dictionaries, or custom classes. This project
provides an opportunity to deepen your understanding of how these data structures
work and how they can be manipulated to store and manage information effectively.
3. User Interaction: Implementing user interfaces, whether it's a command-line interface
or a graphical one, is an essential aspect of software development. Building a To-Do
List project allows you to practice handling user input, displaying information, and
providing a seamless user experience.
.

1.1 Aims/Benefits of the Micro-Project


1. Understanding Basic Programming Concepts: Developing a To-Do List requires
understanding fundamental programming concepts such as variables, data types,
control structures (loops and conditionals), functions, and user input/output. By
working on this project, you reinforce your understanding of these concepts in a
practical context.
2. Working with Data Structures: To manage tasks in a To-Do List, you'll utilize data
structures such as lists or dictionaries. This project helps you become comfortable with
manipulating these data structures, including adding, removing, and updating tasks
efficiently.
3. Enhancing Problem-Solving Skills: Implementing the various functionalities of a To-
Do List involves breaking down complex problems into smaller, manageable tasks.
You'll develop problem-solving skills by tackling challenges such as handling user
input, error checking, and managing task data effectively.
4. Practicing Modular Programming: Organizing your code into functions allows for
modular programming, which promotes code reusability, readability, and
maintainability. Building a To-Do List project encourages you to structure your code in
a modular fashion, making it easier to add new features or refactor existing ones.
4
3.0 Course Outcomes Achieved
1. Programming Proficiency: Students will demonstrate proficiency in Python
programming language, including its syntax, data structures, control flow, and
functions.
2. Problem-solving Skills: Students will develop problem-solving skills by breaking
down complex tasks into smaller, manageable components and implementing
solutions effectively.
3. Data Structures and Algorithms: Students will understand and apply fundamental
data structures such as lists, dictionaries, and possibly queues or stacks, depending on
the project's complexity.
.
4.0 Literature Review
1. Existing To-Do List Applications: Reviewing the existing To-Do List applications
developed in Python could provide insights into different approaches, features, and
user interfaces implemented by developers. This could include both command-line and
graphical user interface applications.
2. Python Libraries and Frameworks: Exploring Python libraries and frameworks
commonly used for developing To-Do List applications can offer valuable information.
This might include libraries for building command-line interfaces like Click or argparse,
as well as GUI frameworks like Tkinter, PyQt, or Kivy.
3. User Experience and Design Principles: Investigating user experience (UX) and
design principles relevant to To-Do List applications can provide guidance on creating
interfaces that are intuitive, efficient, and aesthetically pleasing. This could involve
concepts such as information architecture, task prioritization, and visual hierarchy.
4. Data Structures and Algorithms: Reviewing literature on data structures and
algorithms relevant to managing tasks in a To-Do List application can deepen
understanding and inform decisions on how to organize and manipulate task data
efficiently. This might include discussions on lists, dictionaries, queues, stacks, sorting
algorithms, etc.
5.0 Actual Methodology Followed.

1. Requirement Analysis: Understand the project requirements and define the features
and functionalities expected from the To-Do List application. This includes determining
basic operations like adding tasks, removing tasks, marking tasks as completed,
displaying tasks, and optionally saving tasks to a file.
2. Design: Design the architecture and user interface of the application. Decide whether
to implement a command-line interface (CLI), a graphical user interface (GUI), or a
web-based interface. Define the data structures and algorithms needed to manage
tasks effectively.

5
3. Implementation: Write the code to implement the planned features and
functionalities. This involves creating functions or methods to handle various
operations like adding, removing, and displaying tasks. Depending on the chosen
interface, this could involve using libraries like Tkinter for GUI or argparse for CLI.
4. Testing: Test the application thoroughly to ensure that it works as expected and
handles various scenarios correctly. This includes testing different input cases, error
handling, edge cases, and usability aspects. Automated testing frameworks like unittest
or pytest can be used for unit testing.
5. Refinement and Iteration: Refine the application based on feedback and testing
results. Address any issues or bugs discovered during testing, and consider adding
additional features or improvements based on user feedback or personal goals.
6. Documentation: Document the code, including comments and docstrings, to make it
understandable and maintainable. Write user documentation or README files to
provide instructions on how to use the application, including installation and usage
guidelines.
7. Version Control and Collaboration (Optional): Use version control systems like Git to
manage the codebase and collaborate with team members if working in a team
environment. This involves committing changes, branching, merging, and resolving
conflicts.
8. Deployment (Optional): If applicable, deploy the To-Do List application for use by
others. This could involve packaging the application for distribution, creating installers,
or hosting it on a web server.

6
Microproject

Program
import sqlite3 import datetime class
ToDoList: def __init__(self):
self.conn = sqlite3.connect('todo.db')
self.cursor = self.conn.cursor()
self.create_table() def
create_table(self):
self.cursor.execute('''CREATE TABLE IF NOT EXISTS tasks
(id INTEGER PRIMARY KEY AUTOINCREMENT, date
TEXT, title TEXT, task TEXT)''') self.conn.commit() def
add_task(self, date, title, task):
self.cursor.execute("INSERT INTO tasks (date, title, task) VALUES (?, ?, ?)", (date, title,
task))
self.conn.commit() print("Task
added successfully.") def
get_all_tasks(self):
self.cursor.execute("SELECT * FROM tasks")
rows = self.cursor.fetchall() for row in rows: print("Task: {}\nDate: {}\nTitle:
{}\nTask: {}\n".format(row[0], row[1], row[2], row[3])) def delete_task(self,
task_id):
self.cursor.execute("DELETE FROM tasks WHERE id=?", (task_id,))
self.conn.commit() print("Task deleted successfully.") def
close_connection(self):
self.conn.close() def
validate_date(date_str):
try:
datetime.datetime.strptime(date_str, '%Y-%m-%d')
return True except ValueError: return False def
validate_input(text): if len(text.strip()) == 0:
print("Error: Input cannot be
empty.") return False return True
def main():
todo = ToDoList()
while True:
print("press 1. TO CREATE A TASK ")
print("press 2. TO VIEW LIST OF ALL
TASK") print("press 3. TO DELETE A
TASK ") print("press 4. TO Exit FROM
MENU ") choice = input("\nEnter your
choice(1/2/3/4): ") if choice == '1':
date = input("Enter date (YYYY-MM-DD):
") if not validate_date(date):
print("Error: Invalid date format. Use YYYY-MM-DD. Example:(2022-12-
06) ") continue title = input("Enter Task title: ") if not validate_input(title):
continue task = input("Enter Task: ") if not validate_input(task): continue
todo.add_task(date, title, task) elif choice == '2': print("----- All Tasks -----")
todo.get_all_tasks() elif choice == '3':
task_id = input("Enter Task Number To
Delete: ") if not validate_input(task_id):
continue todo.delete_task(task_id) elif choice
== '4':
break
else:
print("Invalid choice. Try
again(1/2/3/4).")
todo.close_connection() if __name__
== '__main__': main()

8
Output:

9
lO M oARcPS D| 32921466

INTRODUCTION:

A to-do list is a simple prioritized list of the tasks a person must complete. People

make a list of everything they need to do, ranked according to priority from the most

critical task at the top to the least critical task at the bottom A few of the features of

a good to-do list application include:

• Plan and execute simple actions.


• Prioritize, manage, and reason about tasks.
• Record notes, action items and ideas.

To-dos are the tasks or the atomic entities that make up a to-do list. To-dos are made
quickly, the bulk of them do not specify the work; instead, they are typically just
comprehensive enough to serve as a valuable indicator. To be sure, to-do terminology
like "Groceries" or "Car Wash" is frequently grammatically correct. Because the signal
is so quick, it is only useful for a short period of time while the task is remembered. In
certain cases, a simple item like a stack is enough to recall the job without the need
for a note.

There are clear immediate implications to adding a to-do list to a person’s productivity
system. The functionalities provided by a good to-do list application/system help
declutter the user’s mind as their pending tasks are recorded safely and they won’t
be forgotten.

The To-do list project is a user-friendly website which helps them to keep a track of

their tasks. It is a simple site which requires no sign-in/log-in or any personal details

but still records your task, mark the completed tasks, and stores them even if you visit

the site after a few days.


lO M oARcPS D| 32921466

Traditionally, they’re written on a piece of paper or post it notes and acts as a memory

aid. As technology has evolved, we have been able to create a to-do lists with excel

spreadsheets, word documents, to-do list apps, Microsoft to do and google to do list

to name a few. You can use to do list in your home and personal life, or in the

workplace.

The Benefits of Using a To Do List

1. Improves your memory: A to do list acts as an external memory aid. It’s only

possible to hold a few pieces of information at one time. Keep a to do list and

you’ll be able to keep track of everything, rather than just a few of the tasks you

need to do. Your to do list will also reinforce the information, which makes it

less likely you’re going to forget something.

2. Increases productivity: A to do list allows you to prioritize the tasks that are

more important. This means you don’t waste time on tasks that don’t require

your immediate attention. Your list will help you stay focused on the tasks that

are the most important.

3. Helps with motivation: To do lists are a great motivational tool because you

can use them to clarify your goals. You can divide your long-term goal into
lO M oARcPS D| 32921466

smaller, more achievable short-term goals and as you tick each one off your list,

your confidence will increase.

TASK MANAGEMENT

From an articulation standpoint, task management entails more than just organizing
virtual and physical collections and scheduling activities.

Recent research has begun to address the problem of generic task management in the
context of email. This development is hardly surprising, given that many digital device
users are overloaded by the number of chores done through email. According to this
research, any successful productivity tool must be tightly connected with email
functionalities. Recent researches looked at task management strategies more
generally because email and related technologies are unlikely to be the whole picture.

To-do List as a solution to task management

The concept of to-do list has existed for a very long time and it is one of the primary
methods for management of tasks, use of a to-dos as a reminder system, to-dos as a
system for note management, etc. In the simplest and most primitive form, a to-do
list can be implemented on a pen and paper as a checklist of items which can be
crossed of or ticked against when completed.

This can be further extended to calendars, by writing tasks against dates where the
dates can also act as deadlines for particular tasks. Other possible extensions of to-do
lists can be on whiteboards, journals, text editors,etc.

The functionalities of to-do lists naturally evolve to perfectly fit web applications and
applications on digital devices. Equipped with modern tools and technologies,
lO M oARcPS D| 32921466

engineers can build an application to create a minimal and powerful application that
can help boost productivity without loss of focus and attention.
With the computing power and persistence of modern devices and databases, losing
track of tasks will not be a problem people will have to face anymore and they can
rest assured, only focused on the tasks they will have to accomplish as with modern
technology and the power of digital devices, integration will be seamless and tasks
can be synced across multiple devices all at once, without any hassle.

Essential Functionalities:

• A variety of methods for examining and managing to-dos that go beyond lists
and mirror the advantages of current resources.

• The inconvenient property, such as when it becomes the default spot for
everyday tasks where reminders can be satisfied.

• Immediately turns on, allowing for quick input and clear view. Conventional
to-do lists are commonly abandoned due to slow, time-consuming input and
weak output.

• No formal job description, classification, or decomposition is required from


users, and any degree of abstraction for atomic task entries must be
permitted.

• A mechanism for dealing with stale, low-priority to-dos that are becoming less
likely to be performed but have not been explicitly deleted.
lO M oARcPS D| 32921466

GANTT CHART

Name of the task Start date End date Duration

Adding functionality to prototype 03/08/2022 03/14/2022 6


Initiating development 03/15/2022 03/20/2022 5
Finalizing design 03/21/2022 03/24/2022 3
Developing prototype 03/25/2022 03/28/2022 3
Testing functionality 03/29/2022 03/31/2022 2
Implementing the solution 04/01/2022 04/06/2022 4
Initiating integration of modules 04/07/2022 04/12/2022 5
Finalizing essential
functionalities 04/13/2022 04/20/2022 7
Planning addon functionalities 04/21/2022 04/26/2022 5
Implementing addon
Functionalities 04/27/2022 04/30/2022 3
testing of the project 05/01/2022 05/06/2022 5
implement improvements and
debugging 05/07/2022 05/10/2022 3

Table 1.1
TART DATE AND DUR
As discussed earlier, productivity and task management entails more than just
organizing virtual and physical collections and scheduling activities.

Recent research has begun to address the problem of generic task management in the
context of email. This development is hardly surprising, given that many digital device
users are overloaded by the number of chores done through email. According to this
research, any successful productivity tool must be tightly connected with email
functionalities. Recent researches looked at task management strategies more
lO M oARcPS D| 32921466

generally because email and related technologies are unlikely to be the whole picture.
Evolution of to-do list
The idea of plan for the day has existed for quite a while and it is one of the essential
techniques for the board of assignments, utilization of a tasks as an update
framework, tasks as a framework for note the executives, and so on. In the least
difficult and most crude structure, a plan for the day can be executed on a pen and
paper as an agenda of things which can be crossed of or ticked against when finished.

This can be additionally reached out to schedules, by composing undertakings against


dates where the dates can likewise go about as cutoff times for specific assignments.
Other potential augmentations of plans for the day can be on whiteboards, diaries,
text editors,etc.

The functionalities of plans for the day normally develop to fit web applications and
applications on advanced gadgets flawlessly. Furnished with current apparatuses and
advancements, specialists can fabricate an application to make a negligible and strong
application that can assist with supporting efficiency without loss of concentration
and consideration.

With the processing power and steadiness of current gadgets and data sets, forgetting
about assignments won't be an issue individuals should confront any longer and they
can have confidence, just centered around the errands they should achieve similarly
as with present day innovation and the force of advanced gadgets, combination will
be consistent and undertakings can be adjusted across different gadgets at the same
time, with next to no problem.
lO M oARcPS D| 32921466

Essential Functionalities

1. An assortment of strategies for analyzing and figuring out how tasks that go
past records and mirror the upsides of current assets.

2. The awkward property, for example, when it turns into the default spot for
ordinary errands where updates can be fulfilled.

3. Promptly turns on, taking into consideration fast information and clear view.
Regular plans for the day are ordinarily deserted because of slow, tedious
information and frail result.

4. No conventional set of working responsibilities, order, or deterioration is


expected from clients, and any level of reflection for nuclear errand sections
should be allowed.

5. An instrument for managing old, low-need tasks that are turning out to be less
inclined to be performed yet have not been expressly erased.

Integration with other technologies

A To-do list is a simple and somewhat independent entity, which makes it easy to
integrate with related technologies to help create a better system of productivity
overall.
Various studies have pointed towards and shed light on how well e-mail as a
technology can be seamlessly integrated with to-do list technologies and the synergy
of these two technologies help boost productivity greatly as e-mail and social media
have now become an essential technology that people need to have access to in order
lO M oARcPS D| 32921466

to be a productive member of any organization or institution as these have now


become an essential part of everyday life.

Collaborative task management is also one of the problems that can be solved through
a well designed and engineered to-do list application such as Trello, a web based,
Kanban-style list application which helps teams organize their tasks and stay in sync
when working collaboratively on a project.

Another example of a well integrated to-do list application is Google Tasks, a to-do list
application which is completely synchronized with other Google and third party
services such as Google Calendar, Mail, Clock, etc. Such well integrated applications
help build a highly effective productivity system for a user.

Gamification

Gamification is the process of adding game elements into non-game environments


such as a website, productivity systems, or corporate intranet. Gamification
encourages consumers, employees, and partners to collaborate, contribute, and
interact by including them in games.

As shown by studies in Kappen, adding an element of gratification through


gamification boosts engagement of users to platforms, even when it comes to
productivity.

2.2PROBLEM DEFINITION

2.2.1 INTRODUCTION

The current state of task management through currently available to-do list
applications is a hotch-potch, to say the least. The highly available and most
used to-do list applications are heavily bloated and provide unnecessary
levels of integrations which are usually not required and clutter a user’s
productivity system.

A lot of good to-do list applications are not free to use and usually run ads
to generate revenue, which is a huge negative point when it comes to
productivity apps. Ones which are run by large companies are usually
trying to pull users towards their own app ecosystem through non-sensical
integrations and bloatware.

Some of the most glaring issues of to-do list productivity applications are
discussed in this chapter as we try to identify the problems and
shortcomings of currently available solutions and build our project to
overcome those shortcomings.

UNNECESSARY INTEGRATIONS

For most of the to-do list applications available to use, they are not
independent entities or applications. Most of these applications are
usually meant to be used with other applications to form a “productivity
system” where a user’s calendar, clock, mail, notifications, etc. are all
linked to their to-do list. While this may be desirable to most people and
may work to improve productivity for some, it is very often more
distracting than useful and over-integration of applications often leads to
sensory overload and overwhelming frustration.

Integrations are very often counter-productive and there should exist


solutions that are absolutely independent entities, free of all clutter and
meant to fulfill a simple and minimal purpose. Unfortunately, not many
solutions like this exist currently. PRODUCTIVITY APPS AS PAID SERVICES

Ironically, most good to-do list applications are not free-to-use and almost
always have some in-app purchase or subscription model to generate
revenue.

While it is understandable that capital is required to maintain and provide


some services to users, a lot of those services are not necessary to most
users, who are generally students, and yet they have to pay for it.

This is one of the prominent problems with to-do list applications as very
often all people need is a simple app to take notes and record tasks
without paying for it and that is all a good to-do list application needs to
offer, a simple and minimal application to serve the mentioned
functionalities to the user.

Most of any productivity application’s user base is composed of students


and they are usually the type of users with the least funds to expend, so
having a minimal to-do list application can help the student demographic
greatly.

RUNNING ADVERTISEMENTS TO GENERATE REVENUE

Although less prominent, it is not rare to see productivity applications


running advertisements to generate revenue. Ads are the biggest
distractions and a bane to productivity so although the developers can
earn through ads, it is a bane to the users and very often they don’t have
CONCEPT GENERATION

In order to do manage tasks, the concept of to-do lists was formulated to provide
a simple, hassle-free solution to the problem of taking short notes and recording
the daily tasks that a person needs to complete. We extend this concept and
implement it using modern tools and technologies.

EVALUATION & SELECTION OF SPECIFICATIONS/FEATURES


This project is divided into three main components : the frontend, backend and
database. The frontend is the medium through which the user can interact with
the application and utilize the necessary functionalities of the application. The
backend is a two-way bridge between the database and the frontend. It ensures
security, transfer and integrity of data that flows from the database to the
frontend of the application. The database is basically a store of all the
information a user wishes to persistently store. It is responsible for storage,
persistence, integrity and retrieval of data. The technologies used for the
implementation of this project are : ReactJS for frontend, Node.js for backend
and MongoDB for database as the primary focus of this project is simplicity.
DESIGN CONSTRAINTS

3.3.1 ECONOMIC
To-do list is free to use. However, damage to a device’s software and/or hardware due
to improper modification of this application is always a possibility.

3.3.2 ENVIRONMENTAL
The use of To-do list does not generate any environmental concerns. The possible
causes of any problems may be from the hardware not being disposed properly which
would lead to e-waste generation.
3.3.3 HEALTH
There are no health constraints. The only issues and problems that may arise might be
due to the devices and hardware that the user uses. In case of any such situation or in
the event of any problem or emergency in which the user feels biological discomfort,
it is suggested to immediately seek professional medical assistance.

3.3.4 MANUFACTURABILITY

As To-do list is digital software, there seem to be less issues with manufacturability.

3.3.5 SAFETY
To-do list it does not guarantee the physical safety of users. In case of intimidation or
underhanded malicious extortions, it is advised to seek police aid.

3.3.6 PROFESSIONAL
With the constant development in new technologies revolving around to-do list
applications, new professional services are required to be developed as well. However,
these will heavily depend on the regulations from the government.

PROFESSIONAL, ETHICAL, SOCIAL & POLITICAL


ISSUES CONSIDERED IN DESIGN

There are no professional, ethical, social or political issues revolving


around the design of our to-do list application.

ANALYSIS AND FEATURE FINALIZATION SUBJECT TO


CONSTRAINTS

The features of the to-do list applications include :

1. Viewing all the tasks in a user’s to-do list


2. Marking a task as completed, changing its priority to 0
3. Tasks are ordered by priority of importance
4. Deletion of tasks
5. Attributing due dates to tasks
6. Tasks are highlighted when they are close to due or
overdue
7. Adding tasks to a user’s to-do list

DESIGN FLOW

Final Design :

Fig 3.1 Entity-Relationship Diagram


Fig 3.2 Data flow diagram
Alternative designs:

• One possible alteration to the design of the project is to add location-


based task tracking to remind a user to complete a task triggered by the
location of the user. This design was not chosen for the project because
location services consume significantly more resources and thus it would
render the application inefficient for mobile devices.
BEST DESIGN SELECTION

The final design chosen for the implementation of this project was to
divide it into three main components: the frontend, backend and database. The
frontend is the medium through which the user can interact with the application
and utilize the necessary functionalities of the application. The backend is a two-
way bridge between the database and the frontend. It ensures security, transfer
and integrity of data that flows from the database to the frontend of the
application. The database is basically a store of all the information a user wishes
to persistently store. It is responsible for storage, persistence, integrity and
retrieval of data. The technologies used for the implementation of this project
are : ReactJS for frontend, Node.js for backend and MongoDB for database as
the primary focus of this project is simplicity.
The main functionalities that were added to this project are:

1. Viewing all the tasks in a user’s to-do list


2. Marking a task as completed, changing its priority to 0
3. Tasks are ordered by priority of importance
4. Deletion of tasks
5. Attributing due dates to tasks
6. Tasks are highlighted when they are close to due or
overdue
IMPLEMENTATION PLAN\

The implementation plan and timeline shown through a Gantt chart:

Name of the task Start date End date Duration

Project kick off 2/14/2022 2/15/2022 1


initial design 2/16/2022 2/20/2022 4
making of prototype 2/21/2022 2/28/2022 7
Research 03/01/2022 03/07/2022 6
Adding functionality to prototype 03/08/2022 03/14/2022 6
Initiating development 03/15/2022 03/20/2022 5
Finalizing design 03/21/2022 03/24/2022 3
Developing prototype 03/25/2022 03/28/2022 3
Testing functionality 03/29/2022 03/31/2022 2
Implementing the solution 04/01/2022 04/06/2022 4
Initiating integration of modules 04/07/2022 04/12/2022 5
functionalities 04/13/2022 04/20/2022 7
Planning addon functionalities 04/21/2022 04/26/2022 5

Table 3.1
Fig 3.3 Gantt Chart
RESULT ANALYSIS AND VALIDATION

The technologies that are used to implement this project are:

ReactJS:
React (also known as React.js or ReactJS) is a free and opensource
front-end JavaScript library for building user interfaces based on
UI components. It is maintained by Meta (formerly Facebook) and
a community of individual developers and companies. React can
be used as a base in the development of single-page, mobile, or
server-rendered applications with frameworks like Next.js.
However, React is only concerned with state management and
rendering that state to the DOM, so creating React applications
usually requires the use of additional libraries for routing, as well
as certain client-side functionality.
We chose React as the framework for the frontend of the
application because it is simple to implement and work with and
the to-do list app can be elegantly designed as a single page
application(SPA).
Node.js:
Node.js is an open-source, cross-platform, back-end JavaScript
runtime environment that runs on the V8 engine and executes
JavaScript code outside a web browser. Node.js lets developers use
JavaScript to write command line tools and for server-side
scripting—running scripts serverside to produce dynamic web page
content before the page is sent to the user's web browser.
Consequently, Node.js represents a "JavaScript everywhere"
paradigm, unifying web-application development around a single
programming language, rather than different languages for
serverside and client-side scripts.

MongoDB
MongoDB a source-available cross-platform document-oriented
database program. Classified as a NoSQL database program,
MongoDB uses JSON-like documents with optional schemas.
MongoDB is developed by MongoDB Inc. and licensed under the
Server Side Public License (SSPL).
MongoDB has great compatibility with Node.js and the Mongoose
library provides great integration between the server and database
in Node.js which makes it very convenient to access and modify the
database, which is a great advantage especially for small scale
projects.
Git version control system
Git is a software for tracking changes in any set of files, usually used
for coordinating work among programmers collaboratively
developing source code during software development. Its goals
include speed, data integrity, and support for distributed, non-
linear workflows (thousands of parallel branches running on
different systems).

Use-case diagram
Conclusion:-
In conclusion, developing a To-Do List application in Python involves a structured methodology
encompassing requirement analysis, design, implementation, testing, refinement, documentation,
and optional steps like version control, deployment, and maintenance. Through this process,
developers gain practical experience in software development, reinforcing their understanding of
programming concepts, data structures, user interface design, and project management. By
following best practices and leveraging Python's versatility and rich ecosystem of libraries,
developers can create robust and user-friendly To-Do List applications tailored to various
platforms and user preferences. This project serves as an effective learning tool, providing hands-
on experience and tangible results that showcase the developer's skills and creativity. Ultimately,
the To-Do List project in Python not only helps developers enhance their technical abilities but
also enables them to build solutions that address real-world needs and challenges.

Thank You….

You might also like