You are on page 1of 11

Mid-Term Examination

Total Grade Points: 20

Problem Specification
• Please read this requirement specification document completely to understand the
application that you need to create.
• It’s your responsibility to read and understand all the requirements.
• No kind of help in terms of solution or error fixing will be provided during the
examination.
• The marking sheet is provided at the end of this document.
Create your Android mobile app project with the following specifications:
• The task is to create an Android application for subscribing to a design application
• Project Name: XXMealDelivery, where xx is your initials. (For example,
KPMealDelivery for Kevin Peterson)
• Project Type: Empty Views Activity
• Minimum SDK: API 29: Android 10.0 (Q)
• Language: Java
• Create the borders, strings, colors, and themes as needed for the UI

Build your prototype:


• Design the UI, if viewed on an emulator or real Android device will match EXACTLY the
screen shot provided (See Figure 1), except:
o The app bar title will be the title of the app that you create
• You can use the layout and other resources provided
• Use camelCase naming conventions for id's, variables, and methods
• Use PascalCase naming conventions for any class that you create

Functional Requirements:
Note: Database is not implemented in this application.
1. Enter the subscriber's name in the ‘Customer Name’ field

2. Enter the subscriber's phone number in the ‘Phone Number’ field

3. Select a subscription plan either ‘Monthly’ or ‘Yearly’. Both these options should be
unchecked when the app launches (See Figure 2)

4. Populate the plan types ‘Cooked Meal’ and ‘Uncooked Meal’ in the plan type spinner only
when the monthly plan is selected (See Figure 3)

5. Populate the plan types ‘Veggies with Recipe’ and ‘Veggies Only’ in the plan type spinner
only when the yearly plan is selected (See Figure 4)

6. Select the additional features ‘3L Lemonade’ and/or ‘4L Milk’. These items should be
unchecked when the app launches (See Figure 5)
7. The ‘Type of Delivery’ spinner should get populated with the items ‘Door Step’, ‘Store pick-up’
and ‘Community box’ (See Figure 6)

8. A pop up calendar should get displayed when the ‘Subscription Date’ field is clicked (See
Figure 7)

9. The subscription cost should get displayed when the ‘Submit’ button is clicked. The details like
customer name, subscription plan selected and total cost should be displayed using a snackbar.
The total cost should be calculated as yearly total if "Yearly Subscription" is selected otherwise
show monthly total. Business rules for calculating total cost are provided in the table 1 below.

10. Implement Object Oriented Programming principles with at least one Java class in which
encapsulation is applied. You are free to choose a Java class that is relevant in the application.

11. ViewBinding should be enabled.

12. Listener interfaces should be implemented as required.

13. Implement the best practices and validations. The following validations must be
implemented:
a)Data should be entered in the fields customer name, phone number, and subscription date.

b)Phone number entered should be in a 10 digit format. (For example, 9999999999)

c) One of the subscription plans should be selected.

d) One of the delivery types should be selected.

e) Subscription date entered must be today or a date from future. Past date should not be

allowed

Subscription Plan:

Monthly Cooked Meal : CAD 22

Uncooked Meal: CAD 17

Yearly Veggies with Recipe : CAD 110

Veggies Only: CAD 164

Additional Features:

3L Lemonade If Monthly Subscription: CAD 7 per Month

If Yearly Subscription: CAD 70 per Year


4L Milk If Monthly Subscription: CAD 6 per Month

If Yearly Subscription: CAD 40 per Year

Type of Delivery:

Store pick-up CAD 0 (for both monthly and yearly


subscriptions)

Community Box If Monthly Subscription: CAD 5 per Month

If Yearly Subscription: CAD 22 per Year

Door Step If Monthly Subscription: CAD 4 per Month

If Yearly Subscription: CAD 42 per Year

Table 1

Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
What to Submit:
• Comment the Code: You must provide meaningful comments to every Java class, method,
and every and any significant code segment.
• Word Document: Include all the Java code in a Word document. Code
should be pasted as text. Submission will not be considered for evaluation if code
is pasted as an image. Do not zip the word document. Name this document as
YournameMealDelivery.docx’ (Example: PeterMealDelivery.docx)
• Application Package: Create a zip file of your entire application package.
•• Upload: You must also upload the Word document and the project zip file to the
mid- term examination folder in the assignments section on eConestoga.

Marking Sheet:
Description Marks Allocated Marks Achieved
Page designed as specified 2
Functionalities implemented
as per requirements:

• Dynamic population of 2
monthly plans

• Dynamic population of 2
yearly plans

• Implementation of 1
additionals

• Dynamic population of 2
the type of delivery

•Implementation of 2
Subscription Date Picker
• Calculation of total 2
subscription cost as per
given business rules
• Implementation of 2
Snackbar as per
requirements
Implementation of OOP 2
principles with at least one
Java class having
encapsulation applied
Implementation of validations 3
Total Grade Points 20
Deductions
Failure to submit the word 20
document and the application
zip file in the Mid-term
examination folder under
assignment section on
eConestoga
Non submission of Word 12
document file with the
commented Java code pasted as
text
ViewBinding not enabled 2
Listener interfaces not 1 x --------
implemented
Runtime errors 1.5 x --------
Hardcoded text found in the UI 3
Hardcoded color found in the 3
UI
Assignment Standard (proper 1 x --------
project name, submission docs
name
etc)

Programming Standards 1 x --------


Bugs (including requirements 1-5 based on severity
mentioned in
this specification)

You might also like