Comparing Parcel Shipping Quotes is a practical Java project for learners who want interfaces and polymorphism to support a useful decision. Build a terminal program that quotes synthetic parcels, keeps eligibility separate from price, and preserves every cheapest choice in a complete quotation file.
The course combines two Guided Labs with one Challenge. First, implement flat and stepped prices behind a shared interface. Then compare rule objects, register another configured rule without rewriting the comparator, and save the actual output to work/quotes.tsv. The Challenge uses different parcels and rates with the same mechanisms. Each lab starts independently with its own source framework and data.
What You Will Learn
After completing this course, you will be able to:
- implement replaceable shipping rules using a Java interface and
implements; - separate eligibility from integer cents, including valid zero-cent offers;
- calculate prices in integer grams and cents, rounding every started weight step upward;
- keep all tied lowest-price rules and distinguish a valid lack of offers from an invalid weight;
- add a parameterized instance of an existing rule while keeping the comparison workflow unchanged;
- preserve parcel IDs and original inputs, and save complete per-parcel quotes and winning choices.
Who This Course Is For
This course is for Java learners ready to practise classes and polymorphism in a small, complete terminal application.
Prerequisites: Java classes, constructors, methods, lists, basic polymorphism, and basic terminal navigation. The Guided Labs introduce interface, implements, explicit quotation results and the required integer-step calculation.
Learning environment: LabEx provides a browser-based WebIDE with an integrated terminal, a Java compiler, starter source files and synthetic parcel and rate records. No local Java or build-tool installation is needed. Application commands, labels and output remain in English.
Frequently Asked Questions
Are these live carrier prices?
No. All rates are synthetic teaching data. The program performs real Java calculations and produces a real quotation file using the supplied rules; it does not contact a shipping service.
Do I write the entire application from scratch?
No. The launcher and input readers are prepared. You complete eligibility, flat and stepped pricing, and interface-based comparison. A valid parcel with no eligible rule remains a normal result, while an invalid weight rejects the batch before quotation output.
How does the Challenge extend the Guided Labs?
It changes parcel identities, weights and rate parameters, including ties and a parcel with no offer. You combine the same taught rules to deliver complete quotes while preserving the original records. Each environment is independent, so no files from a previous lab are needed.

