Skip to content

EmeaAppGbb/shell-dotnet

Repository files navigation

shell-dotnet

A starter shell application with a .NET backend and Vue.js frontend, configured for Azure Container Apps deployment.

🚀 Running the Solution

Prerequisites

Run Locally with .NET Aspire

The solution uses .NET Aspire for local orchestration. Run the following command from the repository root:

dotnet run --project apphost.cs

This will:

  • Start the backend API (ASP.NET Core) on port 5000
  • Start the frontend (Vue.js) on a dynamically assigned port
  • Start the documentation site (MkDocs) on a dynamically assigned port
  • Open the Aspire Dashboard at http://localhost:15888

The frontend automatically connects to the backend via the configured proxy.

Access the Application

  • Aspire Dashboard: http://localhost:15888 (view logs, traces, and service status)
  • Frontend: Check the Aspire Dashboard for the assigned port
  • Backend API: http://localhost:5000
  • Documentation: Check the Aspire Dashboard for the assigned port

📖 Documentation

The project includes comprehensive documentation built with MkDocs and the Material theme. When running with Aspire, the documentation site starts automatically.

Accessing the Documentation

  1. Run the solution with dotnet run --project apphost.cs
  2. Open the Aspire Dashboard at http://localhost:15888
  3. Find the docs resource and click its endpoint URL

Documentation Contents

  • Technical Documentation: Architecture, infrastructure, integration guides, and technology stack
  • Feature Requirements: Functional Requirements Documents (FRDs) for all application features

First-Time Setup

If the documentation doesn't start, you may need to set up the Python environment:

cd specs
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -r requirements.txt

API Endpoints

Method Endpoint Description
GET /weatherforecast Get 5-day weather forecast
GET /api/temperatures List all temperature measurements
GET /api/temperatures/{id} Get a specific measurement
POST /api/temperatures Create a new measurement
PUT /api/temperatures/{id} Update a measurement
DELETE /api/temperatures/{id} Delete a measurement

☁️ Deploy to Azure

Using Azure Developer CLI (azd)

  1. Authenticate with Azure:

    azd auth login
  2. Provision and deploy (one command):

    azd up

    This will:

    • Create Azure Container Apps environment
    • Build and push Docker images
    • Deploy backend and frontend services
    • Configure networking and environment variables
  3. View deployed resources:

    azd show
  4. Redeploy after changes:

    azd deploy
  5. Tear down resources:

    azd down

📁 Project Structure

src/
├── backend/            # ASP.NET Core API
└── frontend/           # Vue.js SPA

specs/
├── mkdocs.yml          # Documentation configuration
├── requirements.txt    # Python dependencies
└── docs/               # Documentation source
    ├── architecture/   # System architecture docs
    ├── infrastructure/ # Deployment & operations
    ├── integration/    # APIs & databases
    ├── technology/     # Stack & dependencies
    └── features/       # Feature requirements (FRDs)

infra/
├── main.bicep          # Azure infrastructure
├── resources.bicep     # Resource definitions
└── scripts/            # Pre/post deployment hooks

🤝 Contributing

Contributions welcome!

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors