This repository contains the source code for the PGR107 (Python Programming) Final Exam project, submitted in Spring 2025 at Kristiania University of Applied Science.
This project was completed as a group assignment by the following students:
- Athiththiyan - Question 1
- Elin - Question 2
- Ivan - Question 3 and 4
The exam consisted of four individual programming tasks:
- Q1: Word Guessing Game - Implement a game where users guess letters to reveal a hidden word.
- Q2: Library Management System - Implement classes to manage books and borrowing.
- Q3: Bank Account Management System - Simulate basic banking functions via CLI and OOP.
- Q4: Palindrome Checker - Verify whether a user-entered string is a palindrome.
Tasks were distributed based on complexity to ensure a fair workload. Each team member also performed sub-review, which included:
- Functionality testing
- Adding comments and Pythonic docstrings (
"""Explanation""") for all function/class - Implementing exception handling (
try-exceptblocks).
| Team member | Main Responsibility | Sub-review Tasks |
|---|---|---|
| Athiththiyan | Q1 | Q2, Q3, Q4 |
| Elin | Q2 | Q1, Q3, Q4 |
| Ivan | Q3 + Q4 | Q1, Q2 |
While each member had clear implementation duties, our collaboration was the key to success:
- 🔀 Version Control – GitHub was used for branching, commits, and merging with mandatory code reviews.
- ✅ Review Process – Each PR required 2 approvals from peers before merging.
- ✍️ Clean Code Agreement – We aligned on naming conventions, modular functions, and readable logic to ensure consistency.
🚫 Note: The
mainbranch is protected.
All code contributions must be made via Pull Requests and require 2 approved peer reviews before merging.
📌 See Git Workflow and Peer Review Process for details.
| File/Folder | Description |
|---|---|
q1_word_guess.py |
Word Guessing Game (by Athiththiyan) |
q2_library.py |
Library System (by Elin) |
q3_bank_account.py |
Bank Account System (by Ivan) |
q4_palindrome.py |
Palindrome Checker (by Ivan) |
word_guess.txt |
Word list for Q1 (by Athiththiyan) |
README.md |
Project overview and documentation (by Elin) |
docs |
Supplementary documents for project guidelines (by Elin) |
This project wasn’t just a programming exercise — it was a chance to experience real software teamwork. Through this process, we learned:
- How to manage GitHub collaboration with pull requests and protected branch
- The value of peer reviews in improving code quality and catching bugs early
- How to write clean, Pythonic code with documentation and modular structure
- The importance of clear communication, shared standards, and mutual trust
- How to split tasks fairly and hold each other accountable without losing team spirit
We’re proud not just of the result, but of how we worked together to get there.
- All code follows the PGR107 final exam requirements and standard Python coding conventions.
- Each team member completed their assigned task(s) and contributed to peer review for at least two additional tasks.
- Plagiarism was strictly avoided, as per the exam regulations.
📄 Additional Documentation:
TheREADME.mdfile and the contents of thedocs/folder were created voluntarily and were not required by the exam.
They were added to showcase our collaboration, professional workflow, and clear documentation practices — values we consider essential in software development.