Skip to content

archepro84/Bohemian_Rhapsody

Repository files navigation

✏️Bohemian Rhapsody (핀터레스트 클론 코딩) - Backend

Screenshot_56

🚩 프로젝트 소개

이미지 기반 SNS pinterest를 클론코딩한 프로젝트 입니다.

🗓 프로젝트 기간

2021년 7월 9일 ~ 2021년 7월 15일

👥 개발 인원

🛠 기술스텍

Front Back
React Node.js
Redux Express
Axios MySQL

📖 라이브러리

라이브러리 설명
body-parser 파라미터 추출
chokidar 파일 감시 라이브러리
cors 교차 리소스 공유
dotenv DB비밀번호, 시크릿키 암호화
express 서버
express-fileupload 파일업로드
fs 파일 수정
jsonwebtoken 회원가입 작동 방식
sequelize MySQL ORM
sequelize-cli MySQL ORM Console
mysql MySQL
cookie-parser 쿠키 저장
joi 입력데이터 검출
nunjucks 템플릿 언어

🗃 DB ERD

📂 Notion

📌 특징

1) 게시글 보여주기

  • 게시글을 보여줄때 무한스크롤이 가능하도록 LIMIT 옵션을 사용해서 정해진 갯수의 데이터만 통신하도록 했습닌다.
  • 즐겨찾기 기능을 위해 따로 즐겨찾기 테이블을 구성해서 자신이 즐겨찾기에 추가한 경우와 아닌 경우를 TRUE, False로 구분하였습니다.
select postId, img, 
        case when postId in (select postId from Favorites where userId = ${userId}) then "TRUE" else "FALSE" end as favorite
        from Posts
        LIMIT ${start}, ${limit};

2) 즐겨찾기

  • 즐겨찾기를 위한 Favorite 테이블을 따로두어 즐겨찾기 기능을 구현했습니다.
SELECT postId, img
        FROM Posts
        WHERE postId IN (SELECT postId FROM Favorites WHERE userId = ${userId})
        LIMIT ${start}, ${limit};

3) 검색 기능

  • Like 옵션을 활용하여 특정 글자가 들어간 글의 제목과 아티스트를 검색 가능하도록 구현하였습니다.
SELECT postId, img, 
            CASE WHEN postId IN (SELECT postId FROM Favorites WHERE userId = ${userId}) THEN "TRUE" ELSE "FALSE" END AS favorite
            FROM Posts
            WHERE title LIKE '%${keyword}%' OR artist LIKE '%${keyword}%'
            LIMIT ${start}, ${limit};

About

항해99 5주차 미니프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages