Skip to content

FRONT-END-BOOTCAMP-PLUS-5/Next_POLAR

Repository files navigation

POLAR; 폴라 🐻‍❄️

극과 극을 잇다, 세대 갈등 해소를 위한 즐거운 봉사활동 커뮤니티 POLAR

image


Team 사나이클럽 (Team Realman club)

정승민 깃허브 프로필 조승연 깃허브 프로필 노석준 깃허브 프로필 손우헌 깃허브 프로필
정승민 조승연 노석준 손우헌



POLAR 개요

떨어지는 자원봉사 참여율... 깊어가는 세대 갈등

image image
자원봉사율 추이 세대갈등에 대한 전망 통계
  • 2009년, 19.6%로 최고점을 찍었던 자원봉사율은 2023년, 10.6% 수준으로 감소, 현재 추이가 유지될 전망. (source: 지표누리)
  • 2024년, '세대 갈등은 향후 더 심각해질 것이다' 48% 응답. (source: 한국리서치 여론 속의 여론)

자원봉사율은 줄어들고, 세대갈등은 늘어날 전망
봉사활동 참여를 늘리고 세대갈등을 줄일 수는 없을까?

이러한 물음 속에서 POLAR는 기획되었습니다.




시스템 소개

image

회원가입 및 로그인

image
image


헬프 작성 (시니어 회원)

image


헬프 지원 (주니어 회원)

image


헬프 수락 후 연락 (시니어 회원 - 주니어 회원)

image


헬프 완료 (시니어 회원 - 주니어 회원)

image


메인페이지 (시니어 / 주니어)

image
image


마이페이지 (시니어 / 주니어)

image
image


명예의 전당

image

그 외 기타 기능

  • 프로필 수정



POLAR 설계

Tech Stack

image


POLAR ERD

supabase-schema-hjjhgiuoyjsmhzsnogmg


POLAR Backend 아키텍처

계층형 클린 아키텍처를 적용하여 관심사를 분리하고, 각 계층별 의존성을 최소화하였습니다.
이를 통해 개발 및 리팩토링 과정에서 문제가 발생한 계층을 명확하고 빠르게 판별하고 접근할 수 있었습니다.


backend/
├── auths/
├── chats/
├── common/
├── helps/ <!--모든 시스템 디렉토리가 아래와 같은 구조를 갖습니다.-->
│   ├── applications/
│   ├── domains/
│   ├── infrastructures/
│   └── HelpModel.ts
├── images/
├── juniors/
├── reviews/
├── seniors/
└── users/

각 디렉토리는 폴라라는 서비스를 제공하기 위한 시스템 단위로 분류하였습니다. (e.g. 인증/인가 시스템, 이미지 업로드 시스템 등)
각 ```시스템``` 디렉토리 하위에는 클린 아키텍처를 구현하기 위한 applications, domains, infrastructures 계층 디렉토리로 구성되었습니다.

applications

applications/
├── dtos/
└── usecases/

applications 디렉토리는 클린 아키텍처의 application 계층을 구현합니다.
API 요청에서 클라이언트와 서버가 주고 받을 DTO
시스템을 구성하고 있는 usecase를 구현합니다.

domains

domains/
├── entities/
└── repositories/

domains 디렉토리는 클린 아키텍처 동심원의 가장 안쪽인 domain 계층을 구현합니다.
DB의 스키마와 완전히 동일한 구조를 정의한 파일들을 모아둔 entities
DB의 데이터를 갖고오기 위한 메서드들을 Repositories에 interface로 추상화합니다.

infrastructures

infrastructures/
├── mappers(optional)/
└── repositories/

infrastructures 디렉토리는 클린 아키텍처 동심원의 가장 바깥인 infrastructure 계층을 구현합니다.
DB와 js의 속성명 (lowerCamelCase or Snake_case) 을 매칭하기 위한 mappers
domains에서 추상화하여 정의된 repository를 각 DB에 적합하도록, 실제 데이터를 갖고오는 로직이 repositories에 구현됩니다.


POLAR 프로젝트 성과

image
클린 아키텍처를 성공적으로 적용 : 강사님께 POLAR의 BE 디렉토리 구조는 교보재로 참고해도 좋을 정도라는 평가를 받음.
Next.js 풀스택 활용 경험 : 그동안 FE 개발 프레임워크로만 사용하던 Next.js를 처음으로 풀스택 프레임워크로 사용하는 경험
명확한 이유를 갖는 기술 사용 연습 : 팀원들 간 꼼꼼한 코드리뷰



팀원별 간단 회고

image

CodeRabbit Pull Request Reviews

About

극과 극을 잇다, 세대 갈등 해소를 위한 즐거운 봉사활동 커뮤니티 POLAR

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •