🚀 Introduction
올 여름 Flutter의 전반부를 공부하고 자가진단 앱을 만든 이후, 이번 학기에 Screen Navigation, Provider, HTTP Request, Firebase Database 등을 추가로 공부하였다. 그래서 Google Firebase Realtime Database를 사용하여 REST API로 데이터를 주고받으며 CRUD가 가능한 프로젝트를 구상하였다.
대학생 커뮤니티 앱 에브리타임을 모티브로 하되, 코로나 시대에 같은 학과 학생들끼리 조별과제 팀원모집, 과제 궁금증 해결, 학과 관련 정보 교류 등을 쉽게 할 수 있도록 게시판을 학과별로 분류한 커뮤니티 앱을 제작하기로 하였다.
🔗 Repository
https://github.com/CNU-2021-SE14/forum-app-demo
✏️ Class Modeling

✔️ 프로젝트 구조
- lib/models - 게시판, 댓글, 알림메시지, 게시물 각각에 대한 클래스와 http request 오류응답 메시지를 리턴하기 위한 클래스가 구현되어 있다.
- lib/providers - 로그인/회원가입(authentication), Firebase Realtime Database와 연동하여 게시판 목록 로드, 게시물, 댓글, 알림 메시지에 대한 CRUD 기능을 구현하였다. 여기에서 구현한 클래스들은 with 키워드로 ChangeNotifier의 기능을 오버라이드하기 때문에 notifyListeners() 라는 함수를 호출하여 Provider를 사용하여 클래스를 구독하는 객체에게 데이터의 변화를 알릴 수 있다.
- lib/screens - 앱에서 표시될 화면들의 UI를 구현하였다.
- _lib/widgets - 화면에 표시되는 컴포넌트들 중 코드가 긴 위젯들은 따로 여기에 저장하였다.

Firebase Realtime Database에는 게시판(boards), 게시물(posts), 댓글(comments), 알림 메시지(notifications) 데이터들이 저장되고 앱에서 fetch하여 사용한다.

✔️ Features & Screenshots










📚 참고자료
혹시 이 어플 실행은 어떻게 할 수 있을까요? flutter 다운받아서 run 했는데 오류가 뜨네요ㅠ