Giter VIP home page Giter VIP logo

introspection-helper's Introduction

Introspection Helper logo.
Introspection Helper

크롬 익스텐션으로 빠르게 회고를 작성하세요!


목차

  1. Introspection Helper
  2. 크롬 마켓
  3. 기본 사용법
  4. 옵션 설정법
    1. 폴더 이름 커스텀하는 법
    2. 파일 이름 커스텀하는 법
    3. 커밋 메세지 커스텀하는 법
    4. 회고 템플릿 커스텀 하는 법
  5. 문의
  6. 컨벤션

Introspection Helper란?

매일매일 회고를 쓰려 해도 자꾸만 까먹는 분들을 위해 (제 얘기입니다) 만든 크롬 익스텐션입니다. 익스텐션 입력창에 간단한 마크다운 형식의 회고를 작성하고 제출하면, 연결된 레파지토리에 자동으로 커밋됩니다.

license 이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.




크롬 마켓에서 설치하기

해당 링크에서 설치할 수 있습니다.

크롬 마켓 바로 가기




기본 사용법

(로그인, 레포 선택, that's it!! 이제 input에 글을 쓰고 commit하세요. 날짜별로 자동으로 year/month 폴더가 생성됩니다. 만약 하루에 두 번 commit하려 하면 파일이름이 중복돼요. 그럼 prompt 창이 떠서 새 이름을 입력할 수도 있습니다.)

  1. Github Login 버튼을 눌러 깃허브 로그인을 진행해주세요. alt text

  2. 회고를 올릴 레포지토리를 선택해주세요. alt text

  3. 이제 마크다운 형식으로 글을 쓰고 submit 버튼을 누르면, 자동으로 글이 push됩니다! submit 한 날짜에 따라 {year} 폴더, {month} 폴더가 생성되고, 그 안에 오늘자 회고.md 파일이 생성됩니다.

  4. 만약 하루에 여러 번 submit 하면 동일한 이름의 파일이 존재하기 때문에 새 이름을 입력하라는 prompt 창이 뜹니다. alt text

  5. 글을 임시 저장하고 싶다면 save 버튼을 눌러주세요. (단, submit 버튼으로 글을 push하면 saved text는 삭제됩니다!) alt text

  6. 다른 레포지토리와 연결하고 싶다면 Logout 버튼을 눌러 로그아웃하고 다시 연결해주세요.

  7. 옵션을 설정하고 싶다면 more options 버튼을 눌러주세요.




옵션 설정법

1. 폴더 이름을 커스텀하고 싶어요.

현재 폴더 이름은 자동으로 year/month 로 설정됩니다. 예를 들어 2024.05.21 날짜에 회고를 작성하면 2024/05폴더가 생성되고, 그 안에 20240521.md 파일이 생성됩니다. 만약 폴더 이름을 커스텀하고 싶다면 이렇게 진행해주세요!

개발 진행 중입니다.

2. 파일 이름을 커스텀하고 싶어요.

현재 파일 이름은 자동으로 {year}{month}{day}.md 파일로 설정됩니다. 예를 들어 2024.05.21 날짜에 회고를 작성하면 20240521.md 파일이 생성됩니다. 만약 파일 이름을 커스텀하고 싶다면 이렇게 진행해주세요!

개발 진행 중입니다.

3. 커밋 메세지를 커스텀하고 싶어요.

현재 커밋 메세지는 Create new file 로 설정되어있습니다. 만약 이를 수정하고 싶다면 이렇게 진행해주세요!

개발 진행 중입니다.

4. 회고 템플릿을 사용하고 싶어요.

기본적으로는 아무 템플릿도 제공되지 않습니다. 만약 템플릿을 사용하고 싶다면 이렇게 진행해주세요!

  1. go to option-> 버튼을 눌러 option 페이지로 이동해주세요.
  2. Template Option에 회고 양식을 입력하고, save 버튼을 눌러주세요.
  3. 이제 템플릿은 계속 저장됩니다! 단, 로그아웃을 하면 템플릿은 삭제돼요.
  4. 만약 template을 없애고 싶다면 reset 버튼을 눌러주세요.

5. 오늘 회고를 작성했는지 안했는지 보고 싶어요.

오늘 회고를 작성했는지, 안 했는지 보고 싶은 분들은 이렇게 진행해주세요!

  1. go to option-> 버튼을 눌러 option 페이지로 이동해주세요.
  2. Time Option에 Check to know if you'v write introspection! 을 눌러주세요.
  3. 다시 popup 페이지로 오면, 적용된 걸 확인할 수 있어요! 단, 로그아웃을 하면 기록은 초기화돼요.
  4. 회고 작성 여부 기준은, 오늘 submit 버튼을 눌러 push를 진행했느냐, 안했느냐 예요. 즉, 익스텐션을 사용하지 않고 레포지토리에 직접 회고글을 올리면 회고 작성 여부가 반영되지 않아요.



문의

문제가 생겼다면 Issues -> Bug report 템플릿을 활용해주세요.
제안하고 싶은 게 있다면 Issues -> feat request 템플릿을 활용해주세요.




컨벤션

커밋 메세지 컨벤션

  • feat: 새로운 기능 추가
  • fix: 버그 수정
  • docs: 문서 수정
  • style: 코드 포맷팅 (코드 변경 없음)
  • design: 디자인 수정 (기능 변경 없음)
  • refactor: 코드 리팩토링 (기능 변경 없음)
  • rename: 변수명, 클래스명, 파일명 등 이름 수정 (기능 변경 없음)
  • test: 테스트 추가 또는 수정
  • chore: 빌드 프로세스 또는 보조 도구 변경

네이밍 컨벤션

  • 변수 및 함수 이름: camelCase (예: myFunction)
  • id 이름: kebab-case (예: main-header)
  • class 이름: BEM (예: nav__item nav__item--active)
  • 상수: UPPER_SNAKE_CASE (예: MAX_VALUE)

introspection-helper's People

Contributors

hongjw030 avatar

Watchers

 avatar

introspection-helper's Issues

[Feat] 오늘 회고 썼는지 안썼는지 볼 수 있는 기능

Describe the solution or new feature you'd like
오늘 회고 썼는지 안썼는지 볼 수 있는 기능

Is your feature request related to a problem? Please describe.
오늘 회고를 썼는지 안썼는지 체크하는 ui가 있어야 함. (나를 위해서라도..)

Write down the sub-tasks in a checklist format

  • option.html 에 체크박스를 만들기.
  • 따로 저장 버튼은 두지 않고 그냥 체크에 따라 값이 chrome.local.storage에 저장되게 하기.
  • checked일 경우 go to option 버튼 위에 option section을 두고, section이 display flex되게끔 이벤트리스너 추가하기
  • 오늘 내가 썼는지 안썼는지 체크할 수 있는 로직이 2개가 있는데, (1) 로컬에 오늘의 date와 boolean 값을 저장하고 submit 버튼을 눌러 성공하면 true, 아니면 false 저장. 창이 켜질 때마다 new Date 값을 따서 현재 date와 저장된 date값이 다르면 날짜가 바뀐 거니까 date 값 갱신해서 저장하고 boolean값은 false로 초기화한다. (2) 내 레포에 20240524.md 파일이 있는지 체크한다. 이건 간단하지만 문제는 파일명을 바꾸면 인식을 못함. 그래서 걍 (1) 방법 써야 겠음... 챗지피티한테 물어보니까 얘도 이 방법 말하기도 하고 ㅇㅇ... 하여간 submit 버튼 누르고 성공하는 시점에 날짜를 저장하는 로직 구현 아!! boolean은 딱히 필요가 없네.
  • 팝업 열릴 때마다 저장된 날짜와 오늘 날짜 비교하는 로직 짜기. 만약 다르면 오늘 작성 안한거고 같다면 오늘 쓴 거임. 그에 따라 option-section innerText 달리 보이게 하기.

Additional context
추가 내용을 적어주세요.

기능 추가에 따른 디자인 수정

Describe the solution or new feature you'd like
전체적인 디자인 수정하기

Is your feature request related to a problem? Please describe.
테마, 시계, 커밋메세지 등의 기능을 추가하면서 디자인이 너무 번잡해짐. 이에 따라 디자인을 전체적으로 수정해야 할 필요성 대두.

Write down the sub-tasks in a checklist format

  • popup.html의 로그인 페이지 디자인 수정
  • popup.html의 레포 리스트 선택 페이지 디자인 수정
  • popup.html의 post 페이지 디자인 수정
  • option.html 페이지 삭제하고 popup.html 페이지의 more option 버튼을 누르면 toggle 되게끔 설정하기. (즉, 옵션을 모두 popup.html 로 옮길 것. 서로 다른 html 파일에서 chrome.storage.local 값을 다루기 때문에 코드 중복 및 번잡해지는 문제 때문.)
  • popup.html 로 옮겨진 option 설정들에 대한 디자인 수정

Additional context
x

[Design] choose repo section 디자인 수정하기

Describe the solution or new feature you'd like
로그인 이후 등장하는 choose repo section 디자인 수정하기.

Is your feature request related to a problem? Please describe.
현재는 아무 css도 적용되지 않아 그냥 li로만 나열돼있어서 자간도 좁고 보기도 안좋음.

Write down the sub-tasks in a checklist format

  • li로 나열되는 레포 이름 크기 키우고 /
  • hover 시 blue 색깔 되게 하고 /
  • 자간 간격 넓히기

Additional context

[Refactor] 날짜 유틸 함수 분리

날짜 유틸 파일엔 아래 함수들이 필요함.

  1. 폴더 이름이나 파일 이름 커스텀용 / 폴더 이름용 기본 함수: [year, month, day] 객체 리턴
  2. initial 파일 이름 리턴 함수: 20240521 꼴로 파일 이름을 문자열로 리턴
  • 각 함수 1 2 의 testcase를 짰는가?
  • 1번 함수를 만들었는가?
  • 1번 테스트?
  • 2번 함수 만들음?
  • 2번 테스트?

[Refactor] fetchRepo 함수 분리

  • fetchRepo 함수에 대한 테스트케이스 작성. fetch 받은 데이터를 가지고 li 를 만들어 document.getElementBiId-extension-ul 태그 안에 삽입하는 함수.
  • fetchRepo 함수 분리

params: token, nickname

커밋 메세지 커스텀 기능 추가

Describe the solution or new feature you'd like
커밋 메세지 커스텀 기능 추가하기

Is your feature request related to a problem? Please describe.
기본적으로 Create new Markdown file 로 설정된 커밋 메세지를 유저가 커스텀할 수 있게 설정하여, 본인의 컨벤션에 맞게 활용할 수 있도록 하기.

Write down the sub-tasks in a checklist format

  • option.html에서 커밋 input 만들기
  • option.html에서 커밋 save, reset 버튼 만들기
  • popup.js 파일에서 커밋 메세지 설정값에 따라 커밋되게끔 로직 구현

Additional context
x

[Feat] 임시저장 기능 구현하기

Describe the solution or new feature you'd like
popup.html 의 textarea 임시저장 기능 구현하기

Is your feature request related to a problem? Please describe.

  • 실수로 창이 꺼지면 그대로 내용이 날라가기 때문에, 창이 꺼지거나 goto option 페이지를 눌렀다가 다시 돌아올 때엔 textarea 의 텍스트가 그대로 남아있게 해야 함.
  • 어차피 익스텐션 특성 상 계속 창이 켜져있진 않을테니 일정 시간 지나면 자동 임시저장되는 기능은 필요없을 것으로 보임.

Write down the sub-tasks in a checklist format

  • extension 창이 꺼지면 그 당시의 textarea 값이 chrome storage에 임시저장되게 구현하기
  • goto option 페이지로 이동해도 당시 textarea값이 storage에 임시저장되게 하기

Additional context

[Chore] jest, 바벨, jest를 위한 웹팩 설정 설치, config 설정

단위 테스트 도입을 위해 jest를 활용하기로 결정. jest는 node.js 환경에서 실행되지만, 웹팩과 바벨을 통해 브라우저 단에서도 활용이 가능하며 이를 통해 익스텐션 프로그램에서도 적용 가능하다고 한다.

Todo

  • jest, barbel, webpack 설치
  • webpack.config 설정
  • jest를 위한 test 폴더 생성

[Feat] 제목 Header display flex, none 기능 분리 및 test 추가

Describe the solution or new feature you'd like
header 부분과 관련된 js 기능 분리 및 test 케이스 추가

Is your feature request related to a problem? Please describe.

Write down the sub-tasks in a checklist format

  • popup.html 에서 header 부분 id와 class 명 조정
  • option.html 에서 header 부분 id와 class 명 popup.html에 따라 수정
  • popup.header 테스트케이스 작성: popup 페이지에서 header은 항상 display: flex여야 함.
  • popup.js에서 header 에 대한 코드 분리
  • popup.header 테스트 실행

Additional context
현재 popup파일만 리팩하는 과정이라 option에 대한 코드는 제껴둠.

[docs] 리드미 작성하기

  • 목차를 적절히 만들었는지
  • 로고
  • 프로그램 설명
  • 크롬 마켓
  • 설치법
  • 기본 사용법 (로그인, 레포 선택, that's it!! 이제 input에 글을 쓰고 commit하세요. 날짜별로 자동으로 year/month 폴더가 생성됩니다. 만약 하루에 두 번 commit하려 하면 파일이름이 중복돼요. 그럼 prompt 창이 떠서 새 이름을 입력할 수도 있습니다.)
  • 옵션 설정하는 법 (템플릿 설정법 / 커밋 이름 설정법 / 폴더 이름 커스텀 / 파일 이름 커스텀)
  • 문의방법: 이슈(버그템플릿 / 건의사항)

[chore] 크롬 마켓 올리기

  • 크롬마켓에 올리기. 5달러 든다는데... 일단 올리면서 그 과정을 어디 기록해두자. 나중에 또 익스텐션 만들게.

[Feat] option.html 오늘 회고를 썼는지 안썼는지 보여주는 설정 체크 기능.

Describe the solution or new feature you'd like
option.html 페이지의 option-section-clock 파트에서, 오늘 회고를 썼는지 안썼는지 볼 수 있는 기능 체크박스를 구현하기.

Is your feature request related to a problem? Please describe.

Write down the sub-tasks in a checklist format

  • option.html 에 체크박스 구현하기: 오늘 회고 썼는지 안썼는지 볼건가? default 값은 checked.
  • option.html 체크박스에 기능 연결: checked yes를 하면 popup.html 의 section title 'write your inspection! 과 option 버튼 사이에 줄글 text 디자인으로 집어넣을 것.
  • option.html 체크박스에 기능 연결: checked no를 하면 popup.html의 did you write section display none 체크를 할 것.
  • option.html 하단 fixed 로 option 저장 버튼 만들기.

Additional context
추가 내용을 적어주세요.

tutorial.html 파일 만들기

Describe the solution or new feature you'd like
welcome.html 페이지를 삭제하고 tutorial.html 로 바꾸기

Is your feature request related to a problem? Please describe.

  1. welcome.html 는 현재 쓸모가 없음. 삭제해도 무방.
  2. 깃허브 readme 만으로는 모든 튜토리얼을 담기에 너무 길어지는 문제. 따라서 리드미에는 기본 설명만 적고, 나머지 추가 설명은 따로 tutorial.html 에 담는 게 좋아보임.

Write down the sub-tasks in a checklist format

  • tutorial.html 파일 생성
  • tutorial.html 에 기본 설명 적기
  • tutorial.html 에 추가 설명 적기
  • tutorial.html 하단 footer에 contact 적기
  • tutorial.html 파일 전체적인 디자인.
  • Readme 파일에도 tutorial 링크 걸어두기

Additional context
x

[Feat] 템플릿 생성 기능

Describe the solution or new feature you'd like
option.html 파일에 textarea를 추가해서 템플릿 생성 기능을 구현할 것.

Is your feature request related to a problem? Please describe.
템플릿이 있어야 훨씬 편할 것으로 예상됨....

Write down the sub-tasks in a checklist format

  • textarea 생성
  • save 버튼 생성
  • reset버튼 생성

Additional context
추가 내용을 적어주세요.

[Refactor] popup.js 파일 코드 분리

Describe the solution or new feature you'd like
popup.js 파일 코드 분리

Is your feature request related to a problem? Please describe.

  • 현재 popup.js 파일은 전혀 분리되지 않아 코드 길이가 350줄 이상. 여기다 option.js 파일까지 추가하려니 너무 복잡해짐. 심지어 콜백 지옥도 겁나 펼쳐졌다. 따라서 기능별로 파일 코드를 분리할 필요가 있다!
  • 단, 디자인은 나중에 한꺼번에 수정하고 일단은 기능 리팩토링만 진행하자.

Write down the sub-tasks in a checklist format

  • #20
  • #23
  • #25
  • #26
  • choose repository 에서 repo list 기능 분리 및 test 추가
  • owner Nickname 기능 분리 및 test 추가
  • selected repo 분리 및 test 추가
  • github logout 분리 및 test 추가
  • #28
  • submit 버튼 분리 및 기능 추가
  • goto option 버튼 분리및 기능 추가
  • Footer 코드 분리 및 test.. 는 추가 안해도 될듯.
  • #29
  • #32
  • #34
  • #36

Additional context

[Refactor] Github Login 버튼 기능 분리 및 test 추가

  • 로그인 버튼 test case 1 '클릭하면 깃헙 소셜 인증창으로 넘어가는가' 케이스 만들기
  • popup.html 로그인 버튼 class, id 네이밍컨벤션에 맞게 수정
  • scripts/authorization 폴더에다가 test case 1을 통과할 만큼의 기능 분리하고 테스트하기

그 이후 로그인 후 / display none이 되면서 logout버튼의 display flex됨, / 유저 정보 받기 / repo list 받기는 다른 기능이니 login 버튼에 뭘 더 추가하지 말것. 로그인 버튼의 기능은 딱 로그인을 한다 까지임.

[Feat] 선택된 레포 이동 기능 추가

Describe the solution or new feature you'd like
selected repo 를 클릭하면 해당 레포로 갈 수 있게 a 태그를 연결해둠.

Is your feature request related to a problem? Please describe.
제대로 push가 됐는지 등 확인하기 위해 추가하는 게 더 편의성 면에서 좋아보임.

Write down the sub-tasks in a checklist format

  • selected repo span에 a 태그를 연결했는지?

Additional context

시계 알람 기능 추가

Describe the solution or new feature you'd like
option.html 에서 알람 설정 기능을 추가하기.

Is your feature request related to a problem? Please describe.
좀 더 확실하게 회고 쓰는 습관을 들이도록 도와주고자, 유저가 option 페이지에서 알람 추가 기능 / 몇 시에 알람 울릴지 설정할 수 있는 기능을 추가하기.

Write down the sub-tasks in a checklist format

  • option.html 페이지에서 알람 설정 체크박스 만들기
  • option.html 페이지에서 알람 몇 시에 울릴지 시간 설정 만들기
  • option.html 페이지에서 알람 저장 리셋 버튼 만들기
  • popup.html 페이지에서 알림 설정한 사람은 알림 볼 수 있게끔 section 추가하기
  • popup.js 페이지에서 알림 울리는 기능 만들기
  • 알림 기능 추가에 따른 manifest.json permission 및 docs 수정하기

Additional context
x

[Feat] 옵션을 설정할 수 있는 option.html 페이지 추가하기

Describe the solution or new feature you'd like
템플릿, 폴더 이름, 파일 이름, 커밋 이름 등 옵션을 설정할 수 있는 html 페이지 추가하기

Is your feature request related to a problem? Please describe.
popup.html 내에서 모든 기능을 넣으면 너무 커져서, option.html을 따로 둘 필요성.

Write down the sub-tasks in a checklist format

  • option.html 페이지 생성하기
  • popup.html 페이지에서 option.html 페이지로 이동할 수 있게 ui버튼 추가
  • option.html 에는 총 3가지 섹션 들어가야 함. 아래 3개 섹션 초안만 잡기.
  • 1. 오늘 날짜는 뭔지 + 오늘 회고를 썼는지 세개 체크박스 input 둔 섹션. 기본적으론 3번째 오늘 회고썼는지 여부만 yes default고 나머지는 no default임.) 알림 설정기능, 알림 설정할건지 체크하는 토글박스랑 알림 시간 설정하는 칸이 있어야 함.
  • 2. 폴더이름 바꾸는 기능 / Caution 문구 넣기. 아무렇게나 바꾸면 폴더 이름 중복이라든가 등등 문제 터질수 있다고.. / 파일 이름 바꾸는 기능 / Caution 문구 넣기. / 커밋 메세지 바꾸는 기능 / 현재 커밋 메세지: ~~ 랑 input이랑 save 칸 하나 넣기.
  • 3. 템플릿 설정하는 기능.. 이건 너무 커서 지금 생각이 안나니까 일단 section 빈거 하나만 만들기.

Additional context

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.