Chapter 6: Leveling Up – GUI, Logging & Security
You’ve got the code, the brain, and the assistant. Now, let’s give J.A.R.V.I.S. a face, a memory, and security protocols—just like the real deal.
---
6.1 Giving J.A.R.V.I.S. a Face (GUI with Tkinter)
Let’s build a simple control window for your assistant.
Step 1: Install tkinter if needed:
pkg install x11-repo
pkg install python-tkinter
Step 2: Create a basic interface:
import tkinter as tk
def run_command():
cmd = entry.get()
output_box.insert(tk.END, "You: " + cmd + "n")
# Here, you can integrate your JARVIS command logic
entry.delete(0, tk.END)
app = tk.Tk()
app.title("J.A.R.V.I.S. Terminal")
app.geometry("400x500")
app.config(bg="black")
entry = tk.Entry(app, width=40, font=("Consolas", 12))
entry.pack(pady=10)
run_btn = tk.Button(app, text="Run", command=run_command)
run_btn.pack(pady=5)
output_box = tk.Text(app, height=25, width=45, bg="black", fg="lime", font=("Consolas", 10))
output_box.pack()
app.mainloop()
Now, J.A.R.V.I.S. has a visual terminal—your own AI command center.
---
6.2 Logging Your Interactions
Let’s make J.A.R.V.I.S. keep a journal of what you say.
def log_command(user_input):
with open("logs.txt", "a") as log:
log.write(f"{time.ctime()}: {user_input}n")
Call it after every command:
log_command(command)
You now have a full-time assistant that never forgets.
---
6.3 Securing Data with Encryption
Protect your notes, reminders, and logs using basic encryption.
Step 1: Install cryptography
pip install cryptography
Step 2: Encrypt data
from cryptography.fernet import Fernet
key = Fernet.generate_key()
cipher = Fernet(key)
data = "This is secret"
encrypted = cipher.encrypt(data.encode())
print("Encrypted:", encrypted)
decrypted = cipher.decrypt(encrypted)
print("Decrypted:", decrypted.decode())
You can store the key in a file and use it to encrypt/decrypt your saved data like notes or reminders.
---
Challenge: Add Login Security
Let’s prevent unauthorized access:
password = "stark123"
attempt = input("Enter system password: ")
if attempt != password:
print("ACCESS DENIED.")
exit()
else:
print("ACCESS GRANTED. Welcome, Stark.")
Boom. You now have your own Iron Man security layer.
---
What’s Next?
In Chapter 7, you’ll:
Add modules like weather info, news, or system performance
Teach J.A.R.V.I.S. to monitor system health
Add voice output (text-to-speech)
You're not just coding anymore—you’re building your own universe.