Giter Club home page Giter Club logo

everycharge-api-server's Introduction

image


EveryCharge 🚗

전기차 충전기 API 활용 충전소 7만건 · 충전기 데이터 30만건 활용 정보 제공 서비스

🔍 내 조건에 맞는 전기차 충전소를 검색할 수 있어요!
📌 내 주변 전기차 충전소를 검색하고 충전기 상태여부를 알 수 있어요!
😁 전기차 충전소의 이용 요금, 충전기 종류, 후기 사진 등 다양한 정보를 알 수 있어요!
👍 내 차 등록 서비스를 통해 내 전기차를 등록 할 수 있어요!

프로젝트 소개 📢

  • 프로젝트 이름 : EveryCharge
  • 개발 기간 : 24. 01. 15. ~ 24. 03. 29.
  • 프로젝트 주제 : 오픈 API 기반 충전소 / 충전기 정보 제공 서비스
  • 구현 기능 및 핵심 목표 :
    • 공공 데이터포탈 전기차 충전기 API 활용 충전소 7만건 · 충전기 데이터 30만건 활용 정보 제공
    • 데이터 조회 속도 및 검색 속도 개선
    • 90개 이상의 충전기 운영기관별 충전요금 제공
    • 내 차 정보 마이데이터 활용 맞춤형 전기차 충전소 서비스 제공

주요 기능 소개🗂

내 위치 주변 충전소 검색 사용자 조건 충전소 검색 충전기 상태, 요금 조회 마이데이터 내차 등록
image image image image


MEMBER 🎨

🔰김효준(BE) 👦이상제(BE) 👦임지원(BE) 👦임재욱(BE)
gimyojun
@Github
Bi3a
@Github
i-am-jiwon
@Github
jaeuklim
@Github

사용 기술 스택🔨

image

시연영상 🎥


ERD 👨🏻‍💻

image

everycharge-api-server's People

Contributors

bisi3asi avatar gimyojun avatar i-am-jiwon avatar jaeuklim avatar seoungminkwon avatar astral0525 avatar

Stargazers

SangminKim avatar  avatar  avatar

Watchers

 avatar

everycharge-api-server's Issues

리뷰수정

  1. 후기 작성자 id
  2. 쓰는곳 줄이고
  3. 글 키우기
  4. 작성창과 내용 위치 바꾸기

유저 신고 내역 기능 구현

Front

  • 신고 내역 리스트 화면 구현(신고 글 제목, 작성자, 글 링크)
  • 신고 내역별 상세 화면 구현(신고 글 제목, 내용, 작성자)

Back

  • 신고 내용 글 CRUD
  • 신고 리스트 신고내역 조회 로직 구현
  • 관리자 신고내역 처리 로직 구현

관리자 페이지

  • NavBar에 관리자 페이지 버튼
  • 관리자 페이지에서 유저 신고내역 리스트 확인
  • 기존 모두가 볼수있는 신고내역 리스트를 관라자에 한해서 볼수있도록
  • 유저는 신고하기 기능만 가능(리스트 볼수없음)
  • 일반 유저는 마이페이지에서 자신의 신고내역 리스트는 볼수있음
  • 관리자 페이지에 1:1 문의 리스트 확인
  • 1:1 문의에 대한 답변은 오직 관리자만 달수있음

충전소 상세페이지 구현

  • 지도의 충전소 핀 클릭시 상세화면 페이지 구현
  • 파일시스템 구현
  • 프론트 백 간 쿠키 공유 문제 해결

이용후기

front

  • 이용후기 컴포넌트 만들기

back

  • 충전소 id값을 받아 충전기 정보 받아오기
  • 충전기에 해당하는 후기 crud하기

충전소 지도, 검색 기능 개선 / 버그 수정

작업 내용

fix

  • 브라우저 위치 정보 제공 동의 안할 시 버그 수정 (default 위 / 경도 관련) 임지원
  • 서버와 동일하게 클라이언트 위 / 경도 중심 좌표 통일 (충전소 지도와 충전소 검색) 임지원
  • 충전소 지도 관련 컨트롤러 과다 검색 로직 수정 임지원
  • 검색 결과 UI 개선 이상제
    • 검색 결과 전체 창을 누를 수 있게 수정
    • 충전소명 폰트 검은색으로 변경
    • 검색 결과 창 크기 반응형으로 수정
    • Y/N 버튼 색깔 관련 가시성 있게 수정
    • Y/N 버튼 디폴트 값 변경
    • 검색 조건과 검색 결과 폰트 사이즈 통일
  • 충전소 지도와 충전소 검색의 UI 통일
    • 줌인 레벨 통일
    • 시작점 통일
    • UI 동일하게 수정

