← 포트폴리오 목록

스마트팜 모니터링 앱 UI·UX 리디자인

본 공고의 우선 개선 화면(메인 대시보드, 데이터 시각화·기록 검토, 알림·경고, 사용자 피드백)을 농장주가 보는 모니터링 화면으로 설계한 프로젝트입니다.

프로젝트 납품 요약

아래 프로젝트 개요와 핵심 기능에서 구현 화면을 확인할 수 있습니다.

서비스 타입Web
업종모니터링
기술 스택
Flutter 위젯 구조 이식용 컴포넌트 설계 데모React 18Tailwind CSSSVG 차트Node.js + ExpressPostgreSQL + PrismaSSE (Server-Sent Events)Multer
주요 기능
  • 실시간 대시보드
  • 데이터 기록
  • 알림·경고
  • 피드백 남기기

프로젝트 개요

범위: 개발, 디자인, 기획

본 공고의 우선 개선 화면(메인 대시보드, 데이터 시각화·기록 검토, 알림·경고, 사용자 피드백)을 농장주가 보는 모니터링 화면으로 설계한 프로젝트입니다. 화면 구조는 Flutter 위젯 단위로 옮길 수 있게 컴포넌트로 나누어 구현했습니다.

작업 범위

  • 실시간 대시보드: 농장주가 첫 화면에서 동별 온도·습도·CO2 현재값과 오늘 관수 일정, 확인이 필요한 경고를 한 번에 봅니다
  • 데이터 기록: 기간(일·주·월)을 고르고 온도·습도·CO2 추이를 차트와 표로 비교하며 이상 구간을 찾습니다
  • 알림·경고: 심각도별로 알림을 거르고 경고 상세에서 원인 센서와 최근 값을 보며 확인 처리합니다
  • 피드백 남기기: 농장주가 화면 사용 중 불편한 점이나 제안을 분류와 함께 남기고 접수 내역을 확인합니다

주요 업무

  • 실시간 대시보드 화면: 동 선택 카드, 센서 값 갱신 표시, 경고 띠, 작업 일정 목록을 Flutter 위젯 단위 컴포넌트로 분리해 설계합니다
  • 데이터 기록 화면: 기간 탭, 항목 겹쳐 보기, 한 점 선택 시 값 상세, 표 내려받기 구조를 설계합니다
  • 알림·경고 화면: 심각도 칩 필터, 경고 상세 대화상자, 확인 처리와 되돌리기, 읽음 상태 동기화 구조를 설계합니다
  • 피드백 남기기 화면: 분류 선택, 입력 검사, 접수 완료 상태, 내 피드백 목록의 처리 단계 표시 구조를 설계합니다
스마트팜 모니터링 앱 UI·UX 리디자인
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

센서 수신이 끊긴 동을 마지막 값과 구분해 표시하는 연결 상태 판정 규칙 설계

온도·습도·CO2처럼 단위와 적정 범위가 다른 항목을 한 차트에 겹쳐 보여주는 축 설계

같은 경고가 반복 발생할 때 알림 목록이 길어지지 않

묶는 기준 설계 필요

약 30개 화면에 공통 토큰을 적용하는 순서와 화면별 점검 기준 설계

구현 내용

핵심 기능 상세

핵심 기능 1

실시간 대시보드

농장주가 첫 화면에서 동별 온도·습도·CO2 현재값과 오늘 관수 일정, 확인이 필요한 경고를 한 번에 봅니다.

  • SSE 스트림으로 센서 값을 받아 값이 바뀐 카드만 다시 그리는 구조 설계
  • 동·센서 단위 카드를 Flutter 위젯 트리와 1:1로 대응하는 컴포넌트로 분리
  • 정상·주의·위험 3단계 상태를 한 곳의 매핑 표로 관리해 모든 화면에서 같은 색 적용

센서 값의 갱신 시각과 상태 등급을 하나의 데이터 모델로 묶어, 대시보드·기록·알림 화면이 같은 값을 읽는 구조를 구현합니다.

실시간 대시보드
실시간 대시보드 실제 화면
핵심 기능 2

데이터 기록

기간(일·주·월)을 고르고 온도·습도·CO2 추이를 차트와 표로 비교하며 이상 구간을 찾습니다. 기간 탭, 항목 겹쳐 보기, 한 점 선택 시 값 상세, 표 내려받기 구조를 설계합니다.

  • SVG로 직접 그린 선 차트에 기준선(적정 범위)과 이탈 구간 음영 표시 구현
  • 기간별 집계(시간 평균·일 평균)를 서버 쿼리로 나눠 차트 점 개수를 일정하게 유지
  • 차트와 표가 같은 선택 상태를 공유해 한 점을 누르면 해당 행이 강조되는 구조 설계

