0% found this document useful (0 votes)
13 views4 pages

Project Overview

The document outlines the development of a console-based Python Task Manager with User Authentication, designed for multiuser task management with secure authentication and persistent data storage. It details the system architecture, user authentication processes, task management features, and security implementations, emphasizing usability and reliability. The project meets all requirements and serves as a robust example of software engineering principles and Python programming concepts.

Uploaded by

Syed Tabrez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views4 pages

Project Overview

The document outlines the development of a console-based Python Task Manager with User Authentication, designed for multiuser task management with secure authentication and persistent data storage. It details the system architecture, user authentication processes, task management features, and security implementations, emphasizing usability and reliability. The project meets all requirements and serves as a robust example of software engineering principles and Python programming concepts.

Uploaded by

Syed Tabrez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Project Overview

This document provides a comprehensive overview of the Task Manager with


User Authentication system implemented as a course end project. The
application is a console-based Python program that allows multiple users
to manage their personal task lists with secure authentication and
persistent data storage.

Problem Statement Analysis


The project addresses the modern need for individuals to track and manage
tasks in a structured manner. The system requirements included:

1. Multiuser support with secure authentication


2. Personal task management capabilities
3. Persistent data storage using file handling
4. Interactive menu driven interface
5. Data isolation between users

System Architecture

Core Components

Task Manager Class


The main application class that encapsulates all functionality including
user management, task operations, and file handling.

Data Storage Layer


users.json: Stores user credentials with hashed passwords
tasks.json: Stores all user tasks with proper user isolation

Authentication System
Implements secure user registration and login with password hashing and
session management.

Task Management Engine


Provides full CRUD (Create, Read, Update, Delete) operations for task
management.
Implementation Details

User Authentication System

Registration Process:
1. Username uniqueness validation
2. Password strength requirements (minimum 4 characters)
3. Password confirmation mechanism
4. SHA256 password hashing for security
5. Automatic user task list initialization

Login Process:
1. Credential validation against stored data
2. Maximum 3 login attempts for security
3. Session management with current user tracking
4. Secure password input using getpass module

Task Management Features

Add Task:
1. User friendly task description input
2. Automatic unique ID generation
3. Default "Pending" status assignment
4. Timestamp recording for creation time
5. Immediate confirmation feedback

View Tasks:
1. Formatted table display with headers
2. Complete task information (ID, description, status, creation date)
3. Task statistics (total, pending, completed counts)
4. Empty state handling with appropriate messages

Mark Task as Completed:


1. Display of only pending tasks for selection
2. Task ID validation and error handling
3. Status update with completion timestamp
4. Prevention of duplicate completion marking
5. Success confirmation with task description

Delete Task:
1. Display of all tasks for selection
2. Task ID validation with numeric input checking
3. Permanent task removal from user's list
4. Confirmation of successful deletion
5. Graceful handling of nonexistent task IDs

File Operations:
1. Automatic file creation if nonexistent
2. JSON encoding/decoding with error handling
3. Data integrity validation
4. Atomic write operations to prevent corruption

User Interface Design

Menu System:
The application features a dual menu system:

Authentication Menu:
 Login option for existing users
 Registration option for new users
 Exit option to terminate application

Main Task Menu:


 Add a Task
 View Tasks
 Mark a Task as Completed
 Delete a Task
 Logout

User Experience Features:


1. Clear section headers with visual separators
2. Consistent input prompts and validation
3. Comprehensive error messages
4. Success confirmations for all operations
5. Keyboard interrupt handling (Ctrl+C)

Security Implementation

1. Password Security
2. SHA256 cryptographic hashing
3. No plain text password storage
4. Hidden password input during authentication
5. Password confirmation during registration

Data Security
1. User data isolation in JSON structure
2. Session based access control
3. Input validation and sanitization
4. Protection against common input attacks

Access Control
1. User authentication required for all task operations
2. Session management with automatic logout
3. User specific data access only
4. Protection against unauthorized data access
Conclusion
The Task Manager with User Authentication system successfully fulfills all
project requirements while implementing robust security measures and user-
friendly features. The application demonstrates solid software engineering
principles including:

1. Modularity: Well-structured class-based design


2. Security: Proper password hashing and access control
3. Usability: Intuitive menu system and clear feedback
4. Reliability: Comprehensive error handling and validation
5. Maintainability: Clean code structure and documentation

The implementation provides a solid foundation for future enhancements and


serves as an excellent example of a complete console-based application
with persistent data storage and multiuser support.

This implementation demonstrates a complete understanding of the project


requirements and showcases practical application of Python programming
concepts including object-oriented programming, file handling, data
structures, and user interface design.

You might also like