Skip to content

Hanaro-Eureka/HPS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

💰 하나의 완벽한 비서: MZ 프리랜서 전용 스마트 금융 비서

Image

☁️ 프로젝트 소개

🤔 이번 달 수입은 얼마일까? 이건 지금 사도 될까?

"하나의 완벽한 비서"는 수입이 불규칙한 MZ 프리랜서를 위해, 수입 예측, 소비 분석, 그리고 구매 상담까지 도와주는 스마트 금융 서비스입니다.


🌟 주요 기능

수입 관리

여러 수입원 중 주요 수입원을 사용자가 선택하면,
📊 현재 수입과 이번 달 예측 수입을 그래프로 시각화해주고
📊 평균 수입과 다음 달 예측 수입을 모달로 보여줍니다.
예측 수입은 작년 총 수입을 기반으로, 직전 6개월의 평균 상승률과 전년도 동월 대비 상승률을 반영해 산출합니다.


소비 관리

종류 상황
🔴 레드카드 지출이 수입의 60% 초과
🟡 옐로카드 지출 30~60% 범위
🟢 그린카드 지출이 수입의 30% 미만
📈 수입 대비 소비를 막대 그래프로 보여주고,
🔘 고정비 / 유지비 비율을 원 그래프로 시각화하며,
🚨 소비 경고 카드를 통해 지출 상황을 한눈에 파악할 수 있습니다.

별비서 상담

무엇을 언제 사면 좋을지 고민될 때,
💬 별비서 서비스로 상담을 받아보세요.
소비 여유나 적정 시점 등을 기반으로 맞춤형 소비 조언을 제공합니다.



👩🏻‍💻 팀원 소개

이지민 (팀장)
@dlwlals1289
김기연
@kiyeonkimm
김보겸
@bokyeommmmm
노찬영
@shroqkf
문영균
@doormoonn

🛠 Stacks

역할 종류 선정 이유
Framework Next JS App Router 기반 SSR + CSR 병행이 가능하고, 서버 액션 등 최신 기능 지원
Programming Language TypeScript 정적 타입으로 코드 안정성과 협업 효율성 확보
Styling TailwindCSS v4 빠른 UI 구성과 유지보수에 용이한 유틸리티 CSS
Database MySQL 구조화된 관계형 데이터 관리에 적합
ORM Prisma v6 타입 안전성과 데이터베이스 자동 연동 기능 제공
Chart & Data Viz Recharts 소비/수입 분석 차트, 시각화 기능 구현
Linter & Formatter ESLint Prettier Lint-Staged 코드 일관성을 유지하고 커밋 전 자동 검사로 오류 발생 가능성을 낮춤
Animation Framer Motion 메인페이지의 수입 카테고리 별 통통 튀는 UI 애니메이션으로 사용자 재미 유도
AI API 연동 Google GenAI 별비서 AI 상담 서비스 연동
UI Test / Docs Storybook v9 컴포넌트 테스트 및 UI 문서화를 위한 환경 구성
Container Docker 로컬 및 배포 환경 통일을 위한 컨테이너 기반 개발
Auth NextAuth.js (v5 Beta) 편리한 OAuth 로그인 구현 및 세션 관리 지원
Package Manager PNPM 빠른 속도와 모노레포 대응이 가능한 패키지 매니저
Bundler & Plugin Vite 번들링 속도가 빠르고 유연한 설정, TypeScript와의 높은 호환성

🧰 Tools

역할 종류 선정 이유
디자인 협업 Figma 디자인 시스템 기반 UI 협업 및 피그마 컴포넌트 공유
버전 관리 Git 로컬 및 원격 버전 동기화, 협업 브랜치 전략 적용
데이터 관리 Prisma Studio MySQL Workbench 시각적 DB 확인 및 개발 중 직접 쿼리 점검

🤝 Collaboration

역할 종류 선정 이유
형상 관리 GitHub 프로젝트 버전 관리 및 PR 리뷰
기획 & 문서화 Notion 요구사항 정리, 피드백 기록 및 프로젝트 문서 관리
실시간 소통 Slack Discord 팀 내 빠른 커뮤니케이션 및 화상 회의 지원
스프린트 관리 Google Sheet 작업 배분, 일정 공유, 진행률 관리 등 사용

🍃 Branch Convention

  • main
    • 배포용 브랜치
  • develop
    • 개발 통합용 브랜치
  • feature/#이슈번호/개발 내용
    • 기능 단위 브랜치

👾 Commit Convention

📦 초기 설정

  • Init – 프로젝트 초기 세팅에만 사용

✨ 기능 관련

  • Feat – 새로운 기능 추가
  • Fix – 버그 수정
  • Chore – 기타 자잘한 변경
  • !HOTFIX – 치명적인 긴급 버그 수정

🎨 스타일 및 디자인

  • Design – CSS 등 사용자 UI 디자인 변경

🔁 코드 개선

  • Refactor – 코드 리팩토링
  • Comment – 필요한 주석 추가 및 변경

🧹 파일 및 구조

  • Rename – 파일 또는 폴더 명을 수정하거나 옮기는 작업만인 경우
  • Remove – 파일을 삭제하는 작업만 수행한 경우

🧪 기타

  • Docs – 문서 추가, 수정, 삭제

🏷️ 폴더 구조


|-- 📁 .github
|-- 📁 public
|-- 📁 src
│   |-- 📁 app               # ✅ Next.js App Router 구조 (라우팅 담당)
│   │   |-- globals.css
│   │   |-- layout.tsx
│   │   |-- page.tsx
│   │   |-- not-found.tsx
│   │   |-- 📁 페이지1        # /페이지1 (예: 수입 관리 페이지)
│   │   │   |-- page.tsx
│   │   │   |-- 📁 components    # 이 페이지에서만 사용하는 컴포넌트
│   │   │   |-- 📁 hooks
│   │   │   |-- 📁 constants
│   │   │   └── 📁 utils
│   │   └── 📁 페이지2   # /페이지2 (예: 소비 관리 페이지)
│   │       |-- page.tsx
│   │       └── (components/hooks/constants/utils as needed)
│   |
│   |-- 📁 components
│   │     |-- 📁 atoms    # Button, Input 등 최소 단위 컴포넌트
│   │     |-- 📁 molecules    # ListItem, BarGraph 등 복합 단위
│   │     |-- 📁 organisms    # Header, Footer 등 구조적 UI
│   │     └-- 📁 templates    # 레이아웃 수준 컴포넌트
│   |
│   |-- 📁 assets
│   │     |-- 📁 images
│   │     └-- 📁 svgs
│   |
│   |-- 📁 constants    # 전역 상수 (더미데이터, 아이콘, 설정 값 등)
│   |-- 📁 hooks    # 전역 Custom Hook
│   └-- 📁 utils    # 전역 유틸 함수
│
│-- 📁 lib               # 서버 사이드 유틸
│     |-- 📁 actions     # e.g. prisma, auth, db actions
|
|-- .env
|-- docker-compose.yml
|-- .eslintrc.json
|-- .prettierrc
|-- .gitignore
|-- tsconfig.json
|-- package.json
|-- yarn.lock / pnpm-lock.yaml

About

하나의 완벽한 비서

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5