enhancement

  • 현 지도 위치 중심 기반 검색 기능 임지원 이상제
    • 현 지도의 중심 정보를 가지는 변수 정의
    • 현 지도 위치 중심 기반 검색 버튼 정의
      • 사용자가 접속 위치 기준 지도를 얼만큼 움직였을 때 해당 버튼이 보일지 권한 처리
    • 현재 검색 로직 수정(접속 위치 기반 -> 현 표시 지도 중심 위치 기반) 이상제
    • 검색 충전소 이동 시 가시성 있는 표시 기능 임지원
    • 줌인 레벨 1로 조정
    • 현재 선택된 마커 색깔 빨간색으로 조정
    • 마커 Flicker 기능

충전소 요금 조회 기능

작업 내용

  • 충전소 요금 조회 페이지
    • 로밍 요금 조회
      • 공시데이터 크롤링 로직 구현 → 디렉토리 내 csv 파일로 관리
      • DTO 구현
      • 스케줄러 활용 정기 크롤링 로직 구현
      • 프론트 구현
    • 기관별 회원 / 비회원 요금 제공
      • 공시데이터 크롤링 로직 구현 → csv 파일 import 후 DB 저장
      • 요금 테이블 / 엔티티 구현
      • DTO 구현
      • 스케줄러 활용 정기 크롤링 로직 구현
      • 프론트 구현
    • 맵 마커 고도화
      • 충전가능 대수
      • 운영기관 마크
      • 충전소 요금 기능
    • 맵 모달 고도화
      • 충전소 요금 조회

참고사항

작업 관련 노션 링크

회원 가입

front

  • 회원가입 폼
    이름, 비번, 비번확인

back

  • 입력된 username과 password를 member에 저장

1대1문의 게시판

  • 답변대기 / 답변완료로 구분
  • default는 답변 대기 리스트만 노출( 필터로 답변 완료 리스트도 볼수있음)
  • 글 작성시 어떤 문의 유형인지 콤보박스로 선택 가능.
  • 제목 리스트는 모든 유저가 볼 수 있음(상세 내용은 작성자가 공개글/비공개글 설정에 따라 다르게)
  • 관리자는 모든 글 조회, 답변 작성 가능.
  • 답변이 달린 글들은 자동으로 답변완료로 태그 변환.

myPage

내 차 정보 불러오기
차의 연비 등 불러오기

개인서비스

지역 테이블 생성, 데이터 init

지역 테이블 생성

  • schema 의존 X, hibernate ddl 의존해서 생성
  • todo: 필요시 schema 파일에 의한 테이블 생성

지역 데이터 init

  • 지역코드, 지역 관련 sql 파일 생성
  • ddl 의존 하 부팅 시 자동생성될 수 있게끔 yml 설정
    • 자동화 제한 시: db 클라이언트 접속해 수동으로 생성

신고내역 컴포넌트 권한처리 수정

작업내용

  • 신고내역 없을 시 로그인해도 신고 등록 버튼 조회 안되는 버그 수정
    * actorCanCreate 메소드, ResponseDto 수정
  • 비로그인 대상 신고 등록 조회 가능하게끔, 등록 버튼 클릭 시 로그인으로 리다이렉트되게 수정

데이터 import(전국 충전소, 충전기 데이터)

작업 내용

  • 서비스 대비 부하 테스트를 위한 실제 규모의 정적 데이터 import
    • 기존 샘플 데이터 : 충전소 975건, 충전기 3045건 → 충전소 69589건, 충전기 : 289325건
    • 유효하지 않은 데이터에 대한 정제 작업 실시
    • 클라우드 RDB로 import

data init sql 파일 세팅, 수정

작업내용

  • 의존성 있는 테이블 insert로 데이터 생성하는 data.sql 파일 여러개로 분리
  • operating_company 불변 데이터 추가

충전기 상태정보 받아오기

Front

  • 충전소내에 존재하는 충전기 정보 표로 보여주는 컴포넌트 만들기
    충전기 번호, 충전기 상태, 충전속도, 충전기 타입, 충전량, 상태변경 시간

Back

  • 충전소 id값을 받아 충전기 정보 받아오기

충전기 이용정보 받아오기

front

  • 이용정보 컴포넌트 생성 : 주소/운영기관/이용가능시간/주차비/연락처/결제방식

back

  • 충전소 id값을 이용해 이용정보 받아오기

샘플 데이터 생성 중 오류 수정

작업 내용

  • ApplicationRunner initNotProd 샘플 데이터 메소드 수정
  • 샘플 데이터 생성에 실패해도 서버 구동이 중지되지 않게끔 수정
  • 각 도메인별 샘플 데이터 생성 트랜잭션 독립적으로 그룹핑

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.