Repository files navigation
성동구청과 시범계약 체결할 때 제출했던 MVP입니다.
사용자가 촬영한 현수막의 합불법을 판단하는 앱니다.
합불 판단에 대한 기준은 현수막에서 추출한 텍스트를 기반으로 판단합니다.
옥외광고법 8조를 학습한 GPT가 현수막의 내용을 판단하여 합불 여부를 내립니다.
현재 구조는 MVVM 디자인패턴을 채택했습니다.
최소 기능의 MVP와 맞지 않은 패턴입니다. 이 패턴의 치명적 단점은 구조 구현이 복잡하고 어렵다는 점입니다.
이러한 구조를 채택한 이유는 큰 프로젝트에 맞는 구조를 공부하다가 마침 프로젝트 제의가 들어와서 적용해보았습니다.
MVVM은 기존 MVC에서 뷰와 모델의 지나친 의존관계를 개선하고 각각 독립적으로 이용하려는 패턴입니다.
뷰와 뷰모델과의 바인드는 Mobx, 상태관리는 Provider를 이용하였습니다.
constants
앱 전반적으로 재사용되는 요소들을 모아놨습니다.
core
데이터 처리, 확장성, UI 컴포넌트를 어떻게 구현할 지에 대한 세부적인 사항을 기술합니다.
data
API, 로컬 저장소와 앱 사이의 다리 역할을 맡습니다. 데이터의 변경이 앱에 미치는 영향을 최소화합니다.
domain
앱의 비즈니스 로직과 엔티티를 정의합니다. 무엇을 해야하는 지에 초점이 맞추어져 있습니다.
presentation
utils
앱 전반적으로 재사용 가능한 함수와 클래스를 관리합니다. constant와 차이점은 utils는 주로 기능적인 부분을 지원합니다. constant는 변경되지 않는 데이터를 관리합니다.
사용자가 이미지를 서버에 전송하면 일단 firebase storage에 이미지를 담습니다.
firebae functions는 스토리지에 새로운 이미지가 올라오면 이 이미지를 aws ai server로 전송합니다.
ai server는 이미지가 현수막인지 판단하고 naver ocr를 이용해서 텍스트를 추출합니다.
추출된 텍스트를 옥외광고법 8조를 학습한 gpt가 합불법 판단하고, 이 데이터를 다시 firebase functions v2로 전송합니다.
ai server로 부터 받은 데이터는 cloud firestore에 저장되고, 플러터로 데이터를 표기합니다.
깃주소 : https://github.com/moncles-fam/firebase
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
You can’t perform that action at this time.