Introduction to Final Year Project Blog
Hello everyone and welcome to the first post in a series of blog posts I’ll be making while I undertake my Final Year Project, Cloud-based Digital Picture Frames utilising a Raspberry Pi, to earn my degree in BSc Computer Science.
The aim for this blog is to track the progress of my project, allow me to discuss the various options available to me to solve specific problems raised during the development of the project, while also allowing me to provide detail on how I’ve overcome and solved various problems throughout this project.
But who am I?
Well, I’m Colum Ferry. I’m a Final Year student at Ulster University studying BSc Computer Science. I’d like to think that I’m charismatic and outgoing, but I’ll let the people that know me decide that!
In terms of my software development knowledge, I have used a wide variety of languages, ranging from Javascript to PHP to C++. I’ve worked in various development fields, backend development, web development, mobile development but my expertise lies in frontend development.
I’m very proficient with Typescript, Javascript and the frontend frameworks Angular and Ionic. I’ll be utilising this knowledge for this project.
Ok, what is this project then?
The project itself is an intuitive take on a simple idea. It will take the idea of displaying printed photos in a frame and transform it into a modern digital implementation more suitable for life now since the development and improvement in cameras that we use on our mobile devices.
The outcome of this project will allow the user to take the photos they have captured on their phone and display them on a digital frame via a mobile app they can install on their device!
The solution will allow the user to upload their memories into a cloud-based store, protected by an authentication system, which will be used by the digital picture frame to display the user’s photos.
The solution will contain a User Management system, Device Registration system, Frame Management system and a Gallery Management system.
How will I achieve this?
The system that will be developed needs to be robust enough to handle the process outlined in Fig. 1.
A user should be able to upload an image from their device to a cloud store, to allow the image to be available at all times. The frame should then retrieve this image from the cloud store and display it, full screen on the picture frame.
The picture frame itself will be a Raspberry Pi with a 7" Raspberry Pi Touch Display. This allows an app to be installed easily on the Raspberry Pi, but also open up the ability for the user to interact directly with the Digital Frame to set which image or slideshow should be displayed.
To allow the user to upload an image and control the Digital Frame remotely, the Frame Management system will need to be developed.
The Frame Management system will consist of a mobile app, that users can install on their devices, a cloud-based backend, to allow for horizontal scaling and geographic traffic-routing, and an IoT app which will be installed on the Raspberry Pi to allow the user to display and interact with the Gallery.
The Gallery Management system will use a cloud store and a database to store the images uploaded by the user, the slideshows created by the user from their images, and associate them with the user in question.
The User Management system will provide an authentication and authorisation solution to protect the resources uploaded and created by particular users. It will allow a user to register an account which will be used to access and manage their private Gallery.
The Device Registration system will allow each Digital Frame to be registered to a particular user, preventing unauthorised control of the Digital Frame.
What’s next?
The next step in the pipeline is to identify what exactly needs to be created and to evaluate the different options available to me to allow me to achieve the aims of the project.
I will also need to identify the requirements for the overall system and split these requirements out into functional and non-functional. These requirements will need further analysis as to where the in the overall system architecture they will affect.
I will continue to make posts here to track progress, record my thoughts and shed light behind the decisions I make while completing this project.