FamilyNido — a self-hosted PWA for a single household: shared calendar, chores, meals, school agenda, health records and a family wall. One instance per family, deployable with `docker compose` on any home server. Stack: .NET 10 (ASP.NET Core Minimal APIs) + EF Core 10 + PostgreSQL 16 on the backend, Angular 21 (standalone, signals, zoneless) + Tailwind CSS v4 on the frontend, SignalR for realtime, optional OIDC alongside local credentials, integration via a versioned `/api/v1/**` public API. See README.md for the module overview and how to deploy.
120 lines
3.3 KiB
JSON
120 lines
3.3 KiB
JSON
{
|
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
|
"version": 1,
|
|
"cli": {
|
|
"packageManager": "npm",
|
|
"analytics": false
|
|
},
|
|
"newProjectRoot": "projects",
|
|
"projects": {
|
|
"familynido-web": {
|
|
"projectType": "application",
|
|
"schematics": {
|
|
"@schematics/angular:component": {
|
|
"style": "css",
|
|
"standalone": true,
|
|
"changeDetection": "OnPush",
|
|
"type": "component",
|
|
"inlineTemplate": false,
|
|
"inlineStyle": false
|
|
}
|
|
},
|
|
"root": "",
|
|
"sourceRoot": "src",
|
|
"prefix": "fn",
|
|
"i18n": {
|
|
"sourceLocale": {
|
|
"code": "es-ES",
|
|
"subPath": "es"
|
|
},
|
|
"locales": {
|
|
"en-US": {
|
|
"translation": "src/locale/messages.en-US.xlf",
|
|
"subPath": "en"
|
|
}
|
|
}
|
|
},
|
|
"architect": {
|
|
"build": {
|
|
"builder": "@angular/build:application",
|
|
"options": {
|
|
"browser": "src/main.ts",
|
|
"polyfills": ["@angular/localize/init"],
|
|
"tsConfig": "tsconfig.app.json",
|
|
"i18nMissingTranslation": "warning",
|
|
"assets": [
|
|
{
|
|
"glob": "**/*",
|
|
"input": "public"
|
|
}
|
|
],
|
|
"styles": ["src/styles.css"],
|
|
"serviceWorker": "ngsw-config.json",
|
|
"fileReplacements": []
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"localize": true,
|
|
"budgets": [
|
|
{
|
|
"type": "initial",
|
|
"maximumWarning": "750kB",
|
|
"maximumError": "1.5MB"
|
|
},
|
|
{
|
|
"type": "anyComponentStyle",
|
|
"maximumWarning": "6kB",
|
|
"maximumError": "12kB"
|
|
}
|
|
],
|
|
"outputHashing": "all",
|
|
"fileReplacements": [
|
|
{
|
|
"replace": "src/environments/environment.ts",
|
|
"with": "src/environments/environment.production.ts"
|
|
}
|
|
]
|
|
},
|
|
"development": {
|
|
"optimization": false,
|
|
"extractLicenses": false,
|
|
"sourceMap": true,
|
|
"serviceWorker": false
|
|
},
|
|
"development-en": {
|
|
"optimization": false,
|
|
"extractLicenses": false,
|
|
"sourceMap": true,
|
|
"serviceWorker": false,
|
|
"localize": ["en-US"]
|
|
}
|
|
},
|
|
"defaultConfiguration": "production"
|
|
},
|
|
"serve": {
|
|
"builder": "@angular/build:dev-server",
|
|
"options": {
|
|
"proxyConfig": "proxy.conf.json",
|
|
"host": "0.0.0.0",
|
|
"port": 4200
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"buildTarget": "familynido-web:build:production"
|
|
},
|
|
"development": {
|
|
"buildTarget": "familynido-web:build:development"
|
|
},
|
|
"development-en": {
|
|
"buildTarget": "familynido-web:build:development-en"
|
|
}
|
|
},
|
|
"defaultConfiguration": "development"
|
|
},
|
|
"test": {
|
|
"builder": "@angular/build:unit-test"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|