Reference no: EM132886776
BMAN11000 Software Application Design and Development - University Of Manchester
Functional design of a software application
Assignment Brief
The assignment meets the 3rd, 6th and 7th learning outcomes of the course (Design, develop and implement basic/intermediate level software applications; Apply problem-solving in designing and developing business applications; Use a software development environment to develop and deploy business applications). In order to complete the assignment, you are going to submit and demonstrate a mobile application solution designed and developed by you according to a given context and set of user requirements (see next page). The solution has to be implemented in Visual Studio using C# programming language and the framework Xamarin.Forms.
Celebrity News Mobile App
Celebrity News is a UK-based company partnering with celebrities from a diverse range of branches - such as sports, music, movie industry, and the internet. As part of the client service, the company sends out birthday gifts to the celebrities and maintains a mobile app that displays celebrities' birthdays to their fan communities.
The app is conceived to serve two different kinds of users: general public, and fans. In terms of the service provided to the general public, the app presents the users with a calendar displaying birthdays of the partnering celebrities. Users that identify themselves as fans of certain celebrities may customise their experience by signing up and selecting favourite celebrities - so that the calendar view will be restricted to these celebrities only.
You are required to design and develop one particular area of that mobile app implementing the above functionality for the fan users. Specific requirements are provided below and illustrated on screenshots.
Requirements
1. The application shall contain a home screen with the title CelebJITSU Home, as illustrated below. It shall display a menu of three items, centred in the middle of the screen: Birthday calendar, Celebrities, and Celebrity categories, with descriptions provided underneath, as shown on the screenshot.
2. By selecting the Celebrities item from the menu, the user shall be able to see the list of all partnering celebrities with their pictures, as illustrated below on the left.1 The screen shall be titled Favourite Celebrities. It shall let the user indicate favourite celebrities and navigate back to the home screen. The user's choice shall persist and be displayed when the user revisits this screen. Hint: the list functionality can be implemented in Xamarin.Forms by means of a ListView with an ItemTemplate that contains a ViewCell. Further, the source of an Image view can be specified as an URL.
3. Further, by tapping on a celebrity in the list, the user shall be able to see their picture and basic information about them displayed on a separate screen, as shown in the screenshot above on the right. The screen shall have the celebrity's name as its title, and it shall let the user navigate back to the list of celebrities. The picture shall be horizontally centred and be 360 pixels in height. The celebrity's birthday shall be displayed under the picture in the format shown on the screenshot. Basic information shall be displayed underneath the birthday in the colour CadetBlue.
4. Selecting the Celebrity categories item from the menu on the home screen shall offer the user an opportunity to select categories of celebrities for displaying in the birthday calendar, as illustrated below. The screen shall be titled Celebrity Categories and it shall let the user navigate back to the home screen. The user's choice shall persist and be displayed when the user revisits this screen. Hint: the screen functionality can be implemented in Xamarin.Forms by means of a ListView with an ItemTemplate that contains a SwitchCell.
5. Selecting the Birthday calendar item from the menu on the home screen shall display a calendar in the month view as illustrated below, and highlight the current date (left), and the dates on which favourite celebrities of selected categories have birthdays (right).
6. The screen shall be titled Birthday Calendar. It shall initially display the current month, which is to be indicated in the top-left corner of the screen, as illustrated in the screenshots. It shall further offer the user a possibility of moving back and forth in time by pressing the respective buttons at the bottom of the screen. Weeks in the calendar shall commence on Monday. Dates of the preceding and the following month should not be displayed. It is essential that birthdays repeat themselves year on year. The screen shall also let the user navigate back to the home screen. Hints: the calendar grid functionality can be implemented in Xamarin.Forms by means of a CollectionView with an ItemTemplate that contains a Label and, optionally, other views. The property ItemsLayout of the CollectionView shall be set to "VerticalGrid, 7" in order to achieve the desired 7- column layout. Highlighting of dates in the calendar may deviate from the examples given here in terms of colour and shape. Further, you may find the following methods and properties of the DateTime class in C# useful: DaysInMonth(), Today, and DayOfWeek.
7. Clicking on a date that indicates a celebrities' birthday shall reveal the celebrity's name underneath the calendar, or the list of names if there are several celebrities having their birthday on that date. Further, by tapping on a celebrity's name, the user shall be able to see their picture and basic information about them displayed on a separate screen. That screen shall have the celebrity's name as its title, and it shall let the user navigate back to the calendar. The screenshots below illustrate this. Clicking on any date that is not a birthday shall remove celebrity names from the screen. Also moving from month to another shall remove any celebrity names from the screen. Hint: the list functionality can be implemented in Xamarin.Forms by means of a ListView.
8. On start of the app, it shall receive the celebrities' data as a character string in the JSON format. These data may include any number of celebrities. An example of such input is provided in a text file attached to this assignment. For simplicity of developing and testing the app, the entire contents of the text file can be assigned to a local variable of type ‘string' in the body of the method OnStart() of the App class. The value of that variable can then be converted to an array of objects that will represent the respective celebrities.
9. The app shall persist the user's preferences in terms of favourite celebrities and celebrity categories. These preferences shall be saved when the app closes or is moved into the background; and they shall be restored when the app is starting or resuming. As there are no preferences to be restored on the first start, the app shall assume that all celebrity categories are selected but none of the celebrities are selected as favourite.
Attachment:- Software Application Design and Development.rar