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.