Group Project Collaboration

For projects that will have multiple authors, use a distributed version control system like git (http://git-scm.com). Keep your code on your personal machines or CISE user space and merge changes with your teammates. This way, you don't need to create a new Unix group nor request project space for your team.

Oracle Database Collaboration

In order to work together on a project using the same database, exactly one student must be chosen as the project lead. They will be granted "create role" privileges and will then be able to give other students access. Email consult@cise.ufl.edu with the project leader's username and instructions to grant the "create role" privilege for their Oracle Database account. It is then the reponsibility of the student to know how to manage user permissions in their databases.

Example Collaboration Scenario

John, Mei, Amar, and Shahla are assigned to the same team and decide to create an e-commerce site using Oracle and PHP.

Shahla, the project leader who has the "create role" privilege so that she can assign the other teammates permissions to use her database, is most eager to get started. She runs down to E114, hops on a CISE Ubuntu machine and creates her workspace.

   theshahla$ mkdir -p public_html/ecommerce/docs
   theshahla$ cd public_html/ecommerce

After drafting the project requirements, she saves them to docs/requirements. Then, she creates a git repository and adds her work.

   theshahla$ git init . && git add .
   theshahla$ git commit -m "Added requirements"

Shahla tells John, Mei, Amar what she's done and the location of her git repository so they can clone it.

Amar has never used git before, but thinks it's pretty straight forward after reading an introductory tutorial he found through Google, such as this tutorial.

   iamamar$ git clone /cise/homes/theshahla/public_html/ecommerce
   Initialized empty Git repository in /cise/homes/iamamar/public_html/ecommerce/.git/
   iamamar$ ls -F ecommerce
   docs/ htaccess main.php* library/

Amar adds some classes for the data models and adjusts the view a bit then commits his code.

   iamamar$ git commit -a -m "classes for data models and modified view"

Mei and John are working as a pair. They decide to get the latest changes from everyone and do a lot of testing.

   meimeimei$ pwd
   /cise/homes/meimeimei/public_html/dbproj
   meimeimei$ git pull /cise/homes/shahla/public_html/ecommerce
   meimeimei$ git pull /cise/homes/iamamar/public_html/ecommerce

It turns out Amar had the all the latest changes, so the first git pull was unnecessary.

Feedback