Skip to content

hyeri-woo/lion-api

 
 

Repository files navigation

SNS 프로젝트 백엔드 API

SNS 프로젝트에서 사용되는 백엔드 API입니다.

로그인, 회원가입, 프로필, 게시물, 댓글, 상품, 팔로우 기능을 제공합니다.


멋쟁이사자처럼에서 제공하는 백엔드 API가 종료됨에 따라, 해당 API를 사용하는 유저들이 자신만의 서버를 생성하고 조작 및 연결할 수 있도록 명세를 참고하여 만들었습니다.
tripillow,  spport,  show-in-seoul 세 개의 프로젝트에서 테스트 완료 하였습니다.


Usage

Fork 후, 프로젝트에 맞게 설정하여 사용하실 수 있습니다.

설치 및 실행방법

  1. 설치

    npm install
    # or
    yarn install

  1. 실행방법

    env 파일을 먼저 설정 후 실행

  • dev

    npm start:dev | npm start:dev:hmr
    # or
    yarn start:dev | yarn start:dev:hmr
  • prod

    npm start:prod
    # or
    yarn start:prod

ENV 파일

  1. root에 .env파일 생성

  2. MongoDB 생성 후 DB_URL, DB_USER, DB_PASSWORD 추가

  3. 서버 배포 후 API_HOST 추가

  4. JWT_SECRET 키 생성 후 추가(JWT의 서명을 생성하고 검증하는 데 사용되는 비밀 값. 충분한 길이와 복잡성 권장.)

env 파일 예시

DEV_HOST=http://localhost:8080/
API_HOST=서버 배포 URL

# DB Server Info
DB_URL=데이터베이스 URL (예시: mongodb+srv://<username>:<password>@lion-api.abcd123.mongodb.net/<database_name>)
DB_USER=데이터베이스 username
DB_PASSWORD=데이터베이스 password
JWT_SECRET=JWT SECRET KEY (예시: 랜덤한 문자열, `openssl rand -hex 64` 입력 후 생성된 문자열 등)

MongoDB 데이터베이스 배포 및 연결

  1. MongoDB 아틀라스를 사용해 클러스트 생성.
  2. Database > Clusters > Connect 에서 url을 복사 후 env 파일에 입력
    • 유저 정보 (입력 후) database name도 같이 입력
    • ex) mongodb+srv://<username>:<password>@lion-api.abcd123.mongodb.net/<database_name>
  3. MongoDB Compass(GUI)를 사용해 통신시에 database에 잘 들어갔는지 확인(MongoDB 사이트내에서도 확인 가능)

📌  필수!! MongoDB Network Access 설정변경
MongoDB Network Access 설정 변경을 꼭 해야합니다. 변경하지 않을 경우 서버배포시 MongoDB에 access 실패로 에러가 나오게 됩니다.

  1. MongoDB 사이트(아틀라스)접속 후 SECURITY 카테고리 접속
  2. Network Access 접속
  3. ADD IP ADDRESS 버튼 클릭 (초록색 버튼)
  4. includes your current IP address 체크하거나 직접 Access List Entry에 0.0.0.0/0입력
    • 모든 네트워크의 접근을 허용

서버 배포 방법

원하는 서버 호스팅을 선택하여 해당 서버를 배포합니다.
추천하는 서버 호스팅 앱은 koyeb입니다. 제한까지 무료로 이용하실 수 있습니다.
배포 후 env 파일의 API_HOST에 추가해주세요.


Dependency

NodeJS TypeScript  NestJS  MongoDB  Passport  JWT  Yarn  Prettier  ESLint


Reference

멋쟁이사자처럼 BE API
일부 서버 Response와 다르게 적힌 명세는 수정했습니다.


Role

김도경 우혜리 이도하 임다솜
d-charlie-kim_profile_img seoyoung-kim_profile_img haron-lee_profile_img bringvotrevin_profile_img
d-charlie-kim hyeri-woo haron-lee bringvotrevin
- 프로필 모듈
- validationPipe
- 회원가입 모듈
- 게시글 모듈
- 이미지 모듈
- router 모듈
- 상품 모듈
- 로그인 모듈
- 댓글 모듈
좋아요 및 검색 기능

Contributors

Thanks to all the people who contribute:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.0%
  • JavaScript 1.9%
  • Shell 0.1%