Donna J. Harris

Developing Dine Around

Dine Around was built as an Android development course final project. Our team of five built an app for tracking favourite restaurants, coffee shops, and bars.

My responsibilities and my confidence grew throughout the duration of the project.

I volunteered to take care of the app logo (created by combining and editing two Ballicon icons), which proved to be a precursor to handling the design and implementation of the app's lists of "Places" and "Favourite Places".

With helpful guidance from a professionally-experiened team member, I was introduced to techniques for developing the main list of places. Quite quickly, I was able to contribute independently and effectively, designing and implementing the list layout and functionality, obtaining regular feedback from the team.

I successfully built out my features and understood how other components would need to integrate. We worked together to connect the pieces and troubleshoot any issues that arose.

Unfortunately, the repository is not public at this time. What follows provides some insights into the app as well as my involvmenet in development and testing.

Places Lists

All Places: These sample "All Places" lists show restaurants, coffee shops, and bars with various metadata, including ratings and favourites, open status and distance, if nearby.

An example of the Dine Around places list, showing three places, including one to avoid, one 5-star rating, one unrated, one marked as a favourite, two closing soon, and one closed. An example of the Dine Around places list, showing three places, including one nearby, one 4.5-star rating, one 5-star rating, one unrated, two marked as a favourite, two closing soon, and one open now.

place_item.xml defines the card layout for the All Places and Favourite Places lists. This screenshot of VS Code shows the XML file and resulting card layout using sample text.

VS Code open to show the place_item.xml file and the resulting layout, with sample text

The All Places and Favourite Places lists provide guidance by default whenever there are no results to display in the list.

The Dine Around All Places list as it appears when empty. There are suggestions regarding why there are no items in the list. The Dine Around Favourite Places list as it appears when empty. There are suggestions regarding why there are no items in the list.

Language Support

Our application supported three languages: English, French, and Portugese. (It was a required element to support multiple languages.)

My role was to ensure that all strings were labelled and translated accordingly. I provided the French for the app and much of the English.

The different languages impacted the UI layout, as some languages have longer or shorter words and phrases than others. It was an interesting challenge to update the layout for this purpose. The VS Code image above of the place_item.xml layout shows the test strings used towards the end of the project, including the longest words and phrases explicitly used by the application.

Testing Dine Around

While there was much manual regression and feature testing all throughout the project, there was a requirement to provide unit testing in the codebase.

A number of helper classes containing business logic were relatively well isolated. As a result, these could be tested directly, making them good candidates for code-level test automation.

I provided tests for the code I wrote, as well as some other helper classes. Below, I include test code and the file under test for these instances.

Testing TimeHelper.java

Testing PlaceDayHourHelper.java

Related Commit History

Screenshots from GitHub of the commit history for the project files mentioned here are included below. These screenshots provide evidence of my ongoing project development activity throughout the duration of the project and show some indication of my activities.

Commit History for PlacesListAdapter.java

Page 1 of 6: Commit history for PlacesListAdapter.java Page 2 of 6: Commit history for PlacesListAdapter.java Page 3 of 6: Commit history for PlacesListAdapter.java Page 4 of 6: Commit history for PlacesListAdapter.java Page 5 of 6: Commit history for PlacesListAdapter.java Page 6 of 6: Commit history for PlacesListAdapter.java

Commit History for place_item.xml

Page 1 of 2: Commit history for place_item.xml Page 2 of 2: Commit history for place_item.xml

Commit History for strings.xml (French)

Page 1 of 2: Commit history for strings.xml Page 2 of 2: Commit history for strings.xml

Commit History for TimeHelper.java

Page 1 of 1: Commit history for TimeHelper.java

Commit History for TimeHelperUnitTests.java

Page 1 of 2: Commit history for TimeHelperUnitTests.java Page 2 of 2: Commit history for TimeHelperUnitTests.java

Commit History for PlaceDayHourHelper.java

Page 1 of 2: Commit history for PlaceDayHourHelper.java Page 1 of 2: Commit history for PlaceDayHourHelper.java

Commit History for PlaceDayHourHelperUnitTests.java

Page 1 of 2: Commit history for PlaceDayHourHelperUnitTests.java Page 2 of 2: Commit history for PlaceDayHourHelperUnitTests.java

Commit History for PlaceDayHourIntegrationTests.java

Page 1 of 2: Commit history for PlaceDayHourIntegrationTests.java Page 2 of 2: Commit history for PlaceDayHourIntegrationTests.java