present Stock'n'Roll
present

StocknRoll Demo Video

StocknRoll Demo Video

Stock, Cook, and Roll Out Delicious Meals!

For our group project, we were tasked with building an application composed of a backend API using Java and a Postgres database, an Android app which allows users to work with our backend API, and additionally, the backend had to consume at least one public, free-to-use third-party API.

We decided to address these requirements by a project that sought to address the issues caused by food wastage in the home, arising from over-buying and poor monitoring of the use-by dates.

Our project would allow users to track what they have bought and when it has to be consumed by, as well as allowing them to find recipes that would use selected soon-to-expire ingredients, thus reducing over-buying and waste.

Features:

o Add ingredients to the pantry via a built-in ingredient search
powered by the Spoonacular API.
o View a list of pantry ingredients with details such as expiry
date, stock levels, and names.
o Filter ingredients by category (e.g., produce, dairy & eggs,
meat).
o Sort pantry items by name, expiry date, and stock levels.
o Search for recipes based on selected pantry ingredients.
o Filter recipes by dietary preferences (e.g., vegan, gluten-
free), diet intolerances, and recipe type (e.g., Chinese,
dessert).
o View recipe details and open them in a web browser for
further instructions.
o Save your favourite recipes for quick access.

The Team

  • Princy PhilipPreview: Princy Philip

    Princy Philip

  • Liam O'HaraPreview: Liam O'Hara

    Liam O'Hara

  • Jeremiah HaastrupPreview: Jeremiah Haastrup

    Jeremiah Haastrup

  • Reece MoorePreview: Reece Moore

    Reece Moore

  • Rehana SheikhPreview: Rehana Sheikh

    Rehana Sheikh

  • Filip  GrzejszczykPreview: Filip  Grzejszczyk

    Filip Grzejszczyk

Technologies

IntelliJ, Android Studio, Spring Boot API, PostgreSQL, Docker, AWS, AWS-RDS, Elastic Beanstalk, SwaggerPreview: IntelliJ, Android Studio, Spring Boot API, PostgreSQL, Docker, AWS, AWS-RDS, Elastic Beanstalk, Swagger

We used: IntelliJ, Android Studio, Spring Boot API, H2, PostgreSQL, Docker, AWS, AWS-RDS, Elastic Beanstalk, Actuator, Swagger, Glide, Retrofit

We implemented Spring Boot APIs with an MVC architecture. This allowed us to maintain a clear separation of concerns, and implement robust inventory and recipe management. During development, we used an H2 in-memory database and then transitioned to PostgreSQL in production for data persistence. Later, we used Docker for containerisation and AWS Elastic Beanstalk for cloud deployment, to allow the back- and front-ends to run independently. To support effective debugging, we implemented logging interceptor to track all API interactions. The back-end application included Actuator for health monitoring and Swagger for API documentation.

The Android app followed the MVVM architecture. This pattern, combined with Retrofit for API communication, created a clean and maintainable codebase. To support efficient coding of in-app images, we made use of the Glide API.

Challenges Faced

Our very first challenge was to scrap our initial idea as during our user journey, we realised it would not completely fulfil the brief and we would not be able to fully showcase our learnings, It did however lead to the birth of Stock’n’Roll but time spent on the initial idea meant we would face significant time constraints.

To compensate, we worked evenings and weekends to ensure we could present an app we were proud of.

There were challenges in coding but after various approaches and quite a bit of pair-programming, there were times we had to concede and use an alternative approach.

Time management and cross-team communication did present a challenge sometimes, and we found ourselves caught up in the details before major functionality was in place. Working effectively in a large team had its moments but we learned to pivot quickly when required.