아마추어 사진 작가들을 위한 온라인 3D 전시회 서비스
누구나 사진 작가가 될 수 있다.
그러나 전시관은 프로의 전유물이라 대여할 수 없다면?
온라인 공간에서 3D 전시회를 열어보자!
해당 프로젝트는 3D 갤러리 프로젝트 'Nedio'의 백엔드 프로젝트입니다.
해당 프로젝트의 목표가 클라이언트 프로젝트에게 데이터를 제공하는 것이기에 코드의 대부분이 API로 이루어져 있습니다.
클릭하시면 서비스 페이지로 이동합니다.
📦src
┣ 📂auth
┃ ┣ 📜auth.module.ts
┃ ┣ 📜auth.service.ts
┃ ┣ 📜constants.ts
┃ ┣ 📜jwt-auth.guard.ts
┃ ┣ 📜jwt.strategy.ts
┃ ┣ 📜local-auth.guard.ts
┃ ┗ 📜local.strategy.ts
┣ 📂comment
┃ ┣ 📂dto
┃ ┃ ┣ 📜create-comment.dto.ts
┃ ┃ ┗ 📜update-comment.dto.ts
┃ ┣ 📂schema
┃ ┃ ┗ 📜comment.schema.ts
┃ ┣ 📜comment.controller.ts
┃ ┣ 📜comment.module.ts
┃ ┗ 📜comment.service.ts
┣ 📂gallery
┃ ┣ 📂dto
┃ ┃ ┣ 📜create-gallery.dto.ts
┃ ┃ ┗ 📜update-gallery.dto.ts
┃ ┣ 📂schema
┃ ┃ ┗ 📜gallery.schema.ts
┃ ┣ 📜gallery.controller.ts
┃ ┣ 📜gallery.module.ts
┃ ┗ 📜gallery.service.ts
┣ 📂hall
┃ ┣ 📂dto
┃ ┃ ┣ 📜create-hall.dto.ts
┃ ┃ ┗ 📜update-hall.dto.ts
┃ ┣ 📂schema
┃ ┃ ┗ 📜hall.schema.ts
┃ ┣ 📜hall.controller.ts
┃ ┣ 📜hall.module.ts
┃ ┗ 📜hall.service.ts
┣ 📂upload-image
┃ ┣ 📜upload-image.controller.ts
┃ ┣ 📜upload-image.module.ts
┃ ┗ 📜upload-image.service.ts
┣ 📂user
┃ ┣ 📂dto
┃ ┃ ┣ 📜create-user.dto.ts
┃ ┃ ┗ 📜update-user.dto.ts
┃ ┣ 📂schema
┃ ┃ ┗ 📜user.schema.ts
┃ ┣ 📜user.controller.ts
┃ ┣ 📜user.module.ts
┃ ┗ 📜user.service.ts
┣ 📜app.controller.ts
┣ 📜app.module.ts
┣ 📜app.service.ts
┗ 📜main.ts
# 프로젝트 필요 패키지 설치
$ npm install
# .env 파일 내용
MONGO_URL = 'mongodb+srv://<id>:<pw>@cluster0.tgtl1.mongodb.net/<DB name>?retryWrites=true&w=majority'
AWS_S3_BUCKET_NAME='AWS 버킷 이름'
AWS_ACCESS_KEY_ID='각자의 AWS_ACCESS_KEY_ID'
AWS_SECRET_ACCESS_KEY='각자의 AWS_SECRET_ACCESS_KEY'
AWS_REGION='각자의 AWS_REGION'
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
- 요청이 오면 req -> app -> routes -> controllers -> services -> controllers -> res 순으로 처리됩니다.
- login api를 통해 로그인하면 jwt 토큰이 Cookie로 저장되며, jwt 토큰이 필요한 api의 경우 헤더에서 토큰 값을 읽어와 자동으로 인증합니다.
- 파일 수정, 삭제의 경우 jwt 토큰을 분해하여 해당 아이디가 수정하려는 요소의 생성자 아이디와 같은지 비교하는 로직으로 권한을 확인합니다.
- 로그인 api(jwt 토큰 사용)
- 사용자 조회, 수정, 삭제 api
- 갤러리 조회, 생성, 수정, 삭제 api
- 갤러리 검색 api(카테고리, 제목, 작성자 조건)
- 카테고리 별 하나씩 갤러리를 조회하는 api
- 오픈 예정, 오픈 중인 갤러리를 조회하는 api
- 자신이 생성한 갤러리를 조회하는 api
- 전시관 조회, 생성, 수정, 삭제 api
- 특정 갤러리의 모든 방명록들(comments)를 조회하는 api
- 방명록 생성, 수정, 삭제 api
- 요청으로 formData를 받아 AWS S3에 업로드하는 api
https://www.notion.so/elice/6a4b5dac8aec4297a270d2292a3719f9
https://documenter.getpostman.com/view/18610955/UVkjvdDh
Backend | Frontend | Frontend | Frontend | Frontend |
---|---|---|---|---|
김동근 | 김도영 | 손지성 | 이창혁 | 이동훈 |