# General Features

This page covers the cross-cutting features available to all users: authentication, default landing page, and access-controlled pages that demonstrate Shopfoo's security model.

## About page

The **About page** presents Shopfoo as a demo project showcasing the *❝ Safe Clean Architecture ❞*. It displays four pieces of information:

* **🏷️ Version** — determined at deployment time using [SemVer](https://semver.org/) (Semantic Versioning), derived from the [Conventional Commits](https://www.conventionalcommits.org/) history since the previous deployment.
* **🧑‍💻 Authors** — the names of the project's authors.
* **📖 GitBook** — a link to this documentation.
* **🧬 GitHub** — a link to the Shopfoo source code repository.

![About page](/files/F4ab0W4Utq8LiAhvdXsS)

This page is accessible **without login** (anonymous mode). It is intentionally public to demonstrate how certain pages can bypass authentication — useful for testing public-access routes in the front-end security setup.

{% hint style="info" %}
See the [Security](/safe-clean-architecture/front-end/security.md) chapter for how public routes are configured on the client side.

See also the [Versioning](/safe-clean-architecture/front-end/versioning.md) page for how the version number is determined at deployment time.
{% endhint %}

## Login page

Shopfoo requires authentication, but uses a **simplified model with no real auth backend** (no OAuth, no JWT). The login page displays a table of predefined **personas**. The user clicks a row to instantly "log in" as that persona.

![Login page](/files/wewMsDsqDPDaBlNZvDLp)

{% hint style="info" %}
See the [Security](/safe-clean-architecture/front-end/security.md) chapter for the full claims-based access control model and token mechanism.
{% endhint %}

## Default page

After login, the application lands on the **Home page**, which displays the product catalog. This is the main working area of the back-office.

![Home page](/files/ilF59ET0LD8QNOMmhKcP)

{% hint style="info" %}
See the [Products](/safe-clean-architecture/shopfoo/products.md) page for details on the product catalog.
{% endhint %}

## Admin page

The **Admin page** is restricted to users who hold an **Admin Claim**. Attempting to access it without the claim results in an access-denied response, making it a useful test case for role-based access control (RBAC).

![Admin page](/files/fSaEAdSiHr2Lk2VcjcYg)

{% hint style="info" %}
See the [Security](/safe-clean-architecture/front-end/security.md) chapter for how claim-based guards are implemented.
{% endhint %}

## Demo

The following demo illustrates the features described on this page:

![General demo](/files/KLtxGO6EGSLNO9F3wkxY)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rdeneau.gitbook.io/safe-clean-architecture/shopfoo/general.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
