Nathan Souphanthong Systems Design Engineering
@University of Waterloo
Hi, I'm Nathan!
I'm a fourth year student at the University of Waterloo studying Systems Design Engineering and am
pursuing a career in software development. In my free time, I enjoy playing sports like hockey and basketball
and ocassionally I take pictures, participate in hackathons and restore cars. Currently I am seeking oppurtunities for the Summer 2024 term!
This year, I had the opportunity to participate in my first
ever hackathon at Hack the North. From January 15-17, my team of three and
I planned, developed and pitched our productivity app BreakBank, which addressed one of the main problems
for individuals during this pandemic, controlling break time. By using user customized task lists, awarding
individuals with break time based on the size of tasks and self-destructing tabs to stop users from
‘over-breaking’, we provided an effective solution for people who struggle to manage distractions.
Our pitch received positive feedback from judges.
Functionality
User’s start by entering tasks into the list and specifying the size of each
task (Small, Medium, Large). Each size correlates to a different amount
of break time awarded to your break bank when completed. You can also
specify a custom size for different tasks. Once the break bank is populated
with break time, users can cash in their time to take a break.
In doing so, The website opens up another tab where users can browse and
break freely until time has depleted and the tab closes. Break time can also be
paused and tabs used for the break will be closed.
My Role
For this project, I developed all the HTML and
CSS involved with the task list as well as the page that
opens when users decide to cash in their break time. Along with the
appearance of the website, I also contributed to the functionality of the
task list to add time to the bank when tasks were completed with the use of
JavaScript. Being one of the first large projects I have worked on with
HTML,CSS and JavaScript, I had gained a lot of new experience and learned how to
develop in an organized and efficient manner.
The Assessment Assistant was a tool created to aid teachers in the
storing of test questions and creating a PDF test from those stored questions.
The application had two main functionalities. The first section allowed users to
edit or create an existing database, this allowed for easy input and edit of questions.
Additionally, after changes were made to databases, these questions were stored in
folders on the computer to be accessed later. The second part of the GUI is the test
generator, this enables the user to select a database of questions. After a database
of questions is selected, the Assessment Assistant randomly generates a test based on
parameters (number of type of questions, name, specified by the user. Once generated,
the test can be tailored to the user’s liking, by adding and removing select questions.
Functionality
Database Manager
Can add, delete or edit multiple choice or short answer
questions of different types (knowledge, application, thinking, communication)
Saves all questions to a text file to be accessed later by the database manager or
test manager
Test Manager
Generates test based number of questions for each section (specified by user)
Edit the generated test to delete or swap out unwanted questions
Re-randomize test questions
Export test to PDF
Demos
Editing short answer questions within the GUI (Add,Rename,Delete)
Mock folder system created using Java with fully functioning GUI.
Program utilizes linked lists, queues and arraylist to create customized folder and file objects.
Functionality of the folder system allows users to edit pre-existing folders by adding, removing, organizing,
searching, saving and alphabetically sorting files and folders. Additionally,
users can import a folder system from a pre-existing text file.
2D scroller based off the popular mobile scroller Jetpack Joyride.
Objective: Stay alive for as long as possible by avoiding obstacles that are randomly generated on the screen.
Obstacles:
Brick walls (varying heights and position)
Laser bullets (spawned at different position and moves towards character
Earn coins to buy customizable colours that appear in the game shop.
The game also has various sound effects represent in game events (e.g. end game, in game music)