软件代写 |计算机代写


UNIVERSITY OF MANCHESTER 

BMAN11000  Software Application Design and Development


Assignment Brief

The assignment meets the 3rd, 6th, 8th and 9th 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 mobile applications; Develop applications that integrate the data layer, user interface layer, and presentation logic application layer in conformance with the MVVM software architecture). 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 must be implemented in Visual Studio using the framework Xamarin.Forms and C# programming language, starting from a blank mobile app.

Submission

Clean your solution in Visual Studio before submission (menu Build). Submit the Visual Studio solution folder in a single zip file. Name the zip file BMAN11000_ followed by your Student ID number. Make sure to keep the extension .zip. Do not include your name in the solution.


Demonstration

After submission, you will have to demonstrate your solution during the lab time on 12 May (or another date if you have got an extension) — by showcasing the app in the emulator and answering instructors' questions about your programme code and XAML. Questions pertaining to unfinished or missing functionality may be asked as well.

Demonstrating your solution is mandatory for passing the assignment. Your demonstration will be marked based on the scope and quality of your answers. The mark for the submitted solution and the mark for the demonstration will contribute to the assignment mark with the weights 70% and 30% respectively.

Marking scheme for the submitted solution (70%)

• Scope and quality of implementation of Requirement 1 below (5 of 100)

• Scope and quality of implementation of Requirement 2 below (10 of 100)

• Scope and quality of implementation of Requirement 3 below (5 of 100)

• Scope and quality of implementation of Requirement 4 below (15 of 100)

• Scope and quality of implementation of Requirement 5 below (20 of 100)

• Scope and quality of implementation of Requirement 6 below (20 of 100)

• Scope and quality of implementation of Requirement 7 below (10 of 100)

• Scope and quality of implementation of Requirement 8 below (10 of 100)

• Scope and quality of implementation of Requirement 9 below (5 of 100)


MyFest Mobile App

MyFest.com is an online platform that allows festival goers to buy tickets, accommodation and travel options for a broad variety of music festivals all over the world. Festivals on the platform are organised by genre, such as jazz, pop, rock, and others. Each festival may feature different genres.

Further, each festival may offer a range of different ticket options, such as General Admission and VIP tickets. Tickets can be either single or group, such as 2-person tickets.

In addition, festivals may offer a range of travel and accommodation options. Such options are intended either for a specific or any number of festival goers. E.g., a 4-person scout tent provides accommodation for exactly four people, whereas the car camping option can be used by one or more persons.

As part of its customer service, MyFest.com intends to offer a mobile app to its users that would allow them to book festival tickets and any options, as well as manage their purchases. You are required to develop a particular area of the app that implements the booking functionality. Specific requirements are provided below and illustrated on screenshots.


Requirements


1. The application shall contain a home screen with the title MyFest Home, as illustrated below. It shall display a menu of two items, centred in the middle of the screen: Browse and book and Basket, with further information underneath, as shown on the screenshot.

2. By selecting Browse and book from the menu, the user shall be able to see the list of genres, as illustrated below on the left. The app shall retrieve the list of genres in JSON format from https://personalpages.manchester.ac.uk/staff/grigory.pishchulov/Genres.json and include a fictitious genre at the top of the list, called “All genres” and corresponding to any genre. The screen shall be titled Genres and allow the user to select a genre or navigate back to the home screen. Hint: use data binding between a ListView and a data structure that holds genres.

3. Selectingagenreshallpresenttheuserwithanewscreencontainingthelistoffestivals featuring that genre, as illustrated above on the right. The title of the new screen shall represent the genre selected by the user. The app shall retrieve festival data in JSON format from https://personalpages.manchester.ac.uk/staff/grigory.pishchulov/Festivals.json. Festival data includes the festival’s name, description, location, dates, genres, URL, picture URL, ticket options, and travel and accommodation options.1 An option’s data includes its name, description, associated number of persons, price in pound sterling, and picture URL. The value of zero for the number of persons associated with a travel or accommodation option indicates that there is no specific number of persons associated with that option. Such an option can be booked for one or more persons.

4. The screen listing the festivals that feature the selected genre shall include the festivals’ pictures, names, locations, start and end dates, and the lowest ticket price in pound sterling, as shown above on the left. The screen shall allow the user to navigate back to the previous screen or select a particular festival by tapping on it. Hints: 1) The list of festivals can be implemented in Xamarin.Forms by means of a ListView with an ItemTemplate that contains a ViewCell. 2) Use data binding between the ListView and a data structure that holds a list of festivals with their details. 3) The source of an Image view can be specified as a URL and supplied via data binding. 4) The festival’s lowest ticket price can be supplied by an additional read-only property with a getter that finds the minimum price among that festival’s ticket options.

5. By tapping on a festival in the list, the user shall be presented with a new screen showing the festival picture in a bigger resolution along with further details, as illustrated above on the right. The title of the screen shall be the festival name. Further details include the festival location, dates, genres, description, ticket options, as well as accommodation and travel options, if any. The user shall be able to scroll through each kind of options using left and right swipes, as illustrated below on the left. Hints: 1) Pass the object with the data model of the festival selected by the user to the constructor of this page. 2) In the page constructor body, set the Content.BindingContext property equal to that object in the constructor body. This will permit data binding between that object and the views on the page. 3) Horizontal scrolling can be implemented in Xamarin.Forms by means of a CarouselView with an ItemTemplate. 4) Use a Frame with a CornerRadius to implement the border around the CarouselView items. 5) Bind the CarouselViews’ ItemsSource property to the TicketOptions, AccommodationOptions and TravelOptions properties of the festival data model, respectively. 6) If accommodation or travel options are missing entirely, the respective Label and CarouselView can be hidden by setting their IsVisible property to false and, in addition, by setting the CarouselView’s HeightRequest property to zero.

6. The screen shall further allow the user to choose the desired number of options to book by pressing the stepper buttons in the respective CarouselView item. The resulting number of options shall be displayed to the right of the stepper, as illustrated above on the right. A label to the left of the stepper should indicate the number of persons associated with that option, if any. If any options have been chosen by the user, a button in the CadetBlue colour at the screen bottom shall display the total number of ticket options chosen (referred to as tickets) as well as the total number of travel and accommodation options if any of these have been chosen. In addition to that, the respective amount to pay shall be displayed by the button, as illustrated above on the right. The screen shall let the user navigate back to the list of festivals by pressing either the button or the back arrow on the navigation bar. Hints: 1) Include an automatic property called Quantity in the options’ data models for the purpose of storing the user choice of options. 2) Bind the Quantity property to the stepper’s Value property. 3) Use the StringFormat property of data binding between the stepper and the label on the right to achieve the desired formatting of the label. 4) An additional read-only property could be used to convert the option’s nPersons property to a string value to be displayed by the label to the left of the stepper by means of data binding. A zero value of the nPersons property shall be converted to the empty string.

7. If any tickets or other options have been chosen by the user then their numbers shall be indicated in the list of festivals in a dark-red font, as illustrated below on the left. The font must be bold and large for tickets, while it must be small for other options. Furthermore, a button in orange colour shall be made available at the screen bottom that would allow the user to proceed to the shopping basket. The button caption shall indicate the total number of tickets and the total number of other options chosen by the user, if any, across all festivals, along with the total amount to pay. Hints: 1) Use the method OnAppearing() to display the page (see Lab 16). 2) To reflect the updates happened to the ItemsSource of the ListView, ItemsSource can be set to null and then set equal to the same array of objects again. The array of objects does not need to be created anew.








咨询 Alpha 小助手,获取更多课业帮助