Repository navigation
v2
Phase 2 Writeup
Team Members:
- Sasha Nguyen
- Matthieu Perez
- Rebecca Metzman
Additional Tasks for Grading
In addition to implementing the tasks described above, your team should also write a brief report that includes the following:
The Additional Tasks that you would like graded for this phase. Please keep in mind that we will only grade three Additional Tasks for a group of three, and four Additional Tasks for a group of four. If you list more than that, the tasks that get graded will be decided at the grader’s discretion.
- 2.6
- 2.8
- 2.11 (1.10)
Changes Made to the Provided Code
2.1
Implemented a caching mechanism in the getContributorName method by adding a new private Map<String, String> contributorNameCache. The cache improves performance by storing previously retrieved contributor names, reducing the need for repeated network calls.
2.2
- Added validation checks to ensure that the
WebClient,login, andpasswordparameters are not null. - Added error handling for cases when the
WebClientcannot connect to the server, returns null, or provides malformed JSON data. - Updated methods to throw
IllegalStateExceptionorIllegalArgumentExceptionwhere appropriate to match the test cases. - UserInterface Class: Updated the
start,createFund, andmainmethods to handle exceptions.
2.3
- Added the class
ContributorAggregate.javato deal with aggregating donations. - Added a
displayAggregatedDonationmethod to theUIclass. - Added an
aggregatedDonationscache to store the aggregated donations.
2.6
- Added the method
getAggregatedDonations()to aggregate donations by fund, cache the results, and order them by total donation amount in descending order. - Updated the
onResume()method. - Created a new class to hold aggregate data for donations.
2.8
- Improved user prompts for commands like logging out.
- Added new methods for managing user sessions effectively.
2.11 (1.10)
- Added a
DateTimeFormatterfield calledformatterto change the format of the date displayed.
Known Bugs or Issues
List any known bugs or issues with the tasks you attempted in this phase.
Instructions
Instructions on how to start each app, if you changed anything from the original version of the code, e.g. the name of the Java main class or JavaScript entry point, arguments to the programs, etc. If you did not change anything, you may omit this.
Team Member Contributions
- Rebecca Metzman: Worked on 2.3 and 2.11 (which we did 1.10 for).
- Sasha Nguyen: Worked on 2.1 and 2.8.
- Matthieu Perez: Worked on 2.2 and 2.6.
The writeup should be committed to your GitHub repo as a plain-text or .md file named “Phase 2 writeup” by the deadline stated above.