위험성평가, 안전 RAG Q&A, 안전점검 체크리스트를 통합한 안전관리자 전용 웹 플랫폼 전체 구현. - Next.js 15 (App Router) + TypeScript + Tailwind + shadcn/ui - Drizzle ORM + PostgreSQL 16 (12개 테이블) - 위험성평가 CRUD + 5x5 위험성 매트릭스 + 인쇄 내보내기 - 체크리스트 템플릿/점검/NCR 추적 - RAG 문서 파이프라인 (Tika + bge-m3 + Qdrant) - SSE 스트리밍 RAG 채팅 (qwen3.5:35b-a3b) - AI 어시스트 (위험요인 추천, 감소대책, 점검항목 생성) - 대시보드 통계/차트 (recharts) - 단일 사용자 인증 (HMAC 쿠키 세션) - 다크모드 지원 - Docker 멀티스테이지 빌드 (standalone) - 프로젝트 가이드 문서 (docs/) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
29 lines
932 B
TypeScript
29 lines
932 B
TypeScript
import Link from "next/link";
|
|
import { Plus } from "lucide-react";
|
|
import { Button } from "@/components/ui/button";
|
|
import { AssessmentList } from "@/components/risk-assessment/assessment-list";
|
|
import { getAssessments } from "@/actions/risk-assessment";
|
|
|
|
export default async function RiskAssessmentPage() {
|
|
const assessments = await getAssessments();
|
|
|
|
return (
|
|
<div className="space-y-6">
|
|
<div className="flex items-center justify-between">
|
|
<div>
|
|
<h2 className="text-2xl font-bold tracking-tight">위험성평가</h2>
|
|
<p className="text-muted-foreground">
|
|
작업별 위험성평가를 관리합니다.
|
|
</p>
|
|
</div>
|
|
<Button asChild>
|
|
<Link href="/risk-assessment/new">
|
|
<Plus className="h-4 w-4 mr-2" />새 평가
|
|
</Link>
|
|
</Button>
|
|
</div>
|
|
<AssessmentList assessments={assessments} />
|
|
</div>
|
|
);
|
|
}
|