# FAQ

## Questions this page answers

Conduit is a social blogging site with authentication, article feeds, profiles, comments,
favorites, and account settings.

Use this page to choose the answer that matches what you are trying to do:

| If you need to… | Go to |
| --- | --- |
| understand the product and its main features | [What is Conduit](doc:what-is-conduit) or [What can you do with Conduit](doc:what-can-you-do-with-conduit) |
| prepare for your first sign-in or registration | [Your first day](doc:your-first-day) |
| sign in | [Sign in](doc:sign-in) |
| create an account | [Create an account](doc:create-an-account) |
| choose between the article feeds | [Find articles in Your Feed and Global Feed](doc:find-articles-in-feeds) |
| understand a loading or unavailable state | [Authentication and loading messages](doc:authentication-and-loading-messages) or [Loading and unavailable states](doc:loading-and-unavailable-states) |
| update your profile settings | [Update settings](doc:update-settings) |
| leave the application | [Sign out](doc:sign-out) |
| investigate an error | [General error messages](doc:general-error-messages) or [Common issues and solutions](doc:common-issues-and-solutions) |

Start with **Before you start** when you need to know which access state or information is
needed first.

## Before you start

Authentication identifies the account that can use protected parts of Conduit. The Login
and Register routes are available to unauthenticated users, while Settings requires an
authenticated user.

Have the following in place before you begin:

| You need | Why it matters |
| --- | --- |
| An unauthenticated session for Login or Register | The authentication routes allow access when the current user is not authenticated. |
| An authenticated session for Settings | The Settings route requires authentication. |
| Your email address and password for Login | **Email** and **Password** are required on the Login form. |
| A username, email address, and password for Register | **Username**, **Email**, and **Password** are required on the Register form. |
| Your current profile information for Settings | Settings fills the form from the current user when that user is available. |

Conduit authenticates users with JWT-based authentication. The application uses the token to
identify the authenticated user.

With the access state and account information ready, continue to **Sign in or create an
account**.

## Sign in or create an account

Use Login to enter an existing account, or Register to create one. Login asks for **Email**
and **Password**; Register adds **Username**.

**Prerequisites**

- For Login, have the existing account's email address and password.
- For Register, have the username, email address, and password for the new account.

**Steps**

1. Choose the route that matches your task:

   | If you want to… | Use |
   | --- | --- |
   | enter an existing account | [Sign in](doc:sign-in) |
   | create an account | [Create an account](doc:create-an-account) |

2. Follow only the sequence for the route you chose:

   | Route | Sequence |
   | --- | --- |
   | Login | 1. If you need a new account, select **Need an account?**; otherwise, enter a value in **Email**, enter a value in **Password**, and select **Sign in**. |
   | Register | 1. If you already have an account, select **Have an account?**; otherwise, enter a value in **Username**, enter a value in **Email**, enter a value in **Password**, and select **Sign up**. |

**Sign in** and **Sign up** are disabled while the required form values are not valid.

**Result:** A successful Login or Register request takes you to Home. If the request is
rejected, the returned error text appears in the error list on the authentication page.

## Use Home and its feed states

Home is the article-browsing surface: it offers **Your Feed**, **Global Feed**, popular tags,
and a paginated article list.

**Prerequisites**

- To use **Your Feed**, be signed in.
- To browse the public article list, open Home and use **Global Feed**.

**Steps**

1. Open Home.
2. Choose the feed that answers your question:

   | If you want to… | Select |
   | --- | --- |
   | read articles from users you follow | **Your Feed** |
   | read the global article list | **Global Feed** |

3. Use the **Popular Tags** area to choose a tag when a tag is listed.

While tags are loading, the page displays `Loading tags...`. If no tags are available after
loading, it displays `No tags are here... yet.`

While articles are loading, the list displays `Loading articles...`. When the following feed
has no articles, the list displays `Your feed is empty. Follow some users to see their articles here, or check out the Global Feed!`.
When the other article list is empty, the list displays `No articles are here... yet.`

**Result:** Home shows the selected feed, its article results, or the loading or empty-state
message that matches the current list state.

For account maintenance, continue to **Update Settings or sign out**.

## Update Settings or sign out

Settings is the account-maintenance surface for the profile picture URL, username, short bio,
email address, and password.

**Prerequisites**

- Sign in before opening Settings.
- Have the profile values you want to keep.

The Settings fields are:

| Field | Use |
| --- | --- |
| **URL of profile picture** | Enter the profile picture URL. |
| **Username** | Enter the account username. |
| **Short bio about you** | Enter the short biography. |
| **Email** | Enter the account email address. |
| **New Password** | Enter a new password when you want to change it. |

**Steps**

1. Open Settings.
2. Choose the action that matches your task:

   | If you want to… | Select |
   | --- | --- |
   | save profile changes | **Update Settings** |
   | leave the account | **Or click here to logout.** |

3. For profile changes, enter the new values in the applicable fields.
4. For a password change, enter the new value in **New Password**.
5. Select **Update Settings**.

When you are not changing the password, leave **New Password** empty. The update omits the
password in that case.

**Result:** A successful settings update takes you to the updated user's profile. Selecting
**Or click here to logout.** logs you out and takes you to Home. If the settings update is
rejected, its returned error text appears in the error list.

If an authentication, loading, or network message appears, continue to **When loading or
errors occur**.

## When loading or errors occur

Use the message you can read on screen to choose the next help page. The application displays
`Each returned error string is rendered as a list item.`

| What you see | What to do next |
| --- | --- |
| `Loading...` | Open [Authentication and loading messages](doc:authentication-and-loading-messages). |
| `Connecting...` | Wait for authentication to retry, or open [Authentication and loading messages](doc:authentication-and-loading-messages). |
| `Auth unavailable - retrying automatically` | Open [Loading and unavailable states](doc:loading-and-unavailable-states). |
| `Unable to connect. Please check your internet connection.` | Check the connection, then open [Common issues and solutions](doc:common-issues-and-solutions). |
| A returned API error string | Match the text in [General error messages](doc:general-error-messages). |

When authentication is temporarily unavailable, the header displays `Connecting...` and the
title `Auth unavailable - retrying automatically`. Authentication retries automatically.

When you have identified the message, continue to the linked task or troubleshooting page.

## Continue with the right help page

Choose the destination that matches your next action:

| Your next action is to… | Continue with |
| --- | --- |
| sign in | [Sign in](doc:sign-in) |
| create an account | [Create an account](doc:create-an-account) |
| find articles in a feed | [Find articles in Your Feed and Global Feed](doc:find-articles-in-feeds) |
| browse by tag | [Browse articles by tag](doc:browse-articles-by-tag) |
| update profile settings | [Update settings](doc:update-settings) |
| sign out | [Sign out](doc:sign-out) |
| change your password | [Change your password](doc:change-your-password) |
| investigate an authentication or loading message | [Authentication and loading messages](doc:authentication-and-loading-messages) |
| investigate a general error | [General error messages](doc:general-error-messages) |
| solve a common issue | [Common issues and solutions](doc:common-issues-and-solutions) |

**Result:** You have the next task or troubleshooting page for the question you are answering.
