--- title: "Jam 05 - Summary and Submission" tags: - 3 ๐Ÿงช in testing - 4 ๐Ÿฅณ done - classes - uml - arraylist - documentation --- <!-- markdownlint-disable line-length single-h1 no-inline-html --> <!-- markdownlint-configure-file { "ul-indent": { "indent": 4 }, "link-fragments": {"ignore_case": true} } --> {%hackmd dJZ5TulxSDKme-3fSY4Lbw %} # Summary Throughout this jam, you've built a strong foundation in object-oriented programming concepts: 1. **Class Design & UML** - Created professional UML class diagrams - Learned proper class design principles - Mastered draw.io for documentation - Understood relationships between classes 2. **Object-Oriented Programming** - Implemented encapsulation with private fields and public methods - Created constructors and getter methods - Used toString for object representation - Managed object relationships 3. **Collection Management** - Worked with ArrayList for dynamic collections - Implemented search and management operations - Applied defensive copying principles - Handled collection validation 4. **Professional Development** - Used test-driven development - Followed documentation best practices - Applied proper error handling - Created maintainable, well-structured code ## Looking Ahead In the next jam, we'll build on these foundations as we explore: - Inheritance and polymorphism - Abstract classes and interfaces - More complex object relationships - Advanced collection operations # Project Structure The following new files should be in your repository: ```text csci205_jams/ โ”œโ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ main/ โ”‚ โ”‚ โ””โ”€โ”€ java/ โ”‚ โ”‚ โ””โ”€โ”€ jam05/ โ”‚ โ”‚ โ”œโ”€โ”€ Product.java โ”‚ โ”‚ โ”œโ”€โ”€ ProductCatalog.java โ”‚ โ”‚ โ””โ”€โ”€ Jam05-uml.drawio.png โ”‚ โ””โ”€โ”€ test/ โ”‚ โ””โ”€โ”€ java/ โ”‚ โ””โ”€โ”€ jam05/ โ”‚ โ”œโ”€โ”€ ProductTest.java โ”‚ โ””โ”€โ”€ ProductCatalogTest.java ``` # Submission Before submitting your work, complete this final checklist: 1. **Code Completeness** - All required files are present and in correct locations: - `Product.java` with working implementation - `ProductCatalog.java` with collection management - `Jam05-uml.drawio.png` UML diagram - All test files in correct location - All files compile without errors - All programs run correctly 2. **Documentation** - UML diagram is clear and complete - All code follows course standards 3. **Testing** - All test cases pass (5 Product tests, 8 ProductCatalog tests) - Product class works correctly - ProductCatalog manages collections properly - New price range feature works as expected 4. **Version Control** First, push your feature branch as a backup: ```bash # Ensure all changes are committed git status # Push your jam05 branch to remote git push origin jam05 ``` Then, merge your work into main: ```bash # Switch to main branch git checkout main # Merge your jam05 branch into main git merge jam05 # Push main to remote git push ``` :::warning ๐Ÿšจ **Important Submission Notes** 1. Branch Management: - Main branch should contain your final, working submission - Keep your `jam05` branch until grading is complete 2. Repository Status: - Both branches should be pushed to GitLab - Working directory should be clean - The instructors can only grade what's in your GitLab repository ::: :::warning ๐Ÿšง **Important** Always verify your work appears on [gitlab.bucknell.edu](https://gitlab.bucknell.edu/). The instructors and graders can only see and grade what you've properly pushed to your remote repository. :::