Skip to content

chs991209/ims_shortenurl_backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 

Repository files navigation

URL Shortening Service

길이가 긴 Url을 간단한 url로 바꿔서 공유하며 사용해 보세요 🎈

백엔드 - 최현수, 김문영

프론트엔드 - 정현용

Proejct - 3.COM

소개

위코드 50기 기업 협업 프로젝트

백엔드 서버 코드를 저장했습니다. Frontend 소스 코드는 여기에 있습니다.

저장소 구조

├── nest-cli.json
├── package.json
├── src
│   ├── app.controller.spec.ts
│   ├── app.controller.ts
│   ├── app.module.ts
│   ├── app.service.ts
│   ├── auth
│   │   └── auth.middleware.ts
│   ├── ims.we
│   │   ├── dto
│   │   ├── entities
│   │   │   └── ims.we.entity.ts
│   │   ├── ims.we.controller.spec.ts
│   │   ├── ims.we.controller.ts
│   │   ├── ims.we.module.ts
│   │   ├── ims.we.service.spec.ts
│   │   └── ims.we.service.ts
│   ├── main.ts
│   ├── middleware
│   │   ├── auth.module.ts
│   │   ├── dto
│   │   │   └── authDto.ts
│   │   ├── guard.ts
│   │   └── passport.jwt.ts
│   ├── urls
│   │   ├── dto
│   │   │   ├── create-qrcode.ts
│   │   │   ├── create-url.dto.ts
│   │   │   ├── get-original-url.dto.ts
│   │   │   ├── get-url.dto.ts
│   │   │   └── update-url.dto.ts
│   │   ├── entities
│   │   │   └── url.entity.ts
│   │   ├── urls.controller.spec.ts
│   │   ├── urls.controller.ts
│   │   ├── urls.module.ts
│   │   ├── urls.service.spec.ts
│   │   └── urls.service.ts
│   └── users
│       ├── entities
│       │   └── users.entity.ts
│       ├── users.controller.spec.ts
│       ├── users.controller.ts
│       ├── users.module.ts
│       ├── users.service.spec.ts
│       └── users.service.ts
├── test
│   ├── app.e2e-spec.ts
│   └── jest-e2e.json
├── tsconfig.build.json
├── tsconfig.json
└── yarn.lock


  • 백엔드 저장소 구조는 위와 같습니다.

기술스택

Backend: Nest.js

Frontend: Next.js

1-R-x-BQ6-JIvu-Lz-JNYJh-YW5wg


프로젝트

설치하기

  1. yarn을 설치해 주세요.

    brew install yarn
    
    yarn -v
    
    • 명령어를 입력했을 때 1.22.21 미만이면 버전 업그레이드를 진행해주세요.
  2. nestjs cli 10.2.1 버전을 설치해 주세요.

    sudo npm -i g @nestjs/[email protected]
    
  3. 백엔드 저장소를 클론해주세요.

    git clone https://github.com/chs991209/ims_shortenurl_backend
    
  4. yarn 패키지를 설치해 주세요.

    yarn install
    
    • 명령어는 디렉토리 최상단에서 실행해주세요.
    • pkg list는 package.json에서 확인하시면 됩니다.

  1. dbmate를 (brew로도 설치 가능) 글로벌 설치하여 db 설치를 진행해 주세요

    $ brew install -g dbmate
    $ npm install dbmate
    
    • dbmate를 설치하였으면 mysql 설치를 진행합니다. username과 password를 지정하고 사용할 database를 생성해 줍니다.
    • Project 폴더 내에 .env 파일을 생성합니다.
    DATABASE_URL="protocol(ex.mysql)://username:password@host:port/DATABASE_NAME"
    
    • .env 파일 내에 위 내용을 추가해 줍니다. sql 파일을 Repo에서 내려받습니다.
    mkdir db
    
    • 클론받은 directory 최상단에서 db 폴더를 생성해 줍니다.
    • 클론받은 sql 파일을 db 폴더 내의 repo의 순서와 동일하게 넣어 줍니다.

    dbmate up
    

    dbmate와 관련된 설명은 여기에서 볼 수 있습니다(공식 문서).

실행하기

  • 아래 명령어를 입력하여 실행해주세요.
    yarn start:dev
    
    • 명령어는 디렉토리 최상단에서 실행해주세요.

기여하기

위코드 50기 팀원 총 3명이 참여하였습니다.

프론트엔드 1명, 백엔드 2명이 참여하였습니다.

현재 기여하기는 팀원들을 통해서만 가능하니, 추가 코드 수정은 팀원을 통해 추후 진행할 예정입니다.

벤치마킹 Platform

Url Shortening Service Bitly를 벤치마킹하였습니다.

  • 줄여진 주소를 입력하면 원본 url로 이동하도록 호스팅해 주는 기능을 참고하였습니다.

Bitly 사이트 메인

벤치마킹 포인트 👀

회원과 비회원의 공통된 기능

  • bitly는 비회원은 기능을 이용할 수가 없습니다.
  • 비회원은 24시간동안 10회, 회원은 무제한으로 사용할 수 있도록 기능을 구성하였습니다.
  • 회원의 결제 멤버십에 따른 기능 확장은 추후에 추가하도록 정하였습니다.
  • 비회원, 회원 모두 원본 url로 이동시키는 qrcode 이미지 생성을 할 수 있습니다.

마이페이지에서 url 생성 기록 조회

  • 로그인한 회원이 마이페이지에 접근하여 과거의 URL 생성 History를 볼 수 있습니다.

파일이 잠시 누락됐습니다!

Dev Story

기여한 사람들

🍑 Munyeong 🥑 Hyunsu 🍇 Hyeonyong

Dev Note

Server 관련 google docs는 여기에 있습니다.

저장소에 별 달아주세요 ✨✨✨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published