반응형
부동산 임대 관리를 위한 종합 솔루션
📋 프로젝트 소개
UniRent는 부동산 관리자를 위한 Flutter 기반의 크로스 플랫폼 임대 관리 애플리케이션입니다. 물건 관리, 임차인 관리, 계약 관리, 청구서 발행 등 부동산 임대 업무의 전 과정을 효율적으로 처리할 수 있도록 설계되었습니다.
✨ 주요 기능
📊 대시보드
- 주요 지표 실시간 모니터링
- 물건/임차인/계약 현황 한눈에 파악
- 청구/수납 현황 통계
🏢 물건 관리
- 건물 및 호실 등록/수정/삭제
- 호실별 상세 정보 관리
- 물건 상태 추적 (임대가능/임대중/점검중)
👥 임차인 관리
- 임차인 정보 등록 및 관리
- 연락처 및 계약 이력 관리
- 임차인별 청구 내역 조회
📝 계약 관리
- 임대차 계약 생성 및 관리
- 계약 상태 추적 (활성/만료/해지)
- 계약 기간 및 조건 관리
- 보증금/월세 정보 관리
💰 청구 및 결제
- 월세 자동 청구서 생성
- 청구 템플릿 관리
- 결제 내역 추적
- 미수금 관리
📈 비용 관리
- 건물/호실별 비용 기록
- 비용 카테고리별 분류
- 비용 통계 및 분석
📱 활동 로그
- 시스템 활동 이력 추적
- 사용자 작업 기록
📄 보고서
- 각종 관리 보고서 생성
- PDF 출력 기능
- Excel 내보내기
⚙️ 설정
- 사용자 프로필 관리
- 시스템 설정
- 권한 관리
🏗️ 아키텍처
Clean Architecture + MVVM 패턴
이 프로젝트는 Clean Architecture와 MVVM(Model-View-ViewModel) 패턴을 결합하여 확장 가능하고 유지보수가 용이한 구조로 설계되었습니다.
lib/
├── app/ # 앱 설정, 테마, 라우팅
│ ├── router.dart # go_router 기반 네비게이션
│ └── theme.dart # Material 3 테마 설정
│
├── core/ # 공유 유틸리티 및 인프라
│ ├── auth/ # 인증 로직
│ ├── database/ # Drift 데이터베이스 설정
│ ├── network/ # HTTP 클라이언트 구성
│ └── rbac/ # 역할 기반 접근 제어
│
└── features/ # 기능 기반 모듈
├── auth/ # 로그인 및 인증 UI
├── dashboard/ # 메인 대시보드
├── property/ # 물건 및 호실 관리
├── tenant/ # 임차인 관리
├── lease/ # 계약 관리
├── billing/ # 청구 및 청구 템플릿
├── payment/ # 결제 관리
├── expense/ # 비용 관리
├── activity/ # 활동 로그
├── reports/ # 보고서
└── settings/ # 설정
데이터 흐름
┌─────────────────────────────────────────────┐
│ Presentation Layer (View) │
│ - Screens & Widgets │
└────────────────┬────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Application Layer (ViewModel) │
│ - Riverpod Controllers │
│ - Business Logic │
└────────────────┬────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Data Layer (Model) │
│ - Repositories │
│ - Data Sources (Local/Remote) │
└────────────────┬────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Domain Layer │
│ - Entities (Freezed Models) │
│ - Business Models │
└─────────────────────────────────────────────┘
🚀 핵심 기술 스택
프레임워크 & 언어
- Flutter
^3.9.2- 크로스 플랫폼 UI 프레임워크 - Dart - 프로그래밍 언어
상태 관리
- Riverpod
^2.5.1- 타입 안전한 상태 관리 - riverpod_annotation
^2.3.5- 코드 생성 기반 Provider
데이터 모델링
- Freezed
^2.5.2- 불변 데이터 클래스 생성 - json_serializable
^6.9.0- JSON 직렬화
데이터베이스
- Drift
^2.17.0- SQLite ORM (타입 안전) - sqflite
^2.3.3- Android용 SQLite - sqflite_common_ffi
^2.3.3- Windows/Linux용 SQLite
네트워크
- Dio
^5.5.0- HTTP 클라이언트
라우팅
- go_router
^14.2.0- 선언적 라우팅
UI/UX
- Material 3 - 최신 디자인 시스템
- 반응형 디자인 - 모바일/데스크톱 적응형 레이아웃
문서 처리
- pdf
^3.11.1- PDF 생성 - printing
^5.13.2- PDF 인쇄 - excel
^4.0.3- Excel 파일 처리 - csv
^6.0.0- CSV 처리
기타
- uuid
^4.4.0- 고유 ID 생성 - intl
^0.19.0- 국제화 및 날짜 포맷 - logger
^2.4.0- 로깅 - flutter_secure_storage
^9.2.2- 보안 저장소
💎 프로젝트의 장점
1. 확장 가능한 아키텍처
- Clean Architecture로 계층 분리
- MVVM 패턴으로 비즈니스 로직과 UI 분리
- 기능별 모듈화로 독립적인 개발 가능
2. 타입 안전성
- Freezed를 통한 불변 데이터 모델
- Riverpod의 컴파일 타임 타입 체크
- Drift의 타입 안전한 쿼리
3. 코드 생성 자동화
- build_runner를 통한 보일러플레이트 최소화
- Freezed, Riverpod, JSON 직렬화 자동 생성
- 생산성 향상 및 휴먼 에러 감소
4. 크로스 플랫폼 지원
- 단일 코드베이스로 모바일(Android/iOS), 데스크톱(Windows), 웹 지원
- 플랫폼별 최적화된 데이터베이스 지원
- 반응형 UI로 다양한 화면 크기 대응
5. 오프라인 우선 설계
- 로컬 SQLite 데이터베이스로 오프라인 작동
- 빠른 응답 속도
- 향후 서버 동기화 기능 추가 예정
6. 유지보수성
- 명확한 폴더 구조
- 관심사의 분리
- 테스트 가능한 설계
7. 현대적인 기술 스택
- 최신 Flutter & Dart 버전
- Material 3 디자인
- 업계 표준 라이브러리 사용
📝 라이선스
📧 문의 : youp.han@gmail.com
UniRent - 스마트한 임대 관리의 시작
반응형
'초짜 IT보이 서바이벌 스토리' 카테고리의 다른 글
| 2025 년 #가트너 (#Gartner) 에서 발표한 10가지 주요 전략 기술 트렌드 (2) | 2024.12.09 |
|---|---|
| 2024 년 #가트너 (#Gartner) 에서 발표한 10가지 주요 전략 기술 트렌드 (1) | 2024.02.07 |
| 사내 메신저 사용의 모범사례 - Best Practices for Instant Messaging at Work (0) | 2023.06.21 |
| #electron #js #Crypto 사용 #복호화 #암호화 #예제 #example (0) | 2022.12.26 |
| Spring? & Spring Framework Overview (0) | 2022.09.19 |