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 around 10,000 lines of code. (at least 6K minimum for undergrads, 10K minimum for grads). 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)
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 25th/26th |
Set things up/ works on your machine. |
|
April 1st/2nd |
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. Lets use the following adjustment to the in class original plan. Lets do a screen share demo in slack with me and your group. You show me it working and each of you will tell me what your contribution to this solution was. |
April 8/9th |
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. For each person in the group
I expect that you will have a bit done, but it might be something like "I understand how 7 of these 14 files work together but I'm still finding the exact location of the bug" |
April 17th by 3pm as a single
document on your team's slack channel |
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 your
final exam. 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 your final exam unless the current virus inspired closures drag on in which case we will have to reevaluate and possibly add a more traditional exam instead. |