# Project Overview

This chapter introduces the role of each part in a Vela JS application project, based on the project initialized in Environment Setup.

# Directory Structure

A typical project directory structure is as follows:

├── README.md            # Project description file
├── package.json         # Project configuration file
├── build/               # Build intermediates
├── dist/                # Final build output
├── sign/                # Signing files
│   ├── certificate.pem
│   └── private.pem
└── src/                 # Source code directory
    ├── app.ux           # Application entry file
    ├── manifest.json    # Project configuration file
    ├── common/          # Public resources directory
    │   ├── components/  # Components directory
    │   │   └── button.ux
    │   ├── images/      # Images directory
    │   │   └── logo.png
    │   └── scripts/     # Scripts directory
    │       └── index.js
    ├── i18n/            # Multilingual configuration directory
    │   ├── defaults.json
    │   ├── en.json
    │   └── zh-CN.json
    └── pages/           # Pages directory
        ├── detail/detail.ux
        └── index/index.ux

# Directory Details

# src/

The source code directory. All application code resides here. src/ is a fixed directory name and cannot be changed.

# src/manifest.json

The project configuration file, used to declare basic application information (package name, version, etc.), system interface permissions, and page routing. For detailed field descriptions, refer to Project Configuration.

# src/app.ux

The application entry file, used to define application-level lifecycle callbacks, global data, and global methods. For detailed usage, refer to app.ux.

# src/pages/

The pages directory, with each page in its own subdirectory. Pages are described by ux files, and styles and logic can optionally be split into separate css/js files. For details, refer to Project Structure.

# src/common/

The public resources directory, used to store shared components, images, scripts, and styles across pages.

# src/i18n/

The multilingual configuration directory, containing JSON files for each language to support application internationalization. For detailed usage, refer to Internationalization.

# build/ and dist/

build/ stores intermediate build artifacts, and dist/ stores the final build output (rpk packages). Both directories are automatically generated by the build tools and do not require manual maintenance.

# sign/

The signing files directory, containing certificate.pem (certificate) and private.pem (private key), used to sign the application package.

# package.json

The npm configuration file for the project, defining project dependencies and build scripts.