INF2611
ASSIGNMENT 4 2025
UNIQUE NO.
DUE DATE: 16 SEPTEMBER 2025
,Visual Programming II
COVER PAGE
INF2611 — Visual Programming II
Assignment 4 — 2025
Student name: _______________________
Student number: ____________________
Surname (username used in system): ___________________
Module coordinator: Dr A. Kgopa
Moderator: Prof M Mujinga
Date submitted: _____________________
DECLARATION
I declare that this assignment is my own work and that I have not committed or
facilitated plagiarism. I understand that any assignment similar to another student’s will
be penalised.
Signature: ____________________
Date: ________________________
TABLE OF CONTENTS
Cover page and declaration
Question One — GUI code 1 (Login page)
Question One — GUI code 2 (Main dashboard page)
Question One — GUI code 3 (Calendar & Notes page)
Question One — GUI code 4 (File manager / Data storage page)
How to run (instructions)
Screenshots and explanation of each GUI (what each interface does)
Files included in ZIP
, OVERVIEW / NOTES BEFORE RUNNING
The code below uses PyQt5. Install with: pip install PyQt5 .
The app is implemented as a single Python file that contains four page classes (GUI code
1–4). This meets the “4-page GUI” requirement (login + 3 other pages).
The username must be set to your surname and the password to your student number
in the constants near the top of the script before running (assignment penalises if wrong).
The app uses simple text file JSON storage for saving notes/records — no database
required (traditional file handling as requested).
Include a small image file named logo.png in the same folder as the .py file; the UI
displays it on the dashboard. If you don’t have one, create a simple 300×100 PNG called
logo.png .
FULL PYTHON CODE (save as inf2611_assignment4_app.py)
Notes: This single file contains four page classes (labelled GUI code 1–4). Save the file,
set the USERNAME and PASSWORD constants, put a logo.png in the same folder,
then run python inf2611_assignment4_app.py .
# ======================
# INF2611 Assignment 4
# Visual Programming II - 4-page GUI (Login + 3 pages)
# Filename: inf2611_assignment4_app.py
# Requires: PyQt5
# Install: pip install PyQt5
# IMPORTANT: set USERNAME and PASSWORD below to your surname and student
number BEFORE running.
# ======================
import sys
import json
import os
from PyQt5 import QtWidgets, QtGui, QtCore
# -----------------------------
# CONFIG: set these to your own surname and student number (assignment
requirement)
# -----------------------------
USERNAME = "YourSurnameHere" # <-- replace with your SURNAME (required)
PASSWORD = "YourStudentNumber" # <-- replace with your STUDENT NUMBER
(required)
# File used for simple storage (text/JSON)
DATA_FILE = "inf2611_data.json"
ASSIGNMENT 4 2025
UNIQUE NO.
DUE DATE: 16 SEPTEMBER 2025
,Visual Programming II
COVER PAGE
INF2611 — Visual Programming II
Assignment 4 — 2025
Student name: _______________________
Student number: ____________________
Surname (username used in system): ___________________
Module coordinator: Dr A. Kgopa
Moderator: Prof M Mujinga
Date submitted: _____________________
DECLARATION
I declare that this assignment is my own work and that I have not committed or
facilitated plagiarism. I understand that any assignment similar to another student’s will
be penalised.
Signature: ____________________
Date: ________________________
TABLE OF CONTENTS
Cover page and declaration
Question One — GUI code 1 (Login page)
Question One — GUI code 2 (Main dashboard page)
Question One — GUI code 3 (Calendar & Notes page)
Question One — GUI code 4 (File manager / Data storage page)
How to run (instructions)
Screenshots and explanation of each GUI (what each interface does)
Files included in ZIP
, OVERVIEW / NOTES BEFORE RUNNING
The code below uses PyQt5. Install with: pip install PyQt5 .
The app is implemented as a single Python file that contains four page classes (GUI code
1–4). This meets the “4-page GUI” requirement (login + 3 other pages).
The username must be set to your surname and the password to your student number
in the constants near the top of the script before running (assignment penalises if wrong).
The app uses simple text file JSON storage for saving notes/records — no database
required (traditional file handling as requested).
Include a small image file named logo.png in the same folder as the .py file; the UI
displays it on the dashboard. If you don’t have one, create a simple 300×100 PNG called
logo.png .
FULL PYTHON CODE (save as inf2611_assignment4_app.py)
Notes: This single file contains four page classes (labelled GUI code 1–4). Save the file,
set the USERNAME and PASSWORD constants, put a logo.png in the same folder,
then run python inf2611_assignment4_app.py .
# ======================
# INF2611 Assignment 4
# Visual Programming II - 4-page GUI (Login + 3 pages)
# Filename: inf2611_assignment4_app.py
# Requires: PyQt5
# Install: pip install PyQt5
# IMPORTANT: set USERNAME and PASSWORD below to your surname and student
number BEFORE running.
# ======================
import sys
import json
import os
from PyQt5 import QtWidgets, QtGui, QtCore
# -----------------------------
# CONFIG: set these to your own surname and student number (assignment
requirement)
# -----------------------------
USERNAME = "YourSurnameHere" # <-- replace with your SURNAME (required)
PASSWORD = "YourStudentNumber" # <-- replace with your STUDENT NUMBER
(required)
# File used for simple storage (text/JSON)
DATA_FILE = "inf2611_data.json"