Implements all 88 tasks for the Reaction Image Board (specs/001-reaction-image-board): - docker-compose.yml: postgres, minio, minio-init, api, ui services with healthchecks - api/: FastAPI app with SQLAlchemy 2.x async, Alembic migrations, S3/MinIO storage, full integration + unit test suite (pytest + pytest-asyncio) - ui/: Angular 19 standalone app (Library, Upload, Detail, NotFound components) - .env.example: all required environment variables - .gitignore: Python, Node, Docker, IDE, .env patterns Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
81 lines
2.4 KiB
JSON
81 lines
2.4 KiB
JSON
{
|
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
|
"version": 1,
|
|
"newProjectRoot": "projects",
|
|
"projects": {
|
|
"reactbin-ui": {
|
|
"projectType": "application",
|
|
"schematics": {
|
|
"@schematics/angular:component": {
|
|
"standalone": true,
|
|
"changeDetection": "OnPush"
|
|
}
|
|
},
|
|
"root": "",
|
|
"sourceRoot": "src",
|
|
"prefix": "app",
|
|
"architect": {
|
|
"build": {
|
|
"builder": "@angular-devkit/build-angular:application",
|
|
"options": {
|
|
"outputPath": "dist/reactbin-ui",
|
|
"index": "src/index.html",
|
|
"browser": "src/main.ts",
|
|
"polyfills": ["zone.js"],
|
|
"tsConfig": "tsconfig.app.json",
|
|
"assets": [
|
|
{ "glob": "**/*", "input": "public" }
|
|
],
|
|
"styles": ["src/styles.css"],
|
|
"scripts": []
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"budgets": [
|
|
{ "type": "initial", "maximumWarning": "500kB", "maximumError": "1MB" },
|
|
{ "type": "anyComponentStyle", "maximumWarning": "4kB", "maximumError": "8kB" }
|
|
],
|
|
"outputHashing": "all"
|
|
},
|
|
"development": {
|
|
"optimization": false,
|
|
"extractLicenses": false,
|
|
"sourceMap": true
|
|
}
|
|
},
|
|
"defaultConfiguration": "production"
|
|
},
|
|
"serve": {
|
|
"builder": "@angular-devkit/build-angular:dev-server",
|
|
"configurations": {
|
|
"production": { "buildTarget": "reactbin-ui:build:production" },
|
|
"development": { "buildTarget": "reactbin-ui:build:development" }
|
|
},
|
|
"defaultConfiguration": "development",
|
|
"options": {
|
|
"proxyConfig": "proxy.conf.json"
|
|
}
|
|
},
|
|
"test": {
|
|
"builder": "@angular-devkit/build-angular:karma",
|
|
"options": {
|
|
"polyfills": ["zone.js", "zone.js/testing"],
|
|
"tsConfig": "tsconfig.spec.json",
|
|
"assets": [
|
|
{ "glob": "**/*", "input": "public" }
|
|
],
|
|
"styles": ["src/styles.css"],
|
|
"scripts": []
|
|
}
|
|
},
|
|
"lint": {
|
|
"builder": "@angular-eslint/builder:lint",
|
|
"options": {
|
|
"lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|