This website is Portfolio V2, the second iteration of a website to showcase my experience as a software engineer. It features information about me, projects I have worked on, my previous work experience, and some of my interests.
The site is statically generated using Astro and incorporates React components for elements such as the navbar, theme selector, and mobile dock. It is fully responsive and styled with Tailwind CSS and daisyUI.
The website is hosted on GitLab Pages. A CI/CD pipeline runs whenever changes are committed to the main branch. The pipeline statically generates the site from the source code before deploying it to GitLab Pages. Code changes are made on a development branch, where they are self-reviewed before being merged into the main branch. This branching strategy helps prevent accidental deployments of content not ready for release.
Portfolio is the initial version of a website designed to showcase my experience as a Software Engineer and the projects I have worked on. It is built using Next.js, a React framework, and Mantine, a React components library. The site is fully responsive for mobile devices. It features light and dark colour schemes and the option to change the primary colour. The site was deployed using Vercel.
Colour Tag is an Android game that helps individuals learn colours. Two others and I created Colour Tag for SENG440 Assignment 2.
The main gameplay loop requires players to quickly take pictures that match the colour displayed in the centre of the screen. The game supports multiplayer mode through Bluetooth connectivity. All game data is stored in a local SQLite database using Room, allowing players to view the results of their previous games on the Statistics screen.
Every 24 hours, players receive three daily quests, which are optional objectives aimed at increasing replayability. Players are notified of new quests through push notifications. The app also features flashcards for learning colours.
Finally, players can customise their app preferences, including:
- Theme (light or dark colour schemes)
- Haptic feedback
- Display name (the name that other players recognise you by)
Events is a web application that allows registered users to create and manage events. It was developed for SENG365.
Assignment 1 required the implementation of an API, adhering to the provided API specification. The API delivered all the necessary functionality to support the user interface for Assignment 2. The user interface had to fulfil the acceptance criteria outlined in the user stories.
The resulting web application features:
- A home page where all users, whether registered or not, can view and search for events.
- Individual event pages that present detailed information about each event, including attendee lists and similar events. If you are logged in, you can request to attend an event. If you are the organiser, you can manage attendees, edit, or delete the event.
Reusability: Share & Save is a web application designed to help reduce waste. I developed this project alongside seven other team members as part of SENG302.
SENG302 is a year-long course aimed at simulating industry practices. We followed the Scrum methodology, with teaching staff taking on roles such as Scrum Master, Product Owner, and CTO. The year was divided into several sprints, during which team members participated in Scrum ceremonies, including sprint planning, stand-ups, and retrospectives.
To fulfill the user stories, we designed and developed a REST API to provide the necessary functionality for the user interface. The API is implemented using Spring Boot and is supported by a MariaDB database. We used JUnit for automated unit and integration testing, and Cucumber for automated acceptance testing. The user interface was built with Vue.js and Bootstrap.
The outcome of this course went beyond acquiring technical skills; it also taught us the importance of effective teamwork.
To learn more about the final product, please refer to the user guide.