<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
<style type="text/css">
/* <![CDATA[ */ @import "/branding/css/tigris.css"; /* ]]> */
</style>
  <script src="/branding/scripts/sc.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="/branding/css/print.css" media="print" />

  <title>About the Project Home page</title>
 </head>

 <body class="docs" onLoad="self.focus()">
  <div class="docs" id="projecthome">
   <h2>About the Project Home page</h2>

   <div id="toc">
    <ul>
     <li><strong><a href="/nonav/servlets/HelpTOC">Help index</a></strong></li>
    </ul>

    <ul>
     <li><a href="/nonav/docs/Learning.html">Learning about projects</a></li>

     <li>
      <a href="/nonav/docs/ProjectMemberResources.html">Project resource for members</a> 

      <ul>
       <li>Project Home Page</li>

       <li><a href="/nonav/docs/ProjectNews.html">Project News</a></li>

       <li><a href="/nonav/docs/ProjectMemberList.html">Project Membership</a></li>

       <li><a href="/nonav/docs/ProjectMail.html">Project Mailing Lists</a></li>

          <li><a href="/nonav/docs/ProjectDocuments.html">Project File sharing</a></li>

       <li><a href="/nonav/docs/ProjectSource.html">Project Source Code</a></li>

          <li><a href="/nonav/docs/ProjectIssues.html">Project Issue Tracking</a></li>
      </ul>
     </li>

     <li><a href="/nonav/docs/hostedtools.html">Hosted tools</a></li>

     <li><a href="/nonav/docs/ProjectAdd.html">Creating a new project</a></li>
    </ul>
   </div>

   <p>The <b>Project Home</b> page is the project's focal point with information that the project owner wishes to share with members and nonmembers alike. Because project home pages can be customized, these vary greatly, depending on the project owner's preferences. At a minimum, the owner should include content describing the nature and goals of the project. Interested users can also use the project's links in the navigation bar to learn more about the project, including subscribing to that project's mailing lists.</p>

   <p>If you are not already a member of the project, you will see the <b>Join this project</b> and <b>Watch this project</b> links. The <b>Join this project link</b> allows you to join the project. Once you have joined the project, you'll find additional links on th <b>Project Home</b> page that you can use to request a new project role. The <b>Watch this project</b> link allows you to add a link to the project's home page to your <b>Start page</b> without becoming a member. This gives you quick access to projects that you want to follow but are not ready to join.</p>

   <h3>Not yet a member of any projects?</h3>

   <p>If you are not yet a member of any project, use the links below to follow the process of learning about projects and joining.</p>

   <ul>
    <li><a href="/nonav/docs/ProjectMembershipRequest.html">Becoming a project member</a></li>

    <li><a href="/nonav/docs/ProjectRoles.html">About project roles</a></li>
   </ul>

   <div class="courtesylinks">
    <p><a href="#toc">Top</a> | <a href="/nonav/servlets/HelpTOC">Help index</a></p>
   </div>
  </div>
 </body>
</html>


