Skip to content

컨텐츠 기반 필터링 알고리즘을 활용한 노래방 선곡 추천 서비스

Notifications You must be signed in to change notification settings

hyeon8571/SongPicker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

631 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SongPicker

Description

🌈 프로젝트 소개

🎈 서비스 개요

[컨텐츠 기반 필터링 알고리즘을 활용한 노래방 선곡 추천 서비스]

SongPicker는 노래방 이용 데이터를 바탕으로 사용자의 취향에 맞는 선곡을 추천해 주는 서비스입니다.
개별 선곡 추천뿐만 아니라 팀을 만들어 팀의 분위기에 맞는 노래를 추천받을 수 있고, 장르별로 노래를 추천받을 수 있습니다.
또한 QR 기능을 이용해 노래방 기기에 연동하여 쉽게 예약할 수 있고, 추천 차트 또한 노래방 기기 화면으로 볼 수 있습니다.


📆 진행 기간

2024.08 - 2024.10 ( 8주 )


👨🏻‍💻 개발 인원

원승현
@hyeon8571

BE
Leader
박은지
@eunji04

BE
최수환
@suwhan2

BE
박주영
@jjuy00

FE
김민진
@codemj99

FE
조소연
@soyeoning

FE

📌 주요기능 소개

💡 선곡 추천 기능

노래방 이용 데이터를 기반으로 사용자에게 알맞은 선곡을 추천합니다.
개인 이용 기록을 바탕으로한 개인 선곡 추천, 그룹 이용 기록을 바탕으로한 그룹 선곡 추천을 제공합니다.

개인 선곡 추천 기능

그룹 선곡 추천 기능


💡 노래방 연동 기능

노래방 기기에 부여된 QR코드를 태깅하여 연동할 수 있습니다.
연동을 완료하면 노래를 예약할 수 있고, 추천 차트를 기기에서도 확인할 수 있습니다.

개별(솔로) 모드 연동 기능

그룹 모드 연동 기능

예약 기능

예약 목록 조회

추천 차트 조회


💡 그룹 생성 및 초대 기능

그룹을 생성하고 팀원을 초대할 수 있습니다.
그룹에 대한 선곡 추천을 받을 수 있습니다.

그룹 생성 기능

팀원 초대 기능

팀 초대 수락/거절 기능



시스템 아키텍처

개발 환경

🟡 Frontend

  • 개발 언어: TypeScript 5.4.2
  • 빌드 툴: Vite 5.4.5
  • 프레임워크: React 18.3.1

🟢 Backend

  • 개발 언어: Java 17
  • 빌드 툴: Gradle 8.10.1
  • 프레임워크: SpringBoot 3.3.3

🟣 Data

  • 개발 언어: Python 3.11.10
  • 프레임워크: Django 4.2.16

⚒️ 기술 스택

프레임워크 및 라이브러리


데이터베이스


인프라 및 배포


🖨️ ERD

ERD 이미지

📊 API 명세서

API 명세서 보기

_C__Users_SSAFY_AppData_Local_Temp_c4329436-0718-4647-b396-b2cbe905768c_f7a73be4-594f-4e5b-ab72-76e4993032f9_Export-294bb2cb-2e83-4319-be1a-3d38250cf085 zip 68c_API%20%E1%84%86%E1%85%A7%E1%86%BC%E1%84%89%E1%85%A6%E

📂 디렉토리 구조

frontend

.
├── README.md
├── eslint.config.js
├── index.html
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
│   ├── basicImg.png
│   ├── firebase-messaging-sw.js
│   ├── fonts
│   ├── icons
│   ├── manifest.json
│   └── songPicker_icon.png
├── src
│   ├── App.css
│   ├── App.tsx
│   ├── assets
│   ├── components
│   ├── firebaseConfig.ts
│   ├── hooks
│   ├── index.css
│   ├── layouts
│   ├── main.tsx
│   ├── pages
│   ├── react-qr-scanner.d.ts
│   ├── services
│   ├── stores
│   ├── styles
│   └── vite-env.d.ts
├── tailwind.config.js
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts

