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>
43 lines
1.2 KiB
JSON
43 lines
1.2 KiB
JSON
{
|
|
"name": "reactbin-ui",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"start": "ng serve",
|
|
"build": "ng build",
|
|
"test": "ng test --watch=false --browsers=ChromeHeadless",
|
|
"lint": "ng lint",
|
|
"format": "prettier --write \"src/**/*.{ts,html,css,scss}\""
|
|
},
|
|
"dependencies": {
|
|
"@angular/animations": "^19.0.0",
|
|
"@angular/common": "^19.0.0",
|
|
"@angular/compiler": "^19.0.0",
|
|
"@angular/core": "^19.0.0",
|
|
"@angular/forms": "^19.0.0",
|
|
"@angular/platform-browser": "^19.0.0",
|
|
"@angular/platform-browser-dynamic": "^19.0.0",
|
|
"@angular/router": "^19.0.0",
|
|
"rxjs": "~7.8.0",
|
|
"tslib": "^2.3.0",
|
|
"zone.js": "~0.15.0"
|
|
},
|
|
"devDependencies": {
|
|
"@angular-devkit/build-angular": "^19.0.0",
|
|
"@angular/cli": "^19.0.0",
|
|
"@angular/compiler-cli": "^19.0.0",
|
|
"@types/jasmine": "~5.1.0",
|
|
"angular-eslint": "^19.0.0",
|
|
"eslint": "^9.0.0",
|
|
"jasmine-core": "~5.4.0",
|
|
"karma": "~6.4.0",
|
|
"karma-chrome-launcher": "~3.2.0",
|
|
"karma-coverage": "~2.2.0",
|
|
"karma-jasmine": "~5.1.0",
|
|
"karma-jasmine-html-reporter": "~2.1.0",
|
|
"prettier": "^3.2.0",
|
|
"typescript": "~5.6.0",
|
|
"typescript-eslint": "^8.0.0"
|
|
}
|
|
}
|