Skip to content

Latest commit

 

History

History
249 lines (204 loc) · 12.2 KB

README.md

File metadata and controls

249 lines (204 loc) · 12.2 KB

청년들의 주거비 경제적 어려움을 공유 경제를 통해 해결하고, 함께 살아가는 플랫폼.

'마루'

logo

목차


1. 프로젝트 소개

저희는 공간을 함께 공유하며 사용할 사람들을 연결해주는 플랫폼을 제공하는 것을 목표로 합니다.

도시 내 주거비의 상승, 전셋값의 증가 등 다양한 이유로 젊은 세대가 경제적 어려움을 겪고 있습니다. 저희의 핵심 목적은 공유 경제를 통해 이러한 문제를 해결하는 것입니다. 즉, 젊은 세대가 주거 비용을 분담하고 남는 공간을 효율적으로 사용함으로써 경제적 부담을 줄일 수 있도록 돕고자 합니다.

이를 위해, 사용자 각자의 생활 방식에 맞는 룸메이트 또는 하우스메이트를 찾을 수 있도록 지원하며, 공간을 공유하고자 하는 이들을 연결하여 비용 부담 문제를 해결하려고 합니다.

2. Abstract

We aim to provide a platform that connects people who want to share their space, helping to alleviate the financial burden associated with housing costs.

With the rise in urban living costs and increased rent prices, the younger generation is facing economic difficulties. Our core purpose is to solve these problems through the sharing economy. In other words, we want to help the younger generation share housing costs and efficiently use available space to reduce their economic burden.

To this end, we support finding roommates or housemates that match each user's lifestyle, connecting those who wish to share their space to solve the issue of financial burden.

3. 주요 기능

  • 메이트 찾기
    • 게시글을 통한 모집 기능과 추천 시스템을 통한 메이트 매칭 기능을 제공합니다.
  • 유저 인증 / 인가 기능
    • 유저 간 신뢰 구축을 위해, 공인된 서비스(카카오, 네이버)를 이용한 로그인과 신분증 인증같은 유저 신원 확보 기능을 마련합니다.
  • 대학교 인증
    • 대학생 사용자에게는 대학교 인증을 통해 기숙사 룸메이트 찾기와 같은 추가 기능을 제공합니다.
  • 회원(프로필) 기능
    • 사용자가 자신의 특성을 상세하고 쉽게 기술할 수 있도록 유도하여, 보다 정확한 추천을 받을 수 있게 합니다.
  • 채팅 기능
    • 사용자 간의 원활한 소통을 위해, 서비스 내에 채팅 기능을 제공합니다.

4. 아키텍처

프로젝트 내 각 파트의 아키텍처 구조와 시스템 구성도입니다.

4.1 Front-end

스크린샷 2024-04-04 02 59 41

4.2 Back-end

스크린샷 2024-04-04 02 59 55

4.3 Deployment

스크린샷 2024-04-04 03 00 24

5. 시연 동영상

02.-.mp4

6. 팀 소개

최정민 조희정 이준호 정연수

@cjeongmin

@he2e2

@leejh7

@cheesecrust
****1679 ****3147 ****1675 ****1665
Front-end Front-end Back-end Back-end

7. 사용법

  • Prerequisite

    • node.js
    • npm or yarn
    • yarn
    • PostgreSQL
    • Redis
    • MongoDB
    • AWS S3 Bucket (IAM 사용자 생성, public 차단)
    • python3
    • pip3
  • 공통 매뉴얼

    git clone https://github.com/kookmin-sw/capstone-2024-02/
  • Front-end

    cd front-end
    yarn
    yarn dev
    
    or
    
    npm install
    npm run dev
  • Back-end

    cd back-end
    ./gradlew clean build -x test
    java -jar build/libs/*.jar 
  • Rec-sys

    cd rec-sys
    pip install -r requirement.txt
    uvicorn main:app —reload 
  • 환경 설정

    • Front-end
      • 환경 변수 파일을 설정합니다.
        // .env.local
        NEXT_PUBLIC_API_URL={SERVER API LOCATION}
        NEXT_PUBLIC_CLIENT_URL=http://localhost:3000
        NEXT_PUBLIC_NAVER_MAP_CLIENT_ID={Naver MAP API Client ID}
        NEXT_PUBLIC_NAVER_MAP_CLIENT_SECRET={Naver MAP API SECRET VALUE}
        
    • Back-end
      • application-cloud.yaml 파일 설정 (이 때, aws iam 사용자에 s3 접근 role 을 부여해야 합니다.)
        cloud:
            aws:
            s3:
                bucket: {S3 bucket name}
            credentials:
                access-key: {AWS IAM access-key}
                secret-key: {AWS IAM secret-key}
            region:
                static: ap-northeast-2
            stack:
                auto: false
      • application-datasource.yml 파일 설정 (먼저, 추천 시스템을 배포해야합니다.)
        external-server:
            url: {추천 시스템 배포 url}
        
        spring:
            datasource:
                url: jdbc:postgresql://{db_host}:{db_port}/{db_name}
                username: {db_username}
                password: {db_password}
                driver-class-name: org.postgresql.Driver
            data:
                redis:
                    host: localhost
                    port: 6379
                mongodb:
                    host: {db_host}
                    port: 27017
                    authentication-database: maru
                    username: {db_username}
                    password: {db_password}
                    database: {db_name}
                    auto-index-creation: true
      • application-oauth.yml 파일 설정
        spring:
        security:
        oauth2:
            client:
            registration:
                kakao:
                client-id: {social_client_id}
                client-secret: {social_client_secret}
                authorization-grant-type: authorization_code
                
                redirect-uri: {callback_uri}
                client-authentication-method: client_secret_post
                naver:
                client-id: {social_client_id}
                client-secret: {social_client_secret}
                authorization-grant-type: authorization_code
                redirect-uri: {callback_uri}
            provider:
                kakao:
                authorization-uri: https://kauth.kakao.com/oauth/authorize
                token-uri: https://kauth.kakao.com/oauth/token
                user-info-uri: https://kapi.kakao.com/v2/user/me
                user-name-attribute: id
                naver:
                authorization-uri: https://nid.naver.com/oauth2.0/authorize
                token-uri: https://nid.naver.com/oauth2.0/token
                user-info-uri: https://openapi.naver.com/v1/nid/me
                user-name-attribute: response
    • Rec-sys
      DB_NAME={db_name}
      DB_USER={db_username}  # 데이터베이스 사용자 이름
      DB_HOST={db_host}
      DB_PORT=5432  # 기본 포트는 5432
      DB_PASSWORD={db_password}
      

8. 기술 스택

Front-end


Back-end


Rec-sys


9. 기타