사회초년생을 위한 생활비 관리 앱 — 잔액·수입일·고정지출과 직접 기록한 거래로 오늘 쓸 수 있는 돈을 계산해 보여준다.
신한 DS 금융SW아카데미 7팀
- 웹: https://project2-flex-sh.vercel.app (서비스·약관 등 공개 페이지)
- 데스크톱 웹사이트·앱 시연: https://flexable-web-delta.vercel.app (시연은
/m, 저장소shinds-team7/flexable-web) - Android: Google Play 비공개 테스트 중
- 이메일·카카오·Google 가입·로그인
- 초기 예산 설정: 잔액, 수입일·수입액, 고정지출, 카드 미결제액, 모아둔 돈, 매달 저축할 돈
- 홈: 오늘·이번 주 쓸 수 있는 돈, 다음 수입일까지 남은 생활비, 예산을 지킨 만큼 성장하는 캐릭터
- 거래 직접 기록·수정·삭제, 카테고리 관리, 고정지출 자동 기록
- 소비 분석(기간별 카테고리 합계), 계정·데이터 삭제
- 시드머니(모아둔 돈 + 수입일 전날 반영 기록), 앱에서만 쓰는 코인·코스튬 상점·추천 코드, 웹사이트 연동(선택 동의)
계좌 연결, AI 분석, 알림 자동 기록은 시연(웹사이트 저장소의 /m)에만 있다. 전체 목록과 구현 근거는 docs/FEATURES.md.
Android 앱 ─┐
├─ HTTPS ─▶ API 서버 (Spring Boot, EC2 + Docker + Caddy) ─▶ MySQL (RDS)
웹 (Vercel) ┘ https://flex-able-sh.duckdns.org/api/v1
| 영역 | 기술 | 디렉토리 |
|---|---|---|
| 앱·웹 | Expo SDK 57, React Native 0.86, Expo Router, TypeScript | frontend/ |
| API | Spring Boot 4.1, Java 21, Spring Security(JWT), JPA, Flyway | backend/ |
| DB | MySQL 8 (로컬은 H2) | backend/src/main/resources/db/migration |
| 배포 | Vercel(웹), EAS Build·Update(앱), EC2 + RDS(API) | docs/HANDOFF.md |
"오늘 쓸 수 있는 돈"은 서버가 계산한 값이 최종값이다(계산식은 docs/API.md GET /budget/today).
JDK 21, Node 22 이상이 필요하다.
# 1) API 서버 — MySQL 없이 H2 파일 DB로 뜬다 (http://localhost:8080)
cd backend
./gradlew bootRun --args='--spring.profiles.active=local'
# 2) 웹 — 다른 터미널에서 (http://localhost:8081)
cd frontend
npm ci
cp .env.example .env.local # API 주소 = http://localhost:8080
npm run web검증 명령(타입 검사, 린트, 백엔드 테스트, E2E)은 AGENTS.md "검증 명령".
웹 제품의 기능·화면·데이터 계획과 개발 책임은 flexable-web 제품 문서에서 관리한다. 웹 서버는 flexable-web backend/에 따로 있고, 이 저장소 backend/는 앱 API와 웹 연동 API(weblink 패키지: 앱의 연동 코드 발급·연동 목록·해제, 웹 서버 전용 /internal/v1/web-links/*의 연동 생성·회원 정보·시드머니 조회·해제)를 맡는다(앱·웹 서비스 경계).
docs/FEATURES.md— 지금 되는 기능, 시연에만 있는 기능, 아직 없는 기능AGENTS.md— 기준 문서, 작업 절차(Issue → PR), 검증 명령 (AI 도구도 이 파일을 읽는다). 폴더 구조·의존 방향·배포 갈래는docs/ARCHITECTURE.mddocs/API.md— API와 "오늘 쓸 수 있는 돈" 계산식frontend/README.md,backend/README.md— 영역별 실행·구조docs/HANDOFF.md— 배포·출시 현황과 다음 할 일
| 문서 | 내용 |
|---|---|
docs/play-store/ |
Google Play 제출 자료, 개인정보처리방침·이용약관 원문 |
docs/bug-transaction-edit-blank-screen.md |
Android 저장 후 빈 화면 버그 분석과 재발 방지 규칙 |