Personal Goals Achieved

  1. Improve technical skills - Write code more professionally and reduce duplication of code where-ever possible

  2. Learn new technologies - Work with technologies that I was interested in learning that will benefit me going forward when I start working

  3. Improve time management and planning - Setting clear goals and objectives and breaking tasks into smaller tasks. Focusing on one task at a time and minimising distractions when possible

  4. Improve collaborating as part of a team - Learning to communicate effectively and being able to deal with feedback and constructive criticism. Listening to other peoples opinions and ideas

  5. Take accountability & responsibility of work - Owning up to mistakes and learning from failures. Improve gradually to become a better member of the team.

  6. Never give up on your vision - Have more self confidence in the work that you produce and belief in the overall project idea

Team Members & Roles

Jacqueline O'Connor - Project Lead, Scrum Master, Security, Back-end

Ethan Sia - Quality Assurance, Testing, UX Analysis

Finbar Thornton (Separate release) - Back-end, Hosting, Database Admin

The Team & Project

The_Qrew_Logo.png

My name is Brian McKenna. I am a member of "The QRew" which is our team name for the collaborative project. Our project and concept is called "Qardless". Both names include "QR" in their titles which indicates that the software we will be developing for the final year project is built with the concept of using QR Code technology. 
 

Qardless_Logo.pngThe projects idea initially started out as a way of digitising the loyalty card rewards / stamps by removing paper from process and using QR scanning technology to modernise the process between business and customer.

Since then, an external collaborator who specialises in safety training has jumped on-board and the project scope completely changed. Fergal from Safety First Consultancy Ltd here in Dundalk has seen the opportunity for us to build software that will help his business assign certificates to people who has completed a training course as his company provides an extensive range of training courses such as driver cpc training, manual handling and occupational first aid training. Also, there was a need from the certificate holder perspective to have an application on their mobile device in which they could present their certificate whenever they are getting it validated. For example, a construction site manager verifying their safety pass before entering the site.
We felt through the use of QR code scanning, we could develop an application that would be convenient for both the business and the end user. The convenience for the business is that they can cut back on the amount of paper that is being used as they usually print out a hard copy of the certificate and give it to the certificate holder. They will have an application where they can assign certificates to the end users and the certificate will appear on the end users mobile application with a generated QR code representing the certificate. From the certificate holders view, they will not have to worry about bringing a paper copy of their certificate with them as they will be able to access their awarded certificates via the mobile application.

Main Roles & Specialisms

Mobile / Frontend Developer (Main roles)

As the only mobile & frontend developer on the team I was responsible for creating both the mobile application for the end users and the frontend of the web application for the business employees using Qardless. We done a module in third year called mobile development but it was building Android apps natively using Java / Kotlin. I was aware of key concepts in mobile development such as the different lifecycle methods. The biggest difference in building a mobile application for Android and building a mobile app in React Native using Visual Studio Code is that Android studio has a drag and drop GUI to which you can design layouts whereas Visual Studio Code relies on Expo and an Android emulator, so drag and drop features for building UI's is not available. Having little experience in mobile development and learning a technology that I never used before, React Native, I had to learn the technology on the go. Having had experience in building React web applications, it definitely benefitted me as many of the concepts in React and React Native development are similar such as the core React ecosystem which includes various libraries and tools to develop. React Native was a pleasure to work with as the coding is all done in javascript and I really enjoy working with javascript.

UI Designer

As the UI designer for the team, I created prototypes for the overall design of both web and mobile applications using Adobe XD. As I was using using UI libraries such as MUI & React Native Paper for the mobile and web components in the React apps, I was able to download Adobe XD kits that looked very similar to the components in the UI libraries so it was much easier to mockup prototypes. By using pre-built Adobe XD kits, I was able to save time by not building custom components and also I was able to create prototypes that were consistent in design.
For our Human Factors module we also went through the process of re-designing the Qardless UI based on analysing the ergonomics and human information processing of our software. From the results and observations, we evaluated what we needed to change to the UI and I created prototypes which I will post in the UI Design section of this portfolio. 

Branding

For the branding role, I created various elements which were used for the project such as the team name and Qardless logo. I also was responsible for implementing the brand into the themes while developing the mobile application and web application.

Repository Manager

As the repository manager for the team, I was responsible for ensuring that out Github repositories followed the principles which were set out in place from the start of the project. I was also responsible for merging pull requests from fellow team members into master branches. By one person being in charge of merging code into master branches it reduces the chances of having conflicts which are not being resolved.

Other
We had some difficulty throughout the project with restructuring the database so I helped with the redesign of the database and developing the API / fixing bugs with Jacqueline too.