CS314 Fall 2014
Group Project Description

1. Goals

The project emphasizes several important aspect of modern day, large scale software development:

The project is divided in four parts. The first three correspond to the iterative development of a client-server chat application. The fourth part corresponds to the development of a standalone Android application.

The chat project involves using the Object Client-Server Framework (OCSF) provided with the textbook and incrementally adding features that are described in chapters 3, 4, 6, and 7, of the Lethbridge/Laganiere book, and those added by the instructor. These chapters correspond to chapters 9--13 of your custom textbook. More information about the Android project will be available later.

2. Team selection

Select your team members and send an email to cs314@s.colostate.edu by midnight, September 23. The email must contain your full names, EIDs, and CS login ids. We use this information to create Unix groups and project shared areas in the cs314 directory space. If you are unable to find a team, send an email and we will put you in a team.

Update: Sep 29: Team information is available in RamCT. Go to "Course Content" and click on the link called "Sep 29: Project Teams". The link is only available from RamCT because we didn't want to make the EID's public. The EID's are available so that you can contact your teammates using RamCT email. Contact your teammates ASAP.

3. Using version control software

We will use GitHub for our projects. We have created an organization called CSU-CS314-FA2014, and we will create private repositories for each team under that organization. We need to add each student to the repositories. For that we need to have your individual Git accounts. You must first create an account for yourself at https://github.com. Do not create any repository - these have to be created in the CS314 organization in order to be private. You then need to send your GitHub user name to cs314@cs.colostate.edu. You will then be added to your appropriate team in the organization, and have read/write access to your team's repository. Your personal GitHub account user name and password will be needed to interact with the GitHub repository to clone it, fetch/pull information from it, and push to it. You will be notified once the teams and repositories are created.

Here is a useful reference on GitHub prepared by Dr. Geri Georg for CS314, Spring 2014. Dr. Ghosh has adapted the document for Fall 2014.

Each assignment will have points allocated for the entire team to ensure that GitHub is being used. If the commit log shows that a particular team member didn't check in any code ever, or submitted code only before the deadline, there will be a severe penalty for the team member. You must use GitHub and submit evidence (e.g., a commit log) that each member used the software to check in and check out code. The commit log will help us determine a number of things, such as (1) level of individual participation, (2) adequate use of GitHub. If the document shows an inadequate amount of checkin and checkout, the team may lose points. If an individual has no corresponding entry in the log, this individual may lose a lot of points for not participating in the project (i.e., the penalty is not limited to the points for submitting the commit log).

4. Peer reviews and self-evaluation

With each phase of the project, you must turn in a self-evaluation and peer review of the other team member. The instructor will use these to determine individual grades of each team member. Grades may be adjusted up or down. If someone has done no work for a project, the instructor reserves the right to award no points to this person.

4.1. Peer review

Describe in a few paragraphs your opinion of your teammates' work and assign a letter grade. If you want, you may turn in the reviews separately for confidentiality. The reviews will be used to determine the overall grade for each team member. Not turning in the peer review will result in the loss of 5 points. A lazy review (e.g., just saying "good job done" or "Grade A", but nothing else) will also result in the loss of 5 points.

4.2. Self evaluation

Also perform a self-evaluation on the same lines as the review of your teammate(s). Each self-evaluation is worth 5 points. If you don't turn in the self-evaluation or if it does not contain the information required, you will lose points.

Put your name and group name at the top of the document.