A modern, customizable front-end development kit for building web interfaces
Introduction • Tech Stack • Getting Started • Project Structure • Configuration • Testing • Contributions
Azion Console Kit is a front-end development kit made in Vue/Vite with the PrimeVue and Tailwind framework that allows you to run a customized Azion Console interface.
This project was developed by Azion, a web platform that allows you to build and run applications anywhere. You'll find our products and services on it. 🚀
| Technology | Purpose |
|---|---|
| Vue 3 | Progressive JavaScript framework |
| Vite | Next-generation frontend tooling |
| PrimeVue | UI component library |
| Tailwind CSS | Utility-first CSS framework |
| Pinia | State management |
| Vue Router | Official router for Vue.js |
| Axios | HTTP client |
| Vitest | Unit testing framework |
| Cypress | E2E testing framework |
| VeeValidate + Yup | Form validation |
Before you begin, ensure that you have the following:
Note: Check
.nvmrcfor the exact Node.js version used in development.
If you prefer not to install Node.js and Yarn locally, you can use Docker:
alias yarn="docker run -it --rm -p 5173:5173 -v $HOME:/root -v $PWD:/usr/src/app -w /usr/src/app node:22 yarn"-
Clone the repository:
git clone git@github.com:aziontech/azion-console-kit.git cd azion-console-kit -
Install dependencies:
yarn install
-
Start the development server:
yarn dev --host
-
Access the application:
Open http://localhost:5173 in your browser.
src/
├── assets/ # Static files (CSS, images, themes)
├── components/ # Reusable Vue components
├── composables/ # Vue 3 composition API utilities
├── helpers/ # Utility functions and helpers
├── layout/ # Layout components (header, sidebar, etc.)
├── modules/ # Feature modules
├── plugins/ # Vue plugins configuration
├── router/ # Route definitions
├── services/ # API service layer (Axios calls)
├── stores/ # Pinia state management stores
├── templates/ # Reusable page templates/blocks
├── tests/ # Unit tests
├── utils/ # General utilities
└── views/ # Page components (organized by feature)
| Directory | Description |
|---|---|
services/ |
API integration layer. Each feature has its own service folder with CRUD operations |
views/ |
Page components organized by module (e.g., Applications/, Variables/) |
templates/ |
Pre-built blocks for common UI patterns (list tables, forms, etc.) |
stores/ |
Shared state between components using Pinia |
router/ |
Centralized routing with index.js and feature-specific route files |
Create a .env file at the root of your project:
# API Environment (stage or production)
VITE_ENVIRONMENT=stage
# Stripe Keys (for payment processing)
VITE_STRIPE_TOKEN_DEV=pk_test_yourDevApiKeyHere
VITE_STRIPE_TOKEN_STAGE=pk_test_yourStageApiKeyHere
VITE_STRIPE_TOKEN_PROD=pk_live_yourProductionApiKeyHere
# Sentry Configuration (replace with valid auth token)
VITE_SENTRY_AUTH_TOKEN=sntrys_QsVsYXQiOjE3MDAwMDAwMDAuMDAkOllfMCJ1cmwiOiJodHRwczovL3NlbnRyeS5pbyIsInJlZ2lvbl91cmwiOiJodHRwczovL3Vz123456789195byIsIm9yZyI6InlvdXItb3JnYW5pemF0aW9uIn0_xXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXx
VITE_SENTRY_UPLOAD=false
# SSO Provider IDs (replace with valid keys from your SSO configuration)
VITE_SSO_AZURE=f47ac10b-58cc-4372-a567-0e02b2c3d479
VITE_SSO_IDP_SCIM_E2E=6ba7b810-9dad-11d1-80b4-00c04fd430c8
VITE_SSO_GITHUB=550e8400-e29b-41d4-a716-446655440000
VITE_SSO_GOOGLE=7c9e6679-7425-40de-944b-e07fc1f90ae7| Variable | Description |
|---|---|
VITE_ENVIRONMENT |
API stack to use: stage (default) or production |
VITE_STRIPE_TOKEN_DEV |
Stripe API key for local development |
VITE_STRIPE_TOKEN_STAGE |
Stripe API key for staging environment |
VITE_STRIPE_TOKEN_PROD |
Stripe API key for production |
VITE_SENTRY_UPLOAD |
Enable/disable Sentry source map uploads (true/false) |
VITE_SENTRY_AUTH_TOKEN |
Sentry authentication token for source map uploads |
VITE_SSO_AZURE |
Azure AD SSO provider ID |
VITE_SSO_IDP_SCIM_E2E |
SCIM E2E identity provider ID |
VITE_SSO_GITHUB |
GitHub SSO provider ID |
VITE_SSO_GOOGLE |
Google SSO provider ID |
For the best development experience with VSCode:
-
Install recommended extensions:
- Volar (disable Vetur)
- TypeScript Vue Plugin
- Prettier
- ESLint
-
Enable format on save in
.vscode/settings.json:
{
"editor.tabSize": 2,
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
}# Run tests with UI
yarn test:unit
# Run tests headless
yarn test:unit:headless
# Run tests with coverage
yarn test:unit:coverageBefore running E2E tests, create cypress.env.json from the example file and fill in valid credentials.
# Open Cypress UI (development)
yarn test:e2e:open:dev
# Run tests headless (development)
yarn test:e2e:run:dev
# Run against staging
yarn test:e2e:run:stage
# Run against production
yarn test:e2e:run:prod# Lint and fix issues
yarn lint
# Format code with Prettier
yarn format
# Security check
yarn security-checkDeploy to Azion's web platform using the Azion CLI:
-
Install and configure Azion CLI:
Download the Azion CLI and authenticate:
azion -t ${PERSONAL_TOKEN} -
Link the project:
azion link
Select the Vue preset when prompted.
-
Deploy:
azion deploy
💡 Tip: Use
--config-dirto manage multiple environments (e.g., staging vs production).
| Script | Description |
|---|---|
yarn dev |
Start development server |
yarn build |
Build for production |
yarn preview |
Preview production build locally |
yarn test:unit |
Run unit tests with UI |
yarn test:e2e:open:dev |
Open Cypress for E2E testing |
yarn lint |
Lint and fix code |
yarn format |
Format code with Prettier |
- Multi-tenancy: Build your Azion Console by consuming endpoints from the Azion Public API
- Customizable UI: Configure theme tokens or generate them automatically via the Builder
- Simple structure: Layered separation of blocks, components, and services for easy route building
- Edge-ready: Deploy directly to Azion's distributed network
Port 5173 already in use:
# Find and kill the process
lsof -ti:5173 | xargs kill -9Node version mismatch:
# Use nvm to switch to the correct version
nvm useDependencies out of sync:
# Clean install
rm -rf node_modules yarn.lock
yarn installWe welcome contributions! Before starting, please read:
| Resource | Description |
|---|---|
| CONTRIBUTING.md | How to contribute and submit PRs |
| DEVELOPER.md | Development environment setup and architecture |
| SECURITY.md | Security validation process |
| CODE_OF_CONDUCT.md | Community guidelines |
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes and add tests
- Run
yarn lintandyarn test:unit - Commit using conventional commits
- Push and open a Pull Request
Join our community:
- Discord - Chat with the team and community
- X (Twitter) - Latest updates
- LinkedIn - Company news
- YouTube - Tutorials and demos
This project is licensed under the terms specified in the LICENSE file.