= What is a project? =
A BOINC project consists of the following components:
* A [DataBase database]
* A [ServerDirs directory structure]
* A [ProjectConfigFile configuration file], which specifies [ProjectOptions options], [ProjectDaemons daemons], and [ProjectTasks periodic tasks].
Multiple BOINC projects can exist on the same host. This can be handy for creating separate projects for testing and debugging.
The easiest way to create a project is with the [MakeProject make_project] script, which creates all the above components.
A project must be '''stopped''' when maintenance activities (e.g. changing the configuration file or database) are being performed. This is done using [StartTool project control scripts].
== The master URL ==
Each project is publicly identified by a '''master URL'''. The '''master page''' at this URL has two functions.
* It is the home page of the project; when viewed in a browser it describes the project and contains links for registering and for downloading the core client.
* It contains XML elements of the form
{{{
http://host.domain.edu/cgi/schedulerhttp://host2.domain.edu/cgi/scheduler
}}}
that give the URLs of the project's scheduling servers. These tags can be embedded within HTML comments. The BOINC core client reads and parses the master page to locate scheduling servers. If at any point it is unable to connect to any scheduling server for a project, it rereads the master page. This mechanism lets a project move or add scheduling servers.
Some ISPs remove HTML comments from downloaded pages. To avoid problems with that, an alternative syntax is allowed:
{{{
}}}
You should still use the `` format too, since older clients won't parse this new syntax.
The [MakeProject make_project] script creates a master page in `project/html/user/index.php`. This file includes the file 'schedulers.txt', which contains the list of `` (and ``) elements.