# File Structure

```
SPRNVA/
├── app/
│   ├── controller/
│   ├── views/
├── config/
│   ├── routes/
│   ├── function.helpers.php
├── database/
│   ├── migrations/
│   ├── schema/
├── public/
│   ├── assets/
│   ├── storage/
│   ├── favicon.ico
├── vendor/
├── .gitignore
├── .htaccess
├── compose.json
├── composer.lock
├── config.example
├── config.php
├── index.php
├── LICENSE
├── README.md
```

#### The `App` Directory

The majority of your application is housed in the `app` directory. By default, all the logics and the user interface is stored in this directory.

The `app` directory contains additional directories such as `controllers` and `views`.

**Controllers Directory**

The `controllers` directory contains the almost all of the logic of your application. Request entering your application will be handled with this directory.

**Views Directory**

The `views` directory is the user's perspective of your application. All the graphical representation is placed in this directory.

Always remember in Sprnva Framework, when adding a view it has a naming convention. To declare or add a view just add the name of your view file then add a `.view.php` convention. This convention will tell the framework to identify that this file is a view file.

#### The `Config` Directory

The traffic control and the additional helpers is stored in the `config` directory. By default, routes and function helpers is stored in this directory.

**Routes Directory**

The routes directory contains all of the route definitions for your application. By default, one route file are included with Sprnva: `web.php`.

The `web.php` file contains routes that the user define for the entire application. It is likely that all of your routes will most likely be defined in the `web.php` file.

**Function Helpers**

The `function.helpers.php` is the file where you can add a callable function and later be used in the controllers or in views.

#### The `Database` Directory

The `database` directory contains your database migrations and schema. If you wish, you may also use this directory to hold an SQLite database.

**Migrations Directory**

All of your migration files are stored in the `migrations` directory. This migration directory is the repository for your database version control. This migration files is the file that contains the schema of your database tables.

**Schema Directory**

In the migration module, the result of the files generated when using the dump buttons is stored in this directory. This directory contains the `.sql` file with the schema of your database inside.

#### The `Public` Directory

All your `css`, `js`, `images` and other plugins are stored in the `public` directory. By default, public directory has two more directories inside. The `assets` and the `storage` directory is where plugins are stored.

Tip: create a new directory when adding a new plugin to segregate the files.

**Assets Directory**

The storage directory of all the assets of the entire application.

**Storage Directory**

The recommended directory to store the images of the application.


---

# 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://sprnva.gitbook.io/sprnva-docs/file-structure.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.
