-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFinal Desktop Password Generator {App architecture}
More file actions
88 lines (88 loc) · 4.9 KB
/
Final Desktop Password Generator {App architecture}
File metadata and controls
88 lines (88 loc) · 4.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
┌────────────────────────────────┐
│ START APPLICATION │
└───────────────┬────────────────┘
│
▼
┌───────────────────────────┐
│ Initialize CTk Window │
│ • Dark theme │
│ • Set fonts │
│ • Window size │
└──────────────┬────────────┘
│
▼
┌─────────────────────────┐
│ Build Main UI │
│ • Title │
│ • Length slider │
│ • Checkboxes (options) │
│ • Output box │
│ • Buttons │
│ • History button │
└─────────────┬───────────┘
│
▼
┌──────────────────────────┐
│ User Clicks "Generate" │
└──────────────┬───────────┘
│
▼
┌─────────────────────────────────┐
│ generate_password() │
│ • Build character pool │
│ • Apply options (upper, lower) │
│ • Remove ambiguous if selected │
│ • Randomly choose characters │
│ • Return final password │
└─────────────────┬──────────────┘
│
▼
┌──────────────────────────┐
│ Display Password in UI │
└─────────────┬────────────┘
│
├─────────────► User copies password
│ (clipboard function)
│
▼
┌──────────────────────────┐
│ User Clicks "Save" │
└──────────────┬───────────┘
│
▼
┌─────────────────────────────────┐
│ Save Popup Window │
│ User enters label │
│ save_password() writes to CSV │
└───────────────────┬────────────┘
│
▼
┌─────────────────────────────┐
│ CSV Updated (timestamp + │
│ label + password) │
└─────────────────┬──────────┘
│
▼
┌──────────────────────────┐
│ User Clicks "View History"
└──────────────┬───────────┘
│
▼
┌───────────────────────────────────┐
│ Build History Window (CTkToplevel)│
│ Load CSV │
│ Show in ttk.Treeview table │
│ "Export CSV" button │
└────────────────────┬──────────────┘
│
▼
┌──────────────────────────────┐
│ User chooses export location │
│ via filedialog │
│ CSV copied using shutil │
└──────────────────────────────┘
│
▼
┌───────────────────┐
│ END │
└───────────────────┘