Description
In this assignment you will be building a GPA calculator app. Requirements:
1- Functionalities:
a. Adding a Course: A new course will be added to the list by clicking this button. To enter a
grade from a course, user will need to enter
i. Total score (point) from Assignments
ii. Midterm score and
iii. Final score together with max possible points from each task.
User will also need to enter weight of each task out of 100% and the credit amount for this
course (Always show some default text with meaningful numbers in each text field). The
calculation engine will calculate the total weighted score of this course and decide the letter
grade using the following matching:
A: 90-100, B: 80-89.9, C: 70-79.9 D: 60:69.9 and F: <60
The chalkboard text should be updated with the added course and its corresponding credit
and letter grade image. Max 4 courses can be entered. If a fifth course is tried to be entered,
an error message (as an alert) should be displayed.
Another error message should also appear if not all fields are entered accurately (ex: if
the sum of weights does not make 100%, if point taken is not between 0 and max possible
point etc.). If a course with the same title is tried to be added, a different error should appear
too.
b. Deleting a Course: The course with id entered will be deleted. The chalkboard and GPA
should be updated accordingly. It should show an error alert if id is not present in current
list. The Delete button should be disabled at the beginning and when no course is in the
list (after removing all current listed courses in the chalkboard).
2- You need to create classes like “Assessment” and “Course” with appropriate properties and
functions.
3- At the beginning (when no course added), GPA should show nothing (just “GPA: ”) as white
color. With the first course added, it should be calculated and should appear. Color of GPA
text should change as follows:
a. Green if GPA is between 3.0 and 4.0
b. Orange if GPA is between 2.0 and 2.99
c. Red if GPA is less than 2.0
4- The app should work only in Portrait mode.
5- The appearance of the app should look the same/good for all iPhone types. Use auto layout
constraints to achieve it. Do not use Stackview in this assignment.
6- You can use the image resources (letter grades, app icon, chalkboard, gpa-calculator-title)
provided. Finding and using your own but similar images is highly recommended.
UI related customization
1- Change labels for “Add Course” and “Delete Course” to images and find/use appropriate
images without breaking the good looking appearance (You can check
http://www.freepik.com/ for sample images).
2- Add a custom font with appropriate changes in “info.plist” and use it (You can check
http://www.dafont.com/ for some fonts).
3- Create your own title logo image from online sources and use it (You can check
http://cooltext.com/ )
4- Create/Find your own app icon and use it.
5- Also, in general you are free to re-organize the locations of UI items as long as the functionality
stays the same and the appearance is the same with different device sizes.
Submissions should be made in Blackboard before 11:59 pm on 2/14 .
General Grading Criteria:
1- Appearance: (30%)
2- Functionality:
a. Adding (40%)
b. Deleting (15%)
c. Errors (15%)
Screen shots in iPhone SE (4-inch), iPhone 7 (4.7-inch) and iPhone 7 plus (5.5-inch)
More screenshots from run time.
1) Initial Screen
2) After “Mobile programming” and “Algorithms” courses are added. GPA is also updated.
3) After 4 courses are added and a fifth one is tried, it gives error.
4) “Data Structures” and “Algorithms” are deleted.