backend

.
├── java
│   └── com
│       └── fastarm
│           └── back
│               ├── BackApplication.java
│               ├── auth
│               │   ├── config
│               │   ├── controller
│               │   ├── dto
│               │   ├── enums
│               │   ├── exception
│               │   ├── security
│               │   └── service
│               ├── basedata
│               │   ├── constants
│               │   ├── controller
│               │   ├── dto
│               │   ├── entity
│               │   ├── exception
│               │   ├── repository
│               │   └── service
│               ├── common
│               │   ├── config
│               │   ├── constants
│               │   ├── controller
│               │   ├── exception
│               │   └── service
│               ├── connection
│               │   ├── controller
│               │   ├── dto
│               │   ├── entity
│               │   ├── enums
│               │   ├── exception
│               │   ├── repository
│               │   └── service
│               ├── history
│               │   ├── controller
│               │   ├── dto
│               │   ├── entity
│               │   ├── repository
│               │   └── service
│               ├── karaoke
│               │   ├── dto
│               │   ├── entity
│               │   └── repository
│               ├── likes
│               │   ├── controller
│               │   ├── dto
│               │   ├── entity
│               │   ├── exception
│               │   ├── repository
│               │   └── service
│               ├── member
│               │   ├── controller
│               │   ├── dto
│               │   ├── entity
│               │   ├── enums
│               │   ├── exception
│               │   ├── repository
│               │   ├── service
│               │   └── validation
│               ├── notification
│               │   ├── controller
│               │   ├── dto
│               │   ├── entity
│               │   ├── enums
│               │   ├── exception
│               │   ├── repository
│               │   └── service
│               ├── song
│               │   ├── constants
│               │   ├── controller
│               │   ├── dto
│               │   ├── entity
│               │   ├── enums
│               │   ├── exception
│               │   ├── repository
│               │   └── service
│               └── team
│                   ├── controller
│                   ├── dto
│                   ├── entity
│                   ├── exception
│                   ├── repository
│                   ├── service
│                   └── validation
└── resources
    ├── application.yml
노래방 서비스 디렉토리 구조

karaoke_front

.
├── README.md
├── dist
│   ├── assets
│   ├── fonts
│   └── index.html
├── eslint.config.js
├── index.html
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
│   └── fonts
├── src
│   ├── App.css
│   ├── App.tsx
│   ├── assets
│   ├── atoms
│   ├── hooks
│   ├── index.css
│   ├── main.tsx
│   ├── molecules
│   ├── organisms
│   ├── pages
│   ├── services
│   ├── shared
│   ├── styles
│   ├── template
│   ├── utils
│   └── vite-env.d.ts
├── tailwind.config.js
├── tsconfig.app.json
├── tsconfig.app.tsbuildinfo
├── tsconfig.json
├── tsconfig.node.json
├── tsconfig.node.tsbuildinfo
└── vite.config.ts

karaoke_back

.
├── java
│   └── com
│       └── fastarm
│           └── back
│               ├── BackApplication.java
│               ├── common
│               │   ├── config
│               │   ├── constants
│               │   ├── controller
│               │   ├── exception
│               │   └── service
│               ├── connection
│               │   ├── entity
│               │   ├── enums
│               │   └── repository
│               ├── history
│               │   ├── entity
│               │   └── repository
│               ├── karaoke
│               │   ├── constants
│               │   ├── controller
│               │   ├── dto
│               │   ├── entity
│               │   ├── exception
│               │   ├── repository
│               │   └── service
│               ├── member
│               │   ├── entity
│               │   ├── enums
│               │   ├── exception
│               │   └── repository
│               ├── song
│               │   ├── entity
│               │   ├── exception
│               │   └── repository
│               └── team
│                   ├── entity
│                   ├── exception
│                   └── repository
└── resources
    └── application.yml

About

컨텐츠 기반 필터링 알고리즘을 활용한 노래방 선곡 추천 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6