Skip to content

duswntmd/Fitizen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

510 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FITIZEN AI 프로젝트

목차

1. 프로젝트 소개

Fitizen 프로젝트의 주요 기능을 소개하는 동영상입니다!

Video Label

초보자를 위한 운동 웹사이트

처음부터 시작할 수 있다
운동 추천부터 운동 방법까지
초보자도 쉽게 따라할 수 있는 맞춤 정보를 제공합니다.

테스트 계정 아이디 비밀번호
트레이너 trainer1 trainer1
유저 user1 user1

2024.12.18 기준으로 서버 종료됨

2. 팀원 소개

연주승 정재호 박성재
연주승 프로필
@duswntmd
정재호 프로필
@JaehoHoya
박성재 프로필
@psjae98
팀장 팀원 팀원

😁 팀 목표

  • 개발을 할때 항상 사용자관점을 생각하며 개발하기!
  • 오류 발생시 같이 논의하기
  • 초보자들이 운동에 대해 흥미와 정보를 얻을 수 있게 사이트 구축하기

3.📆 개발 기간

2024년 09월 09일 ~ 2024 12월 18일

스크린샷 2024-12-05 오전 11 36 21

4. 개발 환경 및 기술 스택

개발 환경

스크린샷 2024-12-18 오전 11 11 23

기술 스택

Frontend JSP Thymeleaf HTML CSS JavaScript
Backend Java Spring Boot Python FastAPI
Database & Caching Redis Oracle
Infrastructure & DevOps Docker Jenkins AWS Nginx
Development Tools Git GitHub IntelliJ IDEA Anaconda
Specialized Tools OpenCV Blender

Back-End

  • Java: JDK 21
  • SpringBoot: ver. 3.3.3

Database

  • Oracle: ver. 11g
  • Oracle: sqldeveloper

Database

  • Amazon AWS: EC2, RDS, Route 53, VPC

5. 역할 분담

연주승(팀장)

  • 도메인: fitizen.store
  • 프로젝트 총괄 및 점검:프로젝트 관리
  • 로그인 및 회원가입 (일반 유저)
  • 운동시설 리뷰
  • 운동 게시판
  • 시큐리티: 애플리케이션 보안 관리
  • LogBack: 로깅 설정 및 관리
  • AI: 운동 자세 분석
  • 메인 페이지: 최종 점검 및 수정
  • FastAPI (파이썬 서버 구축): FastAPI 서버 개발 및 관리
  • AWS: 클라우드 배포 및 관리

정재호(팀원)

  • 회원가입 (트레이너)
  • 마이페이지: 사용자 개인 페이지 관리
  • GitHub 관리: 리드미 및 위키 작성
  • 챌린지: 운동 챌린지 관리
  • 인증 게시판: 인증 게시판 기능 구현
  • 트레이너: 트레이너 관련 기능 개발
  • 채팅: 실시간 채팅 기능 구현
  • AI: 챗봇 개발 및 관리
  • 결제 및 결제 기록: 결제 시스템 및 기록 관리
  • Nginx: 웹 서버 설정 및 관리
  • AWS: 클라우드 배포 및 관리

박성재(팀원)

  • 회원 가입, 로그인, 아이디/비밀번호 찾기 CSS: UI 디자인 및 스타일링
  • 비밀번호 변경 메일 전송
  • Q&A 게시판: 질문과 답변 게시판 관리
  • 상점, 장바구니: 상품 수량및 장바구니 기능 구현


6.🔧 서비스 기능 소개

사용자 주요 서비스


자세분석AI 페이지

자세분석AI는 유저 운동 동영상과 학습된 정자세 운동 모델 데이터를 비교해서 유저에게 솔류션을 주는 기능이다

Untitled video - Made with Clipchamp



챗봇AI 페이지

도메인 특화 문서를 통해 운동 방법, 루틴 , 도메인 이용방법 , 챌린지 ,트레이너 등을 추천하는 챗봇기능이다

chatbot



챌린지 페이지

챌린지는 공식 챌린지와 유저 챌린지로 나뉘며 공식 챌린지는 특정 포인트로 참여하여 관리자가 챌린지 종료시 인증 게시판의 사진을 검증하여 유저의 챌린지 달성도에 따라 포인트를 지급해준다 유저 챌린지는 유저들이 자유롭게 작성하여 참여하는 챌린지이다 챌린지에 참여하면 1:N 채팅 인증 게시판을 이용할 수 있다

