Skip to main content

Bachelor Project

The final project from my Software Engineering education was done in cooperation with VIA University College and Boozt Fashion AB. The goal of the project was to design and implement a "Marketing Campaign Booking Platform" that can deliver better results in terms of performance, process user requests faster and offer a better user experience than the currently used legacy system of the company.

  • Behaviour Driven Development
  • UI & UX Design
  • Distributed system design
The landing page of the web application.

The technology stack for the project was PHP and Symfony for the backend of the application as per requirement from Boozt Fashion AB. On the frontend, React was chosen together with Redux, Material UI and several other component libraries to assist the development of the application.

A showcase of the dark themed components for the web application.

UI & UX Design

The component designs in React follow the Material Design Guidelines. In terms of the design process, Figma was used to create the design mockups and perform usability tests with system users from the company to verify the project requirements as well as the user experience before implementation. Following this process allowed our team to identify problems with the system flow and optimization early on before implementation took place.

Search movies page of the web application.

Backend

The backend services of the system were designed and implemented in PHP Symfony. The framework provides reusable components for building APIs and microservices for the web. It allowed us to implement the project domain model, its entities and map those directly to a MySQL database by using an ORM (Object-Relational Mapping) technique. That eliminates the need to use SQL language to create and query data for the most part and it enforces clean and structured code.

What is more, the framework is equipped with many useful components that assisted the development of the API. For example securing the backend by implementing a user authentication service, End-to-End and Unit testing was done with the help of such components.

The movie analytics page in the web application.

Testing

Behaviour-Driven Development practices were followed throughout the project. That means all business requirements were translated into test cases first. Followed by that the individual features were implemented together with their test case implementations. That allowed the team to keep track of the overall progress of the project as well as the passed/failed features.

On the frontend Cypress was used together with Cucumber to create automated tests for the UI components, while Behat was used to test the backend services. By using this approach, the collaboration between the business and development team was strengthened since the test cases were written in a format that is readable and understandable by both business and technical people.

Besides the great format of the test cases and the test automation, Cypress allowed the team to also perform End-to-End Testing of the system. This type of testing covers the entire software product from the backend to the frontend ensuring that the application behaves as expected and the business requirements are met.

Search movies page of the web application.

Project outcomes

The given grade for the project was 12 on the Danish 7-point grading scale. 50% of the system features and 61% of test case scenarios were implemented and passed the tests over the course of 5 months, taking into account 3 other elective courses that ran in parallel with the bachelor project during the last semester.

The project was considered a success given the fact that it was approved by both VIA University College and Boozt Fashion AB. Moreover, an acceptance test was conducted with the company during the last week of the project period where company representatives tested the functionality of the system and gave feedback on the project. The company's final verdict was very positive and our solution will most likely be put into production in the near future meaning that the acceptance test passed.

Lastly, this project was the most comprehensive from my education in terms of technical knowledge and software development process since the environment was professional and there was a lot of communication happening between our team and industry professionals from the company. It is a project that I am proud of together with my team from college and it was a great learning experience that I will surely benefit from in future.