Article banner

L4 Synpotic Project

PROJECT

2nd December 2022

Introduction

For my level 4 software development apprenticeship, I had to produce a synoptic project. This can be thought of as a final project for the apprenticeship. This was graded and combined with my test results and portfolio grades to calculate my final grade.

The project is a week long (5 working days). You are given the choice between a few different project options; I chose to create a music player. I was then given a summary of the project, which lacked details such as requirements and any project specifications, this simply told me what the project was about.

On the first day of the project, I was under test conditions and was finally given the project requirements and specifications. The following project was completed within that 5 working day timeframe, including all development, testing, and documentation.

Project Overview & Objectives

I was given the following brief before working on my synoptic project:

You work for Rebmem Engineering that produces solutions for external clients. They wish to produce their own media player. They have the capability to produce the electronic hardware but need an interface to allow for the sale of the device as a portable music player.

Your manager would like you to take ownership of the initial concept. You will need to:

  • Design, configure, test and install a Music player that meets business requirements.
  • Roll out within the agreed time frame of a maximum of 5 days.
  • Build an interface that allows for continuous improvement.

Business Requirements

The music player must:

  • Allow music playback.
  • Allow music playback when the device becomes idle. The device will automatically switch to idle mode to save power if no user interaction is recorded over a 30 second period.
  • Have a random shuffle function.
  • Have a search option for audio files within a media database.
  • List display options by song track or album.
  • Allow for a Creation of a song play list.
  • Have user control over playback.

Project Outputs and Deliverables

Once completed, to demonstrate completion of the tasks I needed to provide a series of outputs:

Deliverable Output Evidence
Plan
  • Create a plan, diagram or sketch based on the business requirements
  • Create appropriate sequence diagrams
Application Layout
Install / Configure

Create the following to install and configure your Music Player:

  • Data Models
  • User interface design
  • Application code
  • Data structures
Source CodeApplication Documentation, Application Layout, User Documentation
Test
  • Develop and test software and user interfaces
  • Documenting your approach and results
  • Capture the test case and results
Application Documentation, Tests
Implement
  • Provide documentation for further development, improvements and maintenance
  • Provide documentation of assumptions and limitations
  • Create a user guide document for the key users
Application Documentation, Application Colours, Application Layout, User Documentation

Final Product

The application turned out really well. The final design was heavily inspired by Spotify since it has such a simple yet user-friendly user interface.

Project Evaluation

In the timeframe given, I've managed to create a functional UWP application that delivers all of the specified requirements.

I did not feel it was enough time to write the application how I would've wanted. Due to time constraints, some code does not have thorough commenting, while other parts do. If I had more time, I would review all of the code I had written and completely document it. This would make future development much easier.

I also would've written more unit tests for the project. When it came to testing everything I had to do it manually while developing by creating a test plan. This test plan can be found in /Documents/Documentation/Testing/Tests.pdf. Writing unit tests would make the entire process much easier and in the future would make development faster since if something went wrong while developing the application, it should get caught by the unit tests if they're kept up-to-date.


Other articles

Read some more awesome articles

Article banner.
KDE Modern Plasma
9th June 2023

A modern Plasma system-wide theme for the KDE desktop environment.

Read More
Article banner.
Portfolio Website
5th June 2023

This is my self-hosted online portfolio, created with bootstrap, nginx, php-fpm, and containerised via Docker.

Read More
Article banner.
Telegram IP Monitor
9th March 2023

Python based Telegram bot that monitors the public IP address of the network it is ran on. Notifies a telegram user when the public IP address changes.

Read More