GithubHelp home page GithubHelp logo

pkiop / lifemanager Goto Github PK

View Code? Open in Web Editor NEW
94.0 2.0 10.0 6.7 MB

⏱ 한 일을 기록하면 시각화 해서 보여주는 웹 앱⏱

Home Page: https://lifemanager.pkiop.me

JavaScript 45.65% HTML 1.74% TypeScript 52.61%
typescript react styled-components graphql apollo-client aws-appsync aws-dynamodb aws-cognito

lifemanager's Issues

DB정보로 FE에서 TimeRecode 받아와 보여주기

구현할 내용

MainPage에서 GET API를 호출해서 DB의 Timerecode를 받아와 렌더링한다.

체크리스트

  • FE에서 GET API를 호출해 데이터를 잘 받아 오는지
  • 받은 데이터로 컴포넌트 생성을 했는지

이전 버전 정리

Ver 1.0 : 프로그램 켜둔 시간으로 시간 측정
Ver 2.0 : input.txt파일 파싱해서 결과 시각화
Ver 3.0 : 시각화 결과 DB에 저장
Ver 4.0 : Web Frontend구현

Recode / GET API

시간 기록들을 가져오는 API

query

// accessToken 함께
{
    startDate: xxxx-xx-xx
    endDate: xxxx-xx-xx
    category: 'develop' | null 
}

body

{
    message: 'success'
    data: [ 
        {
            index
            TR
        }
     ]
}

RecodeList CSS 작업

구현할 내용

RecodeList 컴포넌트 CSS 를 기획과 맞게 수정

체크리스트

  • RecodeList 컴포넌트가 Recode 컴포넌트를 잘 배치하는지

시간측정신뢰성

애플워치로 앉아있었는지
앱시간측정앱연동해서 폰 그시간동안뭐해뭐했는지

게시판 컴포넌트 생성

목표

image

체크 리스트

  • 지정한 목표시간을 표시 (각 user가 직접 설정한 값)
  • 몇시간이나 효율적으로 했는지 표시
  • 지정한 취침 시간까지 얼마나 남았는지 표시

[사업화] 수익모델

  • 광고 말고 다른 방법
    • 미결제 -> 데이터 수집 가능
      • 이렇게 하기 위해서 -> 카테고리를 정말 세분화, 자주 사용하는 카테고리 저장
    • 결제 -> 내가 데이터 수집하지 않음. github의 private 모드

[TODO]

  • 종료시간 입력 칸 -1말고 미입력 등 다른 값 넣기 -- 200505 난이도가 높음(javascript + html)
  • 시간 입력칸을 좀 더 예쁘게 (우선순위 밑)
  • naver, 구글 등 소셜 로그인 기능 -> 주말에 빡
  • submit 화면 예쁘게
  • (입력창이 가장 중요한 부분) grid 사용해서 더 예쁘게
  • 아래 퍼센트 디자인
  • 주식처럼 차트
  • 인바디처럼 종이로 프린트할수있는것처럼 차트 츌력?
    • 시즌제로 랭킹
    • 점수는 시즌참가하는사람들끼리 정한다.
    • 일일데이터 블로그에 개시할 수 있도록 뱃지같은거
    • 프라이빗한데이터는 뺄수 있도록
  • 처음에 자기 계획 짜서 입력해두고 그것에 얼마나 맞게 행동했는지 점수화
    • 계획짜는건 구글캘린더에서 가져오기? -> OAuth 를 통해 가능. calander API접근가능
  • 돈 기능 추가
  • db최근몇개만 가져오는 것으로 최근 1~2주만 보도록
  • 자주적는활동 즐겨찾기
  • 앱 사용량 보여주는 앱 처럼 이쁘게 선 하나에 24시간이라 치고 각각 뭐했는지 보여주는 것
  • 선택화면에서 카테고리나 시간만 수정했을 때, update 누르지 않고 카테고리만 수정하면 바로 업데이트 되도록

메인 페이지 추가 기능 구현

목표

image

체크리스트

  • 선택한 RecodeList 날짜 표시
  • 게시판 구현
  • 카테고리별 파이 그래프 그리기
  • 파이 그래프 색 의미하는 것 적는 칸 만들기

FE에서 TimeRecode추가하면 POST로 DB에 추가하기

구현할 내용

FE에서 TimeRecode 추가(Add Recode 버튼을 눌러 나타나는 입력창을 BE로 보냄)하면 DB에도 데이터가 추가된다.

체크리스트

  • 입력을 하고 POST를 하면 BE에서 잘 받는지
  • 받은 데이터를 DB에 저장할 수 있는지

Recode CSS 작업

구현할 내용

Recode 컴포넌트 CSS 를 기획과 맞게 수정

체크리스트

  • Recode 컴포넌트가 만족스럽게 보이는지

OAuth 쿠키로 처리하는 것 개선 or Back -> Front로 전송시 암호화

개선 방식

CRA에 적합한 OAuth 방식이 있는 것 같다 (PKCE)
다만 짧게 알아본 바로는 프론트에서 바로 인증을 하기 때문에 앱의 백엔드 API서버에서는 인증이 안될 것 같아서 일단 더 알아보려고 놔뒀다.

callback url에서 Access Token받고 Authorization header에 넣는 방법으로 전송하면 보안상 유리할 것 같지만 잘 되지 않았다. 하는방법을 찾아 적용하는 것도 좋겠다.

암호화

callback url로 Access Token이 오면 Frontend로 보내기 위해 쿠키에 담은 뒤 Frontend로 redirect가 끝나면 쿠키 삭제 후 localstorage에 저장하는 방식을 쓰려고 한다.

이 잠시동안 쿠키가 전달될 때 보안이 취약해서 서버와 Front사이에 암호화를 해서 전달한다면 보안에 유리해진다.

체크리스트

  • 백엔드에서 쿠키 암호화
  • 프론트에서 쿠키 복호화

아이디어 캡쳐해서 업로드

손으로쓰고싶은사람도 있음
손으로쓰고 큐알코드있는 종이로 찍으면 글씨인식후 업로드
관련 종이를 다이어리등으로 팔수도

Recode 컴포넌트 수정

목표

image

  • Recode 하나의 항목을 보여주는 Recode컴포넌트를 만든다.

체크리스트

  • 각 항목을 제대로 보여주는지
  • onclick method를 만들었는지

Recode / POST API 구현

시간 기록을 추가하는 API

query

// accessToken 함께
{
    title: string
    startTime: { hour, min }
    endTime: { hour, min }
    category: 'develop' | null 
}

body

{
    message: 'success'
}

InputPage 구현

구현할 내용

image

체크리스트

  • 위 그림과 같은 input을 받을 수 있는지
  • submit시 데이터 전달이 잘 되는지

Recode / PUT API 구현

TR을 수정하는 API
query

// accessToken 함께
{
    index
    TR ( 수정하지 않을 것 넣지 않음)
}

body

{
    message: 'success'
}

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.