Final Year Project
01
AI · Civic Tech · Full-Stack
Local Lens
A full-stack civic-reporting platform that lets residents photograph local council issues — potholes, broken lighting, fly-tipping — and have Claude Vision AI automatically pre-fill the structured report. Councils get a dashboard with a priority queue surfacing the most urgent issues, bulk management tools, and a resident account system.
Claude API
Python
Streamlit
Supabase
Docker
Folium
Pandas
Pillow
pytest
View on GitHub
- Custom 0–100 priority scoring engine combining AI severity, time-open, community upvotes, and local report density
- SHA-256 image hashing prevents exact-duplicate submissions; Haversine proximity checks surface nearby similar reports
- Reporter cooldown system blocks repeat submissions within 4 days, preventing abuse
- GPS extracted from EXIF metadata with Nominatim geocoding fallback; interactive heatmap, pin, and cluster map modes
- SMTP email notifications on report status changes; Supabase auth, cloud storage & relational database
02
Java · Robotics · Top Grade
SwiftBot Navigation
Programmed a physical robot to parse QR code navigation commands and execute real-world movement sequences. Awarded top marks at university for clean architecture, input validation, and movement retracing — demonstrating ability to deliver under assessment pressure.
Java
QR Parsing
OOP
Hardware Integration
- Configurable speed & duration per command with full input validation
- T-command for movement retracing (reversal logic)
- Command logging to file for audit trails and debugging
03
Python · Automation · Desktop Tool
File Organiser Bot
A desktop automation tool with a Tkinter GUI that recursively organises any directory by file type, modification date (year/month/week), and sub-category. Handles duplicates intelligently, tracks progress live, and optionally cleans up empty folders post-run.
Python
Tkinter
tqdm
Regex
os / shutil
- Regex-based duplicate detection quarantines conflicting files safely
- Live progress bar with real-time feedback on files processed
- Sub-category sorting: Word, PDF, Excel, PowerPoint, and more
04
C# · Windows UWP · UI/UX
College Mobile App
Multi-screen Windows UWP application for Stanmore College featuring user authentication, personalised timetables, cafeteria menus, department pages, and assignment tracking. Demonstrates cross-platform UI development in a different tech stack.
C#
XAML
Windows UWP
05
Java · Game Dev · Swing
Snake Game
Classic arcade Snake implemented in Java Swing with full game-state management, collision detection, high-score persistence, sound effects, customisable snake colour, and a pause system. Built from scratch as a Year 1 project.
Java
Swing / AWT
OOP
Game Loop
06
Python · API Integration · Desktop
Currency Converter
Fetches real-time and historical exchange rates via API, converts between currencies, and plots trend charts with Matplotlib. Implements smart caching and exponential-backoff retry for resilient API usage.
Python
Tkinter
Matplotlib
requests
JSON Caching
07
Python · Security · Desktop Tool
Password Generator
Cryptographically secure password generator using Python's secrets module. Customisable length, character-type minimums, visual strength indicator, clipboard integration, and expiry-dated password saving.
Python
secrets module
Tkinter
Security
- Uses Python
secrets (not random) for cryptographic quality
- Minimum character-type enforcement prevents weak outputs
08
Python · Image Processing · Tool
QR Code Generator
Feature-rich QR code generator with custom fill and background colours, logo embedding via Pillow, four error-correction levels, optional frame text, and PNG/JPEG export. Built with a clean Tkinter interface.
Python
qrcode
Pillow
Tkinter
09
JavaScript · API · Web App
Weather App
Real-time weather app integrating OpenWeatherMap (forecasts) and Unsplash (location imagery). Dynamic backgrounds update to match current conditions; 5-day forecast with weather icons.
JavaScript
HTML/CSS
OpenWeatherMap API
Unsplash API
10
Python · NLP · CLI Tool
Simple Translator
Python translation tool supporting 100+ languages via Google Translate API with an in-memory cache for reducing repeat API calls. Dual interface: interactive mode and direct CLI arguments for scripting.
Python
googletrans
CLI / Interactive
Caching
11
Python · Game · Persistence
Rock Paper Scissors
GUI-based Rock Paper Scissors game using Tkinter with player name customisation, score tracking persisted via JSON, a best-of-3 win condition, and save/reset functionality.
Python
Tkinter
JSON
12
JavaScript · Web · Generator
Portfolio Generator
Browser-based portfolio generator where users fill in personal details, experience, education, and skills, then export the result as a downloadable PDF using html2pdf.js. Supports dynamic addition of multiple experience and education entries.
JavaScript
HTML/CSS
html2pdf.js
Dynamic DOM