깃허브 readme에 정리해놨었던 것을 옮겨놨다. 둘다 마크다운 언어라 나름의 재미가 있다.
앞으로의 계획은 순서대로이며 프로젝트를 진행하는 과정 / 오류들을 적어나갈 계획이다.
여기에는 자유롭게 작성하고 👉 readme는 정제해서 쓸것!
고등학교때 하루하루 공부시간 측정용으로 사용했던 스톱워치에서 착안하여 프로젝트겸, 코딩 실력도 늘리고, 공부한 시간 기록도 하면서 코딩 텐션 유지에도 도움이 되는 웹앱 코딩 스톱 워치를 기획했다.
React.js, redux, styled-components, gh-pages, moment.js, chart.js, mongoDB (+ mongoose), indexedDB
추가할 것들
- ts, apollo, graphql, vite
- 최적화, 클린코드, github-actions
canva로 만든 기초 디자인
상 - 스톱워치 기본 기능
중 - 지난 2주간 공부시간과 contributions을 나타내는 그래프
하 - 월별 공부시간과 contributions을 나타내는 달력
모두가 사용할 수 있게 브라우저로 코딩시간을 저장할 수 있는 웹스토리지를 선택했다. (클라이언트에서 적용되는 웹 db)
여기 를 보면 추천하는 웹스토리지는 두개이다.
-네트워크로 불러온 리소스나 파일을 캐싱해야 한다면 캐시 스토리지 API(Cache Storage API)
-아니라면 IndexedDB
캐싱이나 로컬스토리지는 추천하지 않는다길래 IndexedDB로 선택했다.
(여기 에서 웬만한 브라우저가 로컬 스토리지를 원한다는 것을 확인.)
여기 와 여기
위에 링크로 indexedDB의 사용법을 알아보았다. 의외로 사용에는 어려움이 없어보인다.
indexDB로 저장할 data는 두가지이다.
-깃허브 아이디 -> 나중에 깃허브 아이디를 바꿀수 있게 update를 할 예정이므로 깃허브 아이디 별로 저장공간이 필요
-날짜와 날짜 별 코딩시간 -> 날짜와 날짜별 코딩 시간을 저장하고, 그래프와 달력에 값을 호출
라고 생각을 했으나.
깃허브 아이디는 그냥 내거만 쓰기로 하고, 시간만 저장하는 것이 좋을 것 같아서 MongoDB를 사용하기로 했다. 다른사람들이 이 페이지에 들어와서 시간을 수정할 수도 있으니 나만 수정할 수 있게끔 방법을 찾아보자.
github docs, 깃헙 컨트리뷰션 api, 깃헙 컨트리뷰션 api 2
위 주소를 참고, api를 이용해 달력에 표시할 contributions 값을 받아온다.
apollo-graphql을 이용해 넘어오는 값을 필터링해보자.
여기 를 보면 여러가지 react에서 이용할수 있는 라이브러리를 소개하고 있다. 그 중에서 chart.js를 선택했다. 유명하고 가볍고 친절한 설명이 장점이라고 하는데 딱히 큰 이유는 없다.
UI/UX는 기획 목표에 맞게 기본만 하자는 생각으로 단순, 깔끔, 명확하면서 부드러운 느낌을 주려고 했다.
참고 css를 리셋 해주었다.