Tutorial: Your First App¶
This tutorial walks you through creating a complete Virtualitics SDK app from start to finish.
What You'll Build¶
A simple data analysis app that:
- Loads a CSV file
- Displays summary statistics
- Creates visualizations
- Allows filtering and export
Prerequisites¶
- Python 3.11+
- Virtualitics AI Platform installed
- Basic pandas knowledge
Step 1: Project Setup¶
Create a new directory for your app:
Create the following structure:
Step 2: Define Requirements¶
requirements.txt:
Step 3: Create Your First Step¶
app.py:
from virtualitics_sdk import (
App, Step, StepType, Page, Section, Card,
Table, PlotlyPlot, SingleDropdown, Dataset
)
import pandas as pd
import plotly.express as px
class LoadDataStep(Step):
"""Load and display CSV data."""
def run(self, flow_metadata):
# Load sample data
df = pd.DataFrame({
'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
'Sales': [1200, 1500, 1100, 1800, 2000],
'Region': ['North', 'South', 'North', 'West', 'East']
})
# Create dataset
dataset = Dataset(name="Sales Data", data=df)
self._outLink.sales_data = dataset
# Display table
return Page(
title="Data Loaded",
sections=[
Section(
title="Sales Data",
cards=[
Card(
title="Raw Data",
content=[Table(data=df)]
)
]
)
]
)
Step 4: Add Visualization Step¶
Add to app.py:
class VisualizeStep(Step):
"""Create visualizations."""
def run(self, flow_metadata):
# Get data from previous step
df = self._inLink.sales_data.data
# Create plot
fig = px.bar(
df,
x='Month',
y='Sales',
color='Region',
title='Sales by Month and Region'
)
return Page(
title="Visualizations",
sections=[
Section(
title="Sales Analysis",
cards=[
Card(
title="Sales Chart",
content=[PlotlyPlot(figure=fig)]
)
]
)
]
)
Step 5: Create the App¶
Add to app.py:
# Create app instance
my_app = App(
name="Sales Analysis",
description="Analyze monthly sales data",
is_shareable=True
)
# Create step instances
load_step = LoadDataStep(
title="Load Data",
description="Load sales data",
parent="Data",
type=StepType.INPUT,
page=Page(title="Loading...", sections=[])
)
viz_step = VisualizeStep(
title="Visualize",
description="Create charts",
parent="Analysis",
type=StepType.DASHBOARD,
page=Page(title="Loading...", sections=[])
)
# Chain steps together
my_app.chain([load_step, viz_step])
Step 6: Make App Discoverable¶
__init__.py:
Step 7: Deploy Locally¶
Add to docker-compose.yml:
services:
backend:
environment:
- PROJECTS_LIST=["predict_demos", "my_first_app"]
volumes:
- ./my_first_app:/opt/app-root/src/my_first_app
Restart the platform:
Step 8: Test Your App¶
- Navigate to http://localhost:3000
- Find "Sales Analysis" in the app list
- Click to run the app
- Verify data loads and chart displays correctly
Next Steps¶
- Add input elements for user interaction
- Implement error handling
- Add more visualizations
- Upload to platform
Complete Code¶
See the full example in the Examples Gallery.