Project Overview
Project Overview
System Architecture
Core Components
Authentication System
Implements secure user registration and login with password hashing and
session management.
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
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
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
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
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: