Design and Development  Capstone

Project 2


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.


Details: 

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.


Group project:

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.


Credit:

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.
  1. One student in the group make a channel in slack for the group. Invite the group and me. (you can create one with just you all if you want to discuss privately, but I want a channel to be able to communicate with each project group.
  2. at least One student needs to show me the project working on their machine.  Make a fork of the original project for your group to work on.
  3. One student will connect a project board (Jira,  trello or one of the others - which ever the group decides) to the channel setup in (1) above. Be sure that each member of the group has access to the board. Make sure I have access as well. Group members need write/modify access, I'm fine with observer access if you want to set it up that way.
  4. The other student (as recorder for the team rather than on their own initiative) need to do the write up for proposed issues that the team will fix. (include both a title/summary and the github or gitlab issue number)
    1. one first issue
    2. two more group issues (one additional group issue for groups smaller than 4 people)
    3. one individual issue for each team member
    4. 3 backup issues in case someone chose an issue that turns out to be much more difficult than expected.
  5. submit this document via the slack channel you set up in (1) above

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:
  • A brief summary of the project
  • Directions on how to run the project including the github fork of the project
  • A discussion of the issues the student personally worked on
  • how the student solved/contributed to solving the issues (if you worked as part of a pair/team programming, you still contributed to the solution)

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.