기간을 바꿔도 차트 점 개수가 일정하도록 서버 집계 단위를 자동 선택하는 쿼리 구조를 설계합니다.

데이터 기록
데이터 기록 실제 화면
핵심 기능 3

알림·경고

심각도별로 알림을 거르고 경고 상세에서 원인 센서와 최근 값을 보며 확인 처리합니다. 심각도 칩 필터, 경고 상세 대화상자, 확인 처리와 되돌리기, 읽음 상태 동기화 구조를 설계합니다.

  • 심각도 3단계(주의·위험·복구)를 알약과 정렬 순서에 일관되게 적용하는 상태 모델 설계
  • 확인 처리 시 목록에서 바로 반영하고 되돌리기 토스트를 제공하는 낙관적 갱신 구현
  • 경고 상세에서 원인 센서의 최근 24시간 값을 작은 차트로 함께 표시하는 구조 설계

경고 발생부터 확인 처리까지의 상태 전이를 하나의 상태 머신으로 정의해 목록·상세·대시보드 배지가 항상 같은 상태를 보이도록 구현합니다.

알림·경고
알림·경고 실제 화면
핵심 기능 4

피드백 남기기

농장주가 화면 사용 중 불편한 점이나 제안을 분류와 함께 남기고 접수 내역을 확인합니다. 분류 선택, 입력 검사, 접수 완료 상태, 내 피드백 목록의 처리 단계 표시 구조를 설계합니다.

  • 제출 시점에 검사하고 틀린 칸 아래에 고치는 방법을 한 줄로 안내하는 폼 검증 구현
  • 접수·검토·반영 3단계 처리 상태를 내 피드백 목록에 같은 알약으로 표시
  • 스크린샷 첨부 미리보기와 첨부 용량 검사를 Multer 업로드 API와 연결해 설계

피드백 접수부터 처리 단계 표시까지 하나의 API 모델로 연결해, 작성 화면과 내역 화면이 같은 상태값을 읽도록 구현합니다.

피드백 남기기
피드백 남기기 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

현행 화면 분석과 디자인 토큰 정리 · 2026.11

기존 앱 화면 목록 분석, 색상·글꼴·버튼·간격 토큰 정의, 화면 우선순위 5개 군 확정

STEP 2

핵심 5개 군 화면 설계 · 2026.11

메인 대시보드·데이터 기록·설정·알림·피드백 화면 구조와 상태별 화면 설계

STEP 3

컴포넌트 분리와 반응형 구현 · 2026.11

Flutter 위젯 단위로 대응되는 컴포넌트 구현, 390px부터 1440px까지 반응형 확인

STEP 4

기존 코드 반영과 회귀 점검 · 2026.11

확정 디자인을 위젯·테마에 반영, 기존 기능 동작 확인 목록 작성과 화면별 점검

개발 결과

센서 상태 등급 단일 모델 설계정상·주의·위험 등급을 한 모델로 정의해 대시보드·기록·알림 화면이 같은 색과 문구를 쓰도록 구현합니다.
기간별 집계 쿼리 구조 설계일·주·월 기간에 맞춰 시간 평균·일 평균 집계 단위를 자동 선택해 차트 점 개수를 일정하게 유지합니다.
알림 상태 전이 모델 구현발생·확인·복구 3단계 전이를 상태 머신으로 정의하고 목록·상세·배지를 같은 상태로 동기화합니다.
위젯 대응 컴포넌트 체계 구축카드·알약·표·대화상자 등 16개 안팎 공통 컴포넌트를 Flutter 위젯 단위로 옮기기 쉬운 구조로 설계합니다.

기술적 주안점

  • 센서 값의 갱신 시각과 상태 등급을 하나의 데이터 모델로 묶어, 대시보드·기록·알림 화면이 같은 값을 읽는 구조를 구현합니다
  • 기간을 바꿔도 차트 점 개수가 일정하도록 서버 집계 단위를 자동 선택하는 쿼리 구조를 설계합니다
  • 경고 발생부터 확인 처리까지의 상태 전이를 하나의 상태 머신으로 정의해 목록·상세·대시보드 배지가 항상 같은 상태를 보이도록 구현합니다

유사한 프로젝트를 기획하고 계신가요?

필요한 기능과 일정을 알려주시면 개발 범위를 함께 정리하겠습니다.

프로젝트 문의