---
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.
:::