Skip to content

Nowdays-Goodnight-Cool-Niang/SharEv-Backend

Repository files navigation

목차

서비스 소개

🤔 네트워킹, 이런 경험 있으신가요?

  • 반복되는 즉석 자기소개 부담스러워요.
  • 여러 사람을 만나고 나면 누가 누구였는지 헷갈려요.
  • SNS를 주고 받을 때 번거로워요.

💡 SHARE:V는

QR 기반의 행사용 명함 서비스로, 더 쉽고 즐겁게 네트워킹 해보세요.

  • 서로의 명함을 공유하며 자연스럽게 대화를 시작할 수 있어요.
  • 행사별 명함으로 인맥과 대화 내용을 구별할 수 있어요.
  • 서로의 SNS에 쉽게 접속하며 행사 이후에도 인연을 이어갈 수 있어요.

타임라인

쉐어브_타임라인

주요 기능

가입 및 프로필 생성 행사 참여 및 카드 생성 참가자 명함 조회 (명함 공유 전)
쉐어브_가입+프로필생성 쉐어브_행사참여+명함생성 쉐어브_카드공유전
참가자 명함 받기 (PIN 번호) 참가자 명함 조회 (명함 공유 후) 및 피드백 제보 프로필 수정 및 로그아웃
쉐어브_카드공유 쉐어브_명함조회_공유완료 쉐어브_프로필수정
탈퇴 및 약관 조회 예외처리 (존재하지 않는 페이지) 예외처리 (네트워크 연결 끊김)
쉐어브_탈퇴 및 약관 쉐어브_예외처리1 쉐어브_예외처리_서버

프로젝트 구조

기술스택

Category Stack
Frontend TypeScript npm ESLint Prettier Vite React Tailwind CSS React Query Zustand MSW
Backend Java Spring Boot Spring Security Spring Data JPA QueryDSL Redis MySQL
Deployment Docker Google Cloud GitHub Actions
Communication Notion Figma Discord

아키텍처

image

ERD

erDiagram
    accounts {
        bigint account_id PK
        role_type role
        text name
        text email
        timestamptz created_at
        timestamptz updated_at
    }

    oauth_accounts {
        oauth_provider provider PK
        text subject_identifier PK
        bigint account_id FK
        timestamptz created_at
        timestamptz updated_at
    }

    teams {
        bigint team_id PK
        team_certification certification
        text title
        text content
        boolean activate_flag
        timestamptz created_at
        timestamptz updated_at
    }

    members {
        bigint member_id PK
        bigint team_id FK
        bigint account_id FK
        member_status status
        member_role role
        timestamptz created_at
        timestamptz updated_at
    }

    gatherings {
        uuid gathering_id PK
        visible_type visible
        bigint team_id FK
        text title
        text content
        timestamptz start_at
        timestamptz end_at
        text place
        text image_url
        text gathering_url
        text contact
        timestamptz deleted_at
        timestamptz register_start_at
        timestamptz register_end_at
        timestamptz created_at
        timestamptz updated_at
    }

    introduce_templates {
        bigint introduce_template_id PK
        uuid gathering_id FK
        int version
        jsonb content
        timestamptz created_at
        timestamptz updated_at
    }

    cards {
        bigint card_id PK
        uuid gathering_id FK
        bigint account_id FK
        int pin_number
        int template_version
        jsonb introduction_text
        timestamptz created_at
        timestamptz updated_at
    }

    connections {
        bigint connection_id PK
        bigint my_card_id FK
        bigint other_card_id FK
        card_connection_status status
        text memo
        timestamptz created_at
        timestamptz updated_at
    }

    links {
        bigint link_id PK
        bigint account_id FK
        text link_url
    }

    feedbacks {
        bigint feedback_id PK
        text content
        timestamptz created_at
        timestamptz updated_at
    }

    accounts ||--o{ oauth_accounts : "has"
    accounts ||--o{ members : "belongs to"
    accounts ||--o{ cards : "creates"
    accounts ||--o{ links : "owns"
    teams ||--o{ members : "has"
    teams ||--o{ gatherings : "hosts"
    gatherings ||--o{ introduce_templates : "defines"
    gatherings ||--o{ cards : "contains"
    introduce_templates ||--o{ cards : "structures"
    cards ||--o{ connections : "originates (my_card)"
    cards ||--o{ connections : "targets (other_card)"
Loading

About

QR로 연결하는 행사용 디지털 명함 BE

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages