- Dump'in Admin Server
- 목차 📋
- 개요
- 사용 기술
- 프로젝트 진행 및 이슈 관리
- ERD
- 아키텍처
- 구현 과정 및 설명
- Did You Know
- API Endpoint
- 테스트 케이스
- API Reference
덤핀 어플리케이션은 사용자 주변의 다양한 포토부스를 소개하고 프레임 및 진행 중인 이벤트 정보를 제공하는 플랫폼입니다. 사용자들은 덤핀 어플을 통해 지역 내 포토부스의 다양한 특징과 프레임을 확인할 수 있으며, 현재 진행 중인 이벤트에 참여할 수 있습니다.
덤핀 어드민은 어플리케이션의 관리 백오피스로서, 포토부스 정보의 업데이트, 이벤트 관리, 사용자 데이터 분석 등을 수행합니다. 어드민을 통해 쉽게 어플리케이션의 콘텐츠를 관리하고 최신 정보를 반영할 수 있습니다.
이를 통해 사용자들은 항상 다양하고 흥미로운 포토부스 경험을 즐길 수 있으며, 어플리케이션은 지속적인 업데이트와 새로운 이벤트를 통해 사용자들을 유지하고 확장할 수 있습니다.
-
세션 인증 및 인가
- express-session을 이용해서 서버 메모리가 아닌 postgresql로 세션 스토어 사용
- 쿠키 세션 적용
- Guard로 인가 기능 적용
- Rate Limiting으로 무작위 대입 방지
-
대시보드 기능
-
날짜별 가입자수, 리뷰수 보기 적용
-
TypeORM 쿼리빌더에서 groupBy를 이용
countUsersByDate(): Promise<RawCountByDate[]> { return this.createQueryBuilder('user') .select(['DATE(created_at) as created', 'COUNT(id) as user']) .where('deleted_at IS NULL') .groupBy('created') .orderBy('created', 'DESC') .getRawMany(); }
-
통합 대시보드 보기
- 날짜별 가입자수, 리뷰수 쿼리 결과를 대시보드 서비스 로직에서 통합
-
-
포토부스 관리 기능
- 포토부스 업체를 생성, 수정할 수 있는 기능 적용
- 어플리케이션 내의 지도에 표시 지역별 포토부스 지점관리 기능 적용
-
이벤트 관리 기능
- 어플리케이션에서 포토부스 업체별 시행하고있는 이벤트나 한정 기간동안 프레임을 볼 수 있는 이벤트 생성 기능
- 이벤트를 수정하면서 관련 이미지, 해시태그를 테이블로 정규화해서 관리
-
리뷰 관리 기능
- 유저가 작성한 리뷰를 확인하고 부적절한 내용은 삭제할 수 있게 조회 및 삭제기능 적용
-
유저 관리 기능
- 가입한 유저의 정보를 확인 (수정 불가)
-
로그 모니터링
- Sentry, Winston을 이용해 로그 레벨에 따라 알림
- info 레벨: 이미 예외처리를 작성한 내용은 Winston으로 파일로 만들어서 관리
- error 레벨: 내부 서버 에러나 예상치 못한 에러는 Sentry로 보내 이메일로 알림
- Sentry의 Cron 모니터링과 NestJS 스케쥴링으로 주기적으로 서버 상태 모니터링
- Sentry, Winston을 이용해 로그 레벨에 따라 알림
https://admin.dump-in.co.kr/api/swagger