Summary: You and your group will choose an existing open source project that is not too small (and I'll recommend not too large as well) which has open issues. You will fork the repository, and fix several of the issues, writing automated tests for your fixes.
The repository you choose needs to be an open source project on github.com or gitlab.com. It must be at least 13,000 lines of code. You can check how many lines of code for a repository using scc: https://github.com/boyter/scc The project needs to have Continuous integration and automated testing setup and needs to have at least 15 open issues.(The fine print: each group must have a unique project - not being worked on by any other group. The instructor needs to approve the project, must not violate the BSU code of conduct. If you want me to be able to do any trouble shooting make the project python, C++, Java, go, or lisp. - any thing else and I'll do my best googling). I suggest a ceiling of 25,000 lines of code unless your group is both dedicated and experienced.
This is a group project. Though each person will have some part that they are ultimately responsible for, because this is a group project, you make work as closely as you all wish up to and including pair programming. You are a team making this happen.
This project is worth half of the project grade, so 25% of your semester grade in all.
Here is the schedule of deliverables. Several of you expressed during the sprints for project1 that you all would like to have had more insight into where we were going with the project, so I am putting my whole tentative plan here. I reserve the right to make adjustments and clarifications about later deliverables as we get closer.
Title |
Details/Deliverable |
Due Date |
Pick Project |
Work together with your group to pick a project the meets the
specifications above. The project must be approved by the
instructor. Don't pick it until someone gets it working on their
machine. |
March 21st/22nd |
Set things up/ works on your machine. |
|
March 28/29th |
First Issue |
group will demonstrate (with code pushed to main project branch)
solving their first issue Grading will be based on in class demonstration to instructor, a solid use of your project board, and git commit and commit comments and automated tests for this fix. |
April 5th/6th |
Status report |
One page written Status report on each team members' progress,
blockers and accomplishments. This status report should line up with
the state of the project board.
Submit @me on the team slack channel |
April 15th |
Fix the rest of the issues |
Each group will fix their additional group issue(s) and each
individual will fix their individual issues - and each fix will be
accompanied by additional tests. If you are doing Graphical User
Interfaces, then you might need extra services for help testing.
Have a look at This
list of GUI automated testing resources. They are not
necessarily in order of usefulness |
April 16-the final Exam period for your group |
Final Report and presentation |
Team will work together during the
designated final exam period to report on their project and their
fixes in an oral presentation. |
Final Exam Period |
Final Code and Written Report |
Each student will produce a written report with:
IF your group wants you can share the green text Item. A team member who was less involved in other parts of the project might write this up. Items in standard text color are to be done individually. |
A Day or two after the final |
Blue text will be considered part of
your final exam grade. The code and git commit comments will be part of the project grade with all of the earlier deliverables, but the final oral and written reports will constitute part of your final exam along with a shortish take home exam. |