# Your First Project (https://yapl.app/en/docs/getting-started/first-project)

# Creating Your First Project

Projects are the core organizational unit in YAPL. Each project contains plans, tasks, resources, and team assignments. This guide walks you through creating and configuring your first project.

## Before You Begin

Before creating a project, ensure you have:

1. **At least one team created** - Projects are assigned to teams, not individuals
2. **Workspace configured** - Basic workspace settings in place
3. **Understanding of project scope** - Basic timeline and requirements

<Callout type="info">
Workspace owners can create projects without team assignment. Regular members must assign at least one team.
</Callout>

## Creating a New Project

### Step 1: Navigate to Projects

1. Click **Projects** in the sidebar navigation
2. Click the **Create Project** button
3. The project creation wizard opens with 4 steps

### Step 2: Team Assignment

Select which teams will have access to this project:

| Field | Description | Requirements |
|-------|-------------|--------------|
| Teams | Select teams that will work on this project | 1-10 teams (required for non-owners) |

Teams control who can view and edit the project. You can assign multiple teams for cross-functional collaboration.

### Step 3: Basic Information

Enter the core project details:

| Field | Description | Requirements |
|-------|-------------|--------------|
| Project Name | Descriptive name for your project | 3-255 characters, required |
| Description | Overview of project goals and scope | Up to 1,000 characters, optional |
| Project Code | Unique identifier | Auto-generated or custom, pattern-validated |
| Status | Current project phase | Planning (default), Active, On Hold, Completed, Cancelled |

The project code is automatically generated based on your workspace's [project numbering configuration](/docs/getting-started/workspace-setup#project-numbering), but you can customize it if needed.

### Step 4: Timeline & Budget

Set the project schedule and financial parameters:

| Field | Description | Requirements |
|-------|-------------|--------------|
| Start Date | When work begins | Date picker, optional |
| End Date | Expected completion | Must be after start date |
| Budget | Estimated project cost | Up to 999,999,999.99, optional |
| Currency | Budget currency | 3-letter ISO code (defaults to workspace currency) |

<Callout type="warn">
If you specify both dates, the end date must be after the start date.
</Callout>

### Step 5: Client & Location (Optional)

Add client and site information:

| Field | Description | Requirements |
|-------|-------------|--------------|
| Client Name | Project client or owner | Up to 255 characters |
| Location | Project site address | Up to 500 characters |

## Project Statuses Explained

Projects follow a defined lifecycle:

```
PLANNING → ACTIVE → ON_HOLD (optional) → COMPLETED
    ↘ CANCELLED (terminal)
```

| Status | Description | Next States |
|--------|-------------|-------------|
| **Planning** | Initial setup and preparation | Active, Cancelled |
| **Active** | Work in progress | On Hold, Completed, Cancelled |
| **On Hold** | Temporarily paused | Active, Cancelled |
| **Completed** | Work finished | None (terminal) |
| **Cancelled** | Project terminated | None (terminal) |

<Callout type="info">
Only **Active** projects can be put on hold. Completed and Cancelled are terminal states. Archiving is a separate operation for long-term storage.
</Callout>

## After Project Creation

Once your project is created, you can:

### View Project Dashboard

The project detail page shows:
- **Overview Tab**: Key metrics, status, timeline
- **Plans Tab**: Associated planning documents
- **Team Tab**: Assigned teams and access
- **Activity Tab**: Recent changes and updates

### Create Your First Plan

Plans are schedules that contain tasks, timelines, and resource assignments:

1. Open your project
2. Click the **Plans** tab (or navigate to **Plans** in sidebar)
3. Click **Create Plan**
4. Enter plan name and initial version name
5. Start adding tasks

### Assign Additional Teams

To modify team assignments:

1. Open project settings
2. Navigate to team assignment section
3. Add or remove teams as needed

## Project Metrics

The project dashboard displays key information:

- **Budget Status**: Spent vs. remaining budget
- **Timeline Progress**: Days elapsed and remaining
- **Task Completion**: Progress across all plans
- **Team Activity**: Recent changes by team members

## Best Practices

### Naming Conventions

- Use clear, descriptive project names
- Include client or location identifiers if helpful
- Avoid special characters that might cause issues

### Team Assignment

- Assign only teams that need access
- Consider creating project-specific teams for large projects
- Use the Workspace Owners team sparingly

### Budget Planning

- Set realistic budget estimates early
- Use your workspace's default currency for consistency
- Update budget as project scope changes

### Status Management

- Start projects in **Planning** status
- Move to **Active** when work begins
- Use **On Hold** for temporary pauses with clear resume dates
- Mark **Completed** only when all work is finished
- Use **Cancelled** if project won't proceed
- Archive completed projects for long-term storage

## Troubleshooting

### Cannot Create Project

- **No teams available**: Create at least one team first
- **Permission denied**: Contact workspace owner for access
- **Validation errors**: Check all required fields are filled correctly

### Cannot Change Status

- **Can't put on hold**: Only Active projects can be put on hold
- **Can't activate**: Check if project is in Planning status

### Team Assignment Issues

- **Team limit reached**: Maximum 10 teams per project
- **Team not visible**: Ensure you're a member of the team

## Next Steps

With your first project created:

1. **[Create a Plan](/docs/user-guides/plans)** - Set up project schedules
2. **[Add Tasks](/docs/user-guides/tasks)** - Define work items
3. **[Invite Team Members](/docs/getting-started/inviting-team)** - Collaborate with your team
4. **[Set Up Gantt Charts](/docs/user-guides/gantt)** - Visualize timelines