challenge



운동 게시판 페이지

운동 게시판은 유저와 유저간의 정보 소통을 공유하는 기능이다 유저는 동영상 사진 댓글등 자유롭게 이용할 수 있다

게시판



트레이너 페이지

관리자가 승인한 투명성 있는 트레이너 정보와 유저와 트레이너간의 (상담 신청, 취소, 승인),무료 1:1채팅상담을 진행 유저는 트레이너에게 식단, 운동방법,트레이너에 관한 정보를 해당 트레이너에게 직접 질문 할 수 있다.

trainer



리뷰 페이지

시설 리뷰는 유저가 맞춤형 운동 추천을 진행 후 집 주위의 시설을 찾기를 진행 집 주변의 시설을 유저가 사용하고 평가하는 기능이다

리뷰



사용자 마이페이지

상품 구매내역, 포인트(지급받은 내역 , 사용내역,포인트 결제내역),챌린지(참여한 챌린지, 작성한 챌린지) ,트레이너 상담신청 내역 등을 확인할 수 있다

mypagevideo



관리자 페이지

무분별한 트레이너 가입을 막기 위해 관리자가 트레이너에 대한 정보를 승인 처리함으로써,투명성 있는 트레이너 제공

관리자페이지

7. Wiki

8. 느낀점

연주승(팀장)

FITIZEN 프로젝트에서 팀장으로서 전체 진행 상황을 관리하고 방향을 제시하는 역할을 맡으며 책임감의 중요성을 깊이 느꼈습니다. 프로젝트가 원활히 진행되기 위해서는 팀원들이 각자의 역할을 명확히 이해하고 서로 협력하며 문제를 해결할 수 있어야 한다고 생각했습니다. 이를 위해 전반적인 상황을 꾸준히 체크하고 팀원들과의 토의를 통해 각자가 맡은 역할과 목표를 명확히 전달하는 데 주력했습니다. 특히 팀원 간의 관점을 조율하고 서로 다른 생각들을 조화롭게 엮어내는 과정이 중요했습니다. 문제 상황에서는 다양한 가설을 함께 고민하며 팀원들의 문제 해결 능력을 끌어내기 위해 자율성을 최대한 보장했습니다. 필요할 때 도움을 주되 팀원들이 스스로 해결책을 찾을 수 있도록 자신감을 심어주는 것이 더 큰 성장을 이끌어낸다는 점을 깨달았습니다. 또한 프로젝트의 일정이 타이트했던 만큼 우선순위를 명확히 설정하고 작업을 효율적으로 분배하는 것이 중요했습니다. 한 사람에게 일이 몰리지 않도록 균형을 맞추고 기능의 중요한 작업에 집중시켜야 프로젝트를 효과적으로 관리할 수 있음을 배웠습니다. 이러한 과정은 팀원들 간의 협력과 신뢰를 강화하고 프로젝트를 성공적으로 완수할 수 있는 원동력이 되었습니다. FITIZEN 프로젝트를 통해 단순히 결과물을 만들어내는 것 이상의 중요한 가치를 배울 수 있었습니다. 팀워크와 리더십의 중요성을 다시 한번 깨닫고 이번 경험이 앞으로의 목표를 이루는 데 중요한 밑거름이 되어 더욱 발전할 수 있었던 계기가 되었다고 생각합니다.

정재호(팀원)

개발의 끝은 없다 완성도는 100이 나올 수없다

개발 과정에서 점점 더 많은 기능들이 추가되고 개선되면서, 완성도는 계속해서 진화하게 됩니다.
결국, 개발의 끝은 없으며, 100% 완성된 상태는 존재하지 않는다는 것을 깨달았습니다.
끊임없이 변화하고 발전하는 과정 속에서, 언제나 더 나은 방향으로 나아가고 있다는 점이 개발의 매력인 것 같습니다.

사용자 관점이 중요하다

