Skip to content
ProjectInTheClassPublic

Latest commit

 

History

126 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation



0. Getting Started (시작하기!)



1. Project Overview (프로젝트 개요)

  • 프로젝트 이름: Umai!
  • 프로젝트 설명: 개인맞춤형 맛집추천 어플


2. Team Members (팀원 및 팀 소개)

박호연 김진태 전주환
박호연 김진태 전주환
사원 팀장 인턴
GitHub GitHub GitHub


3. Key Features (주요 기능)

  • 회원가입:

    • 회원가입 전 설문을 통해 맛BTI 정보를 수집합니다.
    • 회원가입 시 DB에 유저정보가 등록됩니다.
  • 로그인:

    • 사용자 인증 정보를 통해 로그인합니다.
    • 토큰 인증으로 진행합니다.
  • 내 맛BTI로 맛집 추천:

    • 설문조사로 통해 맛BTI 도출
    • 맛BTI별 음식 추천
  • Umai가 선정한 맛집:

    • 인증된 맛집을 유저들에게 제공
  • 유저 프로필:

    • 해당 맛BTI를 보여주고 맛BTI카드라는 재미요소를 추가함
    • 프로필 편집기능
    • 친구들에게 공유하는 기능(맛BTI카드 or QR카드)


4. Tasks & Responsibilities (작업 및 역할 분담)

박호연 박호연
  • 프론트엔드
  • 매인 화면 구현
  • Umai Picks화면 구현
  • 맛BTI 카드 구현
  • 디자인 설계
김진태 김진태
  • 백엔드
  • DB설계
  • 프론트-백 통신 담당
  • 앱 기획담당
전주환 전주환
  • 프론트엔드
  • 개인화면 수정
  • 프론트와 백앤드 연동 분석및 구현
  • 로고 제작


5. Technology Stack (기술 스택)

5.1 Frotend

SwiftUI swift 5.0

5.2 Backend

특이사항
Node.js nodejs 23.2.0 "https://github.com/wannabewize/nodejs-samples" 참고
MySQl mysql 8.0.0 AWS에 데이터베이스 배포 완료

5.3 Cooperation

git nodejs
notion mysql


6. Project Structure (프로젝트 구조)

6.1 Frontend


UMai/
├── UMAiApp                     # 앱의 메인 엔트리 포인트
├── ContentView                 # 앱의 전체적인 컨텐츠를 관리하는 뷰
│
├── Model/                      # 데이터 모델과 관련된 파일들
│   ├── restaurant              # 레스토랑 모델 데이터
│   ├── RestaurantViewModel     # 레스토랑 데이터를 처리하는 ViewModel
│   └── RegisterViewModel       # 사용자 등록 관련 데이터를 처리하는 ViewModel
│
├── Login/                      # 로그인 및 설문과 관련된 뷰 파일들
│   ├── LoginView               # 로그인 화면
│   ├── SurveyView              # 설문조사 화면
│   ├── MatBtiResultView        # 맛BTI 결과 화면
│   └── SignupView              # 회원가입 화면
│
├── Font/                       # 프로젝트에 사용되는 폰트 파일들
│   ├── DMSerifDisplay-Italic
│   ├── DMSerifDisplay-Regular
│   ├── Poppins-ExtraLightItalic
│   └── Liquefier
│
├── Info                        # 추가적인 정보나 데이터 파일들
│
├── Sub/                        # 서브 뷰와 관련된 화면들
│   ├── ListView                # 목록 화면
│   └── DetailView              # 상세 보기 화면
│
├── Person/                     # 개인화된 화면 및 기능 관련 파일들
│   ├── PersonView              # 사용자 개인 페이지
│   └── ShareBTIView            # 맛BTI 결과 공유 페이지
│
├── Main/                       # 메인 화면과 관련된 파일들
│   └── HomeView                # 홈 화면
│
├── Assets                      # 이미지, 아이콘 등 정적 파일들을 저장하는 폴더
│
└── Preview Content/            # 프로젝트의 미리보기 관련 파일들
    └── Preview Assets          # 미리보기에 필요한 에셋 파일


6.2 Backend

UMAI_BACK/
├── config/                   # 설정 파일 (DB, 환경변수 등)
│
├── controllers/              # 비즈니스 로직 처리 (컨트롤러)
│   └── restaurant.js        # 레스토랑 관련 컨트롤러
│
├── middlewares/              # 미들웨어 (인증 및 요청 처리)
│   └── auth.js              # 인증 관련 미들웨어
│
├── models/                   # 데이터베이스 모델 정의
│   ├── mbti.js              # MBTI 모델
│   ├── menus.js             # 메뉴 모델
│   ├── restaurant.js        # 레스토랑 모델
│   └── user.js              # 사용자 모델
│
├── node_modules/             # 설치된 npm 패키지
│
├── passport/                 # 인증 관련 전략 설정 (예: JWT, 로컬)
│
├── routers/                  # 라우터 정의 (URL 라우팅)
│   ├── auth.js              # 인증 관련 라우팅
│   ├── restaurant.js        # 레스토랑 관련 라우팅
│   └── user.js              # 사용자 관련 라우팅
│
├── views/                    # 뷰 파일 (EJS 템플릿)
│   └── index.js             # 메인 페이지 (EJS 템플릿 엔진 사용)
│
├── index.js                  # 메인 애플리케이션 진입점
├── package-lock.json         # 종속성 버전 기록 파일
├── package.json              # 프로젝트 설정 및 종속성
└── seed.js                   # 초기 데이터베이스 시드 스크립트


7. Development Workflow (개발 워크플로우)

브랜치 전략 (Branch Strategy)

저희는 전략은 단순하고 효율적인 Main Branch 작업 방식을 따릅니다.

Main Branch

  • 모든 작업과 개발은 Main 브랜치에서 직접 이루어집니다.
  • 배포 가능한 상태를 유지하기 위해 코드 푸시 전에 철저한 테스트를 진행합니다.
  • 팀원 간의 긴밀한 커뮤니케이션을 통해 충돌을 방지합니다.
  • Pull Request 없이, 변경 사항은 직접 Main 브랜치에 커밋합니다.

기타

  • 별도의 개발 브랜치 없이 작업하며, 완성된 기능을 바로 Main 브랜치에 반영합니다.
  • 코드 리뷰는 필요 시 구두나 비공식적으로 진행합니다.
  • 코드 작성시에 대면으로 커밋을 보고합니다.
  • 최대한 수업시간 내에 모여있는 시간에 개발을 시작하고 마무리합니다.

Releases

Packages

Used by

Contributors

Languages