Skip to content

앨런 AI와 서울 실시간 도시데이터를 활용한 웹 사이트

Notifications You must be signed in to change notification settings

WhatSEOUL/WhatSeoul

Repository files navigation

whatSeoul

ESTSoft 대화형 AI 에이전트 앨런서울 실시간 도시데이터를 활용한 웹 사이트

서울 어딘가로 떠나고 싶은 오늘,
어느 곳으로 가야 할지 모르겠다면

서울시 실시간 지역 정보를 확인하고
앨런에게 명소를 추천받아 보세요!

서비스 URL : WhatSeoul

🗺️ 주요 기능

📍 서울시 115개 핫스팟 정보 조회

실행화면

📍 서울시 실시간 도시데이터 조회

실행화면

🤖 SSE를 활용한 앨런 AI 실시간 응답 조회

실행화면

🔐 Spring Security를 활용한 유저 인증, 인가

실행화면


📝 게시판 게시글 및 댓글 작성

실행화면


👤 마이페이지

실행화면

📑 요구사항 명세서

image 요구사항 명세서

🗺️ 플로우 차트

WHATSEOUL- flowChart

📜 API 명세서

회원 API

기능 HTTP method url
회원가입 POST /api/join
로그인 POST /api/login
로그아웃 GET /api/logout
유저네임 중복 체크 GET /api/check/username
닉네임 중복 체크 GET /api/check/email

마이페이지 API

기능 HTTP method url
내 정보 조회 GET /user/me
비밀번호 수정 PUT /api/update

게시물 API

기능 HTTP method url
커뮤니티 게시글 작성 POST /posts/create
커뮤니티 게시글 수정 PUT /posts/editpro
커뮤니티 게시글 삭제 DELETE /posts/delete?id=
커뮤니티 게시글 전체 조회 GET /posts
커뮤니티 게시글 개별 조회 GET /posts/{id}
커뮤니티 게시글 댓글 작성 POST /posts/{postId}/comments
커뮤니티 게시글 댓글 삭제 DELETE /posts/{postId}/comments/{commentId}
커뮤니티 게시글 댓글 조회 GET /posts/{postId}/comments

서울시 실시간 도시 데이터 API

기능 HTTP method url
서울시 장소별 실시간 날씨 데이터 조회 GET /api/weather/{areaName}
서울시 장소별 실시간 인구 데이터 조회 GET /api/ppltn/{areaName}
서울시 장소별 실시간 문화행사 데이터 조회 GET /api/culture-event/{areaCode}

앨런 API

기능 HTTP method url
앨런에게 질문하기 GET /api/alan?content=

핫스팟 장소 API

기능 HTTP method url
핫스팟 장소 정보 조회 GET /api/area?areaName=
핫스팟 장소 위치 및 특색 정보 저장 GET /api/alan/basic/area?type=&areaName=
핫스팟 장소 좌표 저장 GET /api/area/kakao?areaName=


API 명세서

🤼‍♂️ Team

프로필 사진
윤수빈(팀장)

프로필 사진
고경욱

프로필 사진
김경록

- 서울 실시간 도시데이터 조회 기능 구현
- 앨런 AI API 연동
- CI/CD 구축
- 사용자 인증 및 인가 (Spring Security)
- 로그인 및 회원가입 조건 기능 구현
- 사용자 인증 및 인가 (Spring Security)
프로필 사진
김민규

프로필 사진
장한빛

프로필 사진
조창현

- 게시판 CRUD 기능 구현 - 서울 실시간 도시데이터 조회 기능 구현
- 앨런 AI API 연동
- 지역 정보 저장·조회 기능 구현
- 서울 실시간 도시데이터 조회 기능 구현
- 게시판 CRUD 기능 구현
- 댓글 작성·삭제 기능 구현

⚙️ 시스템 설계도

image

⛏ ERD

image

📦 Project Structure

디렉토리 구조
  ├───main
  │   ├───generated
  │   ├───java
  │   │   └───com
  │   │       └───example
  │   │           └───whatseoul
  │   │               ├───config
  │   │               ├───controller
  │   │               │   ├───account
  │   │               │   ├───alan
  │   │               │   ├───citydata
  │   │               │   └───post
  │   │               ├───dto
  │   │               │   ├───request
  │   │               │   └───response
  │   │               ├───entity
  │   │               ├───exception
  │   │               ├───repository
  │   │               │   ├───cityData
  │   │               │   ├───post
  │   │               │   └───user
  │   │               ├───security
  │   │               └───service
  │   │               
  │   └───resources
  │       ├───static
  │       │   ├───css
  │       │   │   ├───alan
  │       │   │   ├───citydata
  │       │   │   ├───index
  │       │   │   ├───post
  │       │   │   ├───selectarea
  │       │   │   └───user
  │       │   ├───js
  │       │   │   ├───alan
  │       │   │   ├───citydata
  │       │   │   ├───index
  │       │   │   └───selectarea
  │       │   └───media
  │       └───templates
  │           ├───alan
  │           ├───citydata
  │           ├───header
  │           ├───index
  │           ├───post
  │           ├───selectarea
  │           └───user
  └───test
      └───java
          └───com
              └───example
                  └───whatseoul
                      └───service
  

🛠 Tech Stack

Language & Framework
Java 17 Springboot 3.2.5 Spring Security

Database
MySQL Spring data JPA

배포 환경
Amazon EC2 Amazon RDS Docker Github Actions

UI 개발
HTML CSS Javascript Thymeleaf

IDEA
Intellij IDEA

협업 툴
Github Git
Discord Notion Miro Figma

🌈 Branch

브랜치는 release branch, develop branch, feature branch 총 3개의 브랜치를 사용합니다.

🌞 Commit Message Convention

Emoticon Commit Type Desc
feat 새로운 기능 추가
🐛 fix 버그 수정
📝 docs 문서 수정 (md 파일)
♻️ refactor 코드 리팩토링
💄 style 코드 formatting, 세미콜론 누락, 코드 자체의 변경이 없는 경우
test 테스트 코드, 리팩토링 테스트 코드 추가
🚀 chore 패키지 매니저 수정 (Dockerfile, gradle, sh, yml)
🚑 !hotfix 급하게 치명적인 버그를 고쳐야 하는 경우