To start discovering Github Copilot jump to The Ultimate GitHub Copilot Tutorial on MOAW
This repository has been inspired by the Azure Container Apps: Dapr Albums Sample
It's used as a code base to demonstrate Github Copilot capabilities.
The solution is composed of two services: the Node.js album API and the Vue.js album viewer, both built with TypeScript.
The albums-api is a Node.js REST API built with Express.js and TypeScript that manages a list of albums in memory. It features full type safety with TypeScript strict mode, RESTful endpoints, and CORS support for cross-origin requests.
The album-viewer is a modern Vue.js 3 application built with TypeScript through which the albums retrieved by the API are surfaced. The application uses the Vue 3 Composition API with full TypeScript support for enhanced developer experience and type safety. In order to display the repository of albums, the album viewer contacts the backend album API.
There are multiple ways to run this solution locally. Choose the method that best fits your development workflow.
- Node.js (version 20 or higher)
- npm (comes with Node.js)
- TypeScript (automatically installed with project dependencies)
- Visual Studio Code (recommended)
This is the easiest way to run the solution with full debugging capabilities.
- Open the solution in Visual Studio Code
- Open the Debug panel (Ctrl+Shift+D / Cmd+Shift+D)
- Select "All services" from the dropdown
- Click the green play button or press F5
This will automatically:
- Build and start the Node.js TypeScript API on
http://localhost:3000 - Start the Vue.js TypeScript app on
http://localhost:3001 - Open both services in your default browser
You can also run individual services:
- "Node.js: Album API Debug" - Runs only the Node.js TypeScript API
- "Node.js: Album Viewer Debug" - Runs only the Vue.js TypeScript frontend
# Navigate to the API directory
cd albums-api
# Install dependencies (first time only)
npm install
# Build TypeScript code
npm run build
# Run the API in development mode
npm run dev
# Optional: Run TypeScript type checking
npm run type-checkThe API will start on http://localhost:3000.
# Navigate to the viewer directory
cd album-viewer
# Install dependencies (first time only)
npm install
# Start the development server
npm run dev
# Optional: Run TypeScript type checking
npm run type-checkThe Vue.js TypeScript app will start on http://localhost:3001 and automatically open in your browser.
You can run both services simultaneously using separate terminal windows:
# Terminal 1 - Start the Node.js TypeScript API
cd albums-api
npm install
npm run dev
# Terminal 2 - Start the Vue TypeScript app
cd album-viewer
npm install
npm run devThe solution uses the following default configuration:
- Album API: Runs on
http://localhost:3000 - Album Viewer: Runs on
http://localhost:3001(TypeScript + Vue 3) - API Endpoint: The Vue app is configured to call the API at
localhost:3000
If you need to change these settings, you can modify:
- API port: Set
PORTenvironment variable or modify inalbums-api/src/server.ts - Vue app configuration: Environment variables in
.vscode/launch.jsonor setVITE_ALBUM_API_HOSTenvironment variable
The easiest way is to open this solution in a GitHub Codespace, or run it locally in a devcontainer. The development environment will be automatically configured for you.