MP3 challenges you to complete a similar set of tasks as MP2, but with less guidance. You’ll be adding several new features to your app, including implementing API server and client support and updating your application user interface.
The learning objectives of MP3 are similar to MP2. Specifically, after completing MP3 you should be able to:
Your submission ID and team should appear below.
Like MP2, MP3 has two deadlines. We provide 10 points for getting started on the MP promptly and earning a certain number of points before the early deadline. For MP3, you must earn 40 points by the early deadline. The remainder of the MP is due a few days later.
For MP3 the deadlines are:
MP3 also has an extra credit deadline. If you submit a fully-completed MP3 by this date, you will earn a 105 / 100.
Note that the extra credit deadline is designed to encourage some students to finish early and leave more time for tutors to support the rest. As such, we will not provide additional support around the extra credit deadline. Earning the early extra credit requires meeting the early deadline.
You will receive the MP3 test suites via email.
MP3Test.kt
to the app/src/test/kotlin/edu/illinois/cs/cs124/ay2024/mp/test/
directory in your machine project.MP3Test.java
to the app/src/test/java/edu/illinois/cs/cs124/ay2024/mp/test/
directory in your machine project.Next, you’ll want to reconfigure grade.yaml
in the root directory of your project to request that we grade MP3.
Note that, like MP1 and MP2, your app will not compile after installing the test suites.
There are a few things you need to add to get it to compile.
These steps are covered on the MP3 lesson.
To complete MP3 you’ll add support for marking RSOs as favorites to your application.
This will require adding routes to your API server to update and query whether an RSO is a favorite, support in your API client for using those routes, and modifications to the RSOActivity
and MainActivity
that use this information.
We have provided six test cases to guide your development.
test0_ServerGETAndPOSTFavorite
and test1_ClientGetAndSetFavorite
test your new server routes for retrieving and updating favorite RSOs.
test2_FavoriteButton
and test3_FavoriteSort
test that the UI-related components of favorite RSO support work properly.
test4_testRelatedRSOs
and test5_RelatedRSOsUI
test support for determining and displaying related RSOs, a briefly-specified final project challenge.
You will probably want to complete the tests in order.
Grading for MP3 is broken down as follows:
detekt
(Kotlin) or checkstyle
(Java) violationstest0_ServerGETAndPOSTFavorite
test1_ClientGetAndSetFavorite
test2_FavoriteButton
test3_FavoriteSort
test4_testRelatedRSOs
test5_RelatedRSOsUI
Note that the final two related RSO tests are very briefly specified and expected to be challenging, but also not worth many points.
You can estimate your grade at any time by using the Grade task available in Android Studio. This is an estimate, not an official score.
You submit MP3 by pushing to GitHub, in the same way that you did for MP2, MP1, and MP0.
However, make sure that you have configured grade.yaml before pushing.
We grade the checkpoint you have configured in grade.yaml
.
So make sure that is set up to grade MP3 once you are ready.
Please review the CS 124 policies on collaboration.
All submitted code will be checked for cheating. Cheaters will receive stiff penalties. Hard-working students who are struggling honestly for their grade demand it.
If you need to restore the original test suites, please download them below:
MP3Test.kt
MP3Test.java
You can view your official MP3 scores below.