Return to
Project List

SCORE Project: mySOTD

Title: My Shave of the Day

Sponsor: Domenico Bianculli

Every day, millions of men in the world remove their facial hair: for some this is a chore, for others it is a ritual. Wet shaving enthusiasts perform this ritual by using a combination of tools, ranging from hardware (shaving brush and razor) to software (shaving cream/soap and aftershave). The daily choice of these tools makes the SOTD (Shave of the Day), which is often shared online with other wet shavers. In this project, you will develop a mobile app that keeps track of the SOTDs of the user, as well as of his collection of tools.

Project Description

The mobile application should provide two main functionalities: shave den and my SOTD.

Shave den

In this section of the app, the user will be able to keep track of the items (tools) he uses for shaving.

Shaving items are grouped in categories, such as "Razors", "Brushes", "Soaps", "Creams", "Aftershaves", "Pre-shaves", "Blades". The user should be able to edit (add/delete/rename) categories. Categories can correspond to non-consumable items (e.g., razors, brushes), consumables (e.g., soaps, aftershaves), and disposable items (i.e., a pack of 100 blades, where each blade is used for a certain number of times before its disposal).

Each item is assigned to a category and has a name and a list of attributes, e.g., picture, purchase date, purchase price, last time used, number of uses (for consumables), units left (for disposable items), notes. Attributes specific to a certain category are available only if the item is assigned to that category. It should be to possible to reorganize items across categories: for example, a user might decide to merge the "Soaps" and "Creams" categories into a new "Soaps and Creams" category: the items would then be automatically organized accordingly; manual reorganization should also be supported. The user should be able to change (increase/decrease) the value of the number of uses (for consumables) or the number of units left (for disposable items) in an intuitive (i.e., not clunky) way.

my SOTD

In this section of the app, the user will be able to 1) record the set of items (also called "SOTD", Shave Of The Day) used for shaving on a specific day, and 2) browse his shaving history.

Each SOTD entry consists of the date to which the SOTD entry refers to, a textual description, a picture, and an optional textual comment. The textual description can be entered as free text or by adding items from the shave den. In the latter case, the name of each added item is automatically inserted in the textual description and its "last time used" attribute updated accordingly. Moreover, if the item is a consumable, its "number of uses" counter should be automatically updated. Furthermore, if a disposable item is included in the SOTD entry, the user should be able to record its disposal on that day (if needed), with the corresponding automatic update of the value of its "units left" counter.

The application should support sharing of each SOTD entry on the major social platforms (e.g., Facebook, Twitter, Instagram). If needed, the app should manipulate the SOTD entry data so that they can be posted on the desired platform; for example, the textual description might need to be shortened or edited for posting on Twitter.

Regarding the functionality of browsing the shaving history, the user should be able to scroll through a list view (for example, with miniatures of the SOTD pictures) or through a calendar view. A search feature will allow the user to find the days in which he used a certain item (matching the search string).

Project Scope

Your project needs to support all the features described above.

The choice of the target mobile development platform is left to the teams. Teams are expected to be or become familiar with the main guidelines for developing apps for the chosen platform, including the use of the most appropriate object persistence framework and of native controls (e.g., a share sheet).

No "fancy" UI is required for the app. However, teams should conform to the human-interface guidelines of the chosen platform and document this conformance with examples in the project report.

In general, teams should try to maximize the use of existing basic functionalities provided by the development platform, rather than developing "custom" solutions.

Process Requirements

Teams are free to choose the development process; however, this choice should be motivated and discussed in the project report.

The project artifacts should be hosted on a public repository (such as GitHub or Bitbucket), to track the project activity (including bug reports and bug fixes).

Environmental Constraints

The app should run on the simulator available for the chosen platform. Teams are encouraged to record a video of the app running on a physical device.

Level of Sponsor Involvement

The sponsor of this project will accept questions about the project topic during the periods:

At least by the end of each of these periods (but possibly sooner), selected questions deemed important by the sponsor will be gathered and answered in a FAQ at the bottom of this page. Questions not appearing on the FAQ will not be answered, and teams will have to make their own assumptions for those questions; assumptions have to be included in the project report.

Sponsor contact: domenico (dot) bianculli (at) uni (dot) lu

Project Restrictions

Teams should use the development tools specific to the mobile platform chosen as target for the project. Usage of cross-platform mobile application generators is not allowed.


Project FAQ

Answers to selected questions will appear here.