프로젝트를 진행하는 과정에서 다른 프로젝트 팀원들의 의견이나 강사님의 피드백을 받아왔습니다.
그 중에서 제 지나쳤던 부분은 사용자 경험(UX)'에 대한 부분이었습니다.예를 들어, 로그인하지 않은 상태에서 게시글 작성을 시도할 때,
사용자에게 별다른 안내 없이 바로 로그인 페이지로 이동하는 방식은 사용자에게 혼란을 줄 수 있음을 깨달았습니다.
이러한 문제는 '사용자 흐름(User Flow)'을 고려하지 않은 결과로,
이제는 각 기능이 사용자가 원활하게 이해하고 사용할 수 있도록 직관적인 안내와 피드백을 제공해야 한다는 점을 다시금 되새기게 되었습니다.

협업시 소통의 중요성

협업을 하면서 각자 역할을 맡아 기능을 구현하는 도중, 기능에 대해 함께 얘기하고 고민을 나누는 과정이 있었습니다.
이런 과정 속에서 서로의 생각을 공유하고 문제를 함께 해결하는 것이 얼마나 중요한지 다시 한 번 깨달았습니다.
소통을 통해 각자의 아이디어와 의견을 반영하고, 더 나은 해결책을 도출할 수 있다는 점에서 협업의 핵심은 바로 소통임을 실감했습니다.

개발 과정에서의 코드 가독성과 설계의 중요성

개발 과정에서 규모가 커짐에 따라 내가 작성한 코드의 가독성이 떨어지는 문제를 겪었습니다.
명세서와 기초 설계가 제대로 이루어지지 않으면, 코드가 점차 복잡해지고 수정이 필요해지는 단점이 있음을 깨달았습니다.
초기 단계에서부터 명확한 설계와 계획이 부족하면, 이후에 발생하는 수정 작업이 많아져
개발 효율성을 떨어뜨린다는 것을 경험을 통해 배우게 되었습니다.

박성재(팀원)

프로젝트 협업은 처음이라서 처음에는 긴장도 되고, 협업 과정에서 부담을 느끼기도 했습니다. 하지만 다행히 팀원들의 적극적인 도움과 협조 덕분에 점차 부담을 덜 수 있었고, 프로젝트를 성공적으로 마칠 수 있었습니다. 서로 도움을 주고받으면서 각자의 강점을 살리고 부족한 부분을 채워나가는 과정을 통해, 단순히 결과물을 완성하는 것을 넘어 개인적으로도 많은 성장을 이룰 수 있었습니다. 특히 개발 도중 예상치 못한 이슈가 생겼을 때, 팀원들과 함께 문제를 논의하고 해결 방안을 찾아가는 과정이 인상적이었습니다. 이러한 과정에서 협업의 중요성과 혼자가 아닌 팀으로 일하는 프로젝트의 장점을 확실히 느낄 수 있었습니다. 각자의 관점에서 제안하는 다양한 아이디어를 통해 문제를 더 효과적으로 해결할 수 있었고, 이 경험이 협업 능력을 한 단계 끌어올리는 계기가 되었습니다. 물론 아쉬운 점도 있었습니다. 초기 단계에서 요구사항이 명확히 정리되지 않아 작업 우선순위가 혼란스러웠던 적이 있었습니다. 이로 인해 중간에 설계를 수정하거나 작업 방향을 변경해야 했던 경우도 있었지만, 이러한 경험 덕분에 요구사항 정의와 초기 설계의 중요성을 깊이 깨달을 수 있었습니다. 앞으로는 이러한 시행착오를 줄이기 위해 프로젝트 시작 단계에서 더 철저히 준비하고자 합니다. 이 프로젝트를 통해 Spring Boot 웹 개발 활용법을 실질적으로 익힐 수 있었을 뿐만 아니라, 협업 과정에서 발생할 수 있는 다양한 문제를 해결하며 더욱 성장할 수 있었습니다. 특히 팀워크의 중요성과 함께 일하는 즐거움을 느꼈기에, 앞으로 더 큰 규모의 프로젝트에서도 이러한 경험을 바탕으로 팀원들과 효과적으로 협력하며, 더 발전된 결과를 만들어낼 수 있을 것이라는 자신감을 얻었습니다. 이번 협업은 단순한 프로젝트 완성을 넘어 개인과 팀 모두에게 의미 있는 성장을 가져다 준 값진 경험이었으며, 앞으로의 개발 여정에서도 큰 자산이 될 것입니다.

About

FITIZEN 초보자를 위한 운동 웹사이트: 쉽고 효과적인 운동을 시작하세요!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors