Project 2: Improve an Open Source Java Project
In this project, you will be updating an existing open source Java project by either fixing a bug or adding a new feature. By Monday 4/27 you should have confirmed with me:
- What project you are working on, and
- What bug or new feature you plan on fixing
You may change your mind after 4/27 with approval from me. You may work with a partner.
Instructions
- Create a github account (you will need to upload your source code here for full credit)
- Pick a project & an improvement
- Plan your change (involves understanding the parts of code related to your bug or feature). I recommend using File search and the debugger to help understand the code.
- Make your change
- Test your change
- Upload your modified code to github
- Export your change as a zip file & upload to moodle, along with the url to your github project.
- Extra credit: perform a pull request to add your change into the official project source code.
For more information on git, see:
Directions for importing DrewSuperMario from Github
- Create a github account
- Install SourceTree
- Create a repo for your team by forking DrewSuperMario: https://github.com/emhill/DrewSuperMario.git. (If you’re not working with a partner, you can skip this step and just clone the repo to your local machine.)
- And then clone the repo to your local machine using SourceTree:
New Repo -> Clone from URL
- Import your new clone into Eclipse by navigating to the path with
File > Import > Existing Projects Into Workspace > Select root directory >
& navigate local git path (not URL)
Team workflow using git:
- Pull latest changes in source tree
- Make changes in eclipse – run to test
- Stage the changed files in source tree
- Commit changes with an informative commit message & push to repo
Once you’re ready to share your changes with the class, then issue a pull request (directions to come).
Example projects
You may select any open source Java project. Below are some recommended programs that I have already imported into Eclipse.
Ideas to improve:
- Improve code design
- Implement Mario dying
- Support fast running? (may already do this)
- Add help menu or instructions within the game
Jajuk Advanced Jukebox
JFreeChart Library
Ideas to improve: