working 3 tier approach

This commit is contained in:
2026-06-11 22:34:55 -07:00
parent 4482a30793
commit e5fef8b181
47 changed files with 1288 additions and 200 deletions
+13 -8
View File
@@ -1,20 +1,25 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "ng serve",
"type": "chrome",
"name": "Backend (FastAPI)",
"type": "python",
"request": "launch",
"preLaunchTask": "npm: start",
"url": "http://localhost:4200/"
"module": "uvicorn",
"args": ["app.main:app", "--reload", "--host", "0.0.0.0", "--port", "8000"],
"cwd": "${workspaceFolder}/backend",
"env": {
"DATABASE_URL": "postgresql+asyncpg://postgres:postgres@localhost:5432/kmountain"
},
"console": "integratedTerminal"
},
{
"name": "ng test",
"name": "Frontend (ng serve)",
"type": "chrome",
"request": "launch",
"preLaunchTask": "npm: test",
"url": "http://localhost:9876/debug.html"
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}/src",
"preLaunchTask": "Start Frontend"
}
]
}
+17
View File
@@ -0,0 +1,17 @@
{
"typescript.tsdk": "node_modules/typescript/lib",
"python.defaultInterpreterPath": "${workspaceFolder}/backend/.venv/bin/python",
"python.terminal.activateEnvironment": true,
"editor.formatOnSave": true,
"editor.tabSize": 2,
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features"
},
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.tabSize": 4
}
}
+51 -31
View File
@@ -1,42 +1,62 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "start",
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "Changes detected"
},
"endsPattern": {
"regexp": "bundle generation (complete|failed)"
}
}
"label": "Start Backend",
"type": "shell",
"command": "cd ${workspaceFolder}/backend && uvicorn app.main:app --reload --host 0.0.0.0 --port 8000",
"group": "build",
"presentation": {
"reveal": "always",
"panel": "dedicated"
},
"problemMatcher": [],
"runOptions": {
"instanceLimit": 1
}
},
{
"type": "npm",
"script": "test",
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "Changes detected"
},
"endsPattern": {
"regexp": "bundle generation (complete|failed)"
}
}
"label": "Start Frontend",
"type": "shell",
"command": "ng serve",
"portAction": "open",
"portPattern": {
"startBody": 4200
},
"group": "build",
"presentation": {
"reveal": "always",
"panel": "dedicated"
},
"problemMatcher": ["$ng-cli-warn"],
"runOptions": {
"instanceLimit": 1
}
},
{
"label": "Docker Up",
"type": "shell",
"command": "docker compose up --build -d",
"group": "build",
"presentation": {
"reveal": "always",
"panel": "dedicated"
},
"problemMatcher": [],
"runOptions": {
"instanceLimit": 1
}
},
{
"label": "Docker Down",
"type": "shell",
"command": "docker compose down",
"group": "build",
"presentation": {
"reveal": "always",
"panel": "dedicated"
},
"problemMatcher": []
}
]
}