Skip to content

Attraction-of-John/OneFocus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

92 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

One Focus ๐ŸŽฏ

ํ•œ๊ตญ์–ด | English

์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ์„ ์œ„ํ•œ ํ†ตํ•ฉ ํƒ€์ด๋จธ ๋ฐ ํ•  ์ผ ๊ด€๋ฆฌ Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ

One Focus๋Š” ํฌ๋ชจ๋„๋กœ ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•œ ํƒ€์ด๋จธ์™€ ํ•  ์ผ ๊ด€๋ฆฌ๋ฅผ ๊ฒฐํ•ฉํ•œ ์ƒ์‚ฐ์„ฑ ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์–ด ์ƒˆ ํƒญ์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋™๊ธฐ๋ถ€์—ฌ๋ฅผ ์œ„ํ•œ ๋ช…์–ธ๊ณผ ํ•จ๊ป˜ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ• ์Šค๋งˆํŠธ ํƒ€์ด๋จธ

  • ํฌ๋ชจ๋„๋กœ ๊ธฐ๋ฒ• ๊ธฐ๋ฐ˜์˜ ์ง‘์ค‘ ์‹œ๊ฐ„ ๊ด€๋ฆฌ
  • ์‹ค์‹œ๊ฐ„ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ - ์›ํ˜• ํ”„๋กœ๊ทธ๋ ˆ์Šค ๋ฐ”๋กœ ๋‚จ์€ ์‹œ๊ฐ„ ์‹œ๊ฐํ™”

๐Ÿ“ ํ•  ์ผ ๊ด€๋ฆฌ

  • ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ - ์ง๊ด€์ ์ธ ์ˆœ์„œ ๋ณ€๊ฒฝ
  • ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„๋ฅ˜ - ์ž‘์—…์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌ
  • ์‹œ๊ฐ„ ํ• ๋‹น - ๊ฐ ์ž‘์—…์— ์ง‘์ค‘ ์‹œ๊ฐ„์„ ์„ค์ •
  • ์šฐ์„ ์ˆœ์œ„ ๊ด€๋ฆฌ - ์ž‘์—… ์ˆœ์„œ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์กฐ์ •

๐Ÿ’ก ๋™๊ธฐ๋ถ€์—ฌ

  • ๋ช…์–ธ ์นด๋“œ - ๋งค์ผ ์ƒˆ๋กœ์šด ์˜๊ฐ์„ ์ œ๊ณตํ•˜๋Š” ๋ช…์–ธ
  • ๋‹ค๊ตญ์–ด ์ง€์› - ํ•œ๊ตญ์–ด/์˜์–ด ์ธํ„ฐํŽ˜์ด์Šค
  • ์•„๋ฆ„๋‹ค์šด UI - ์ง‘์ค‘์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๋Š” ๋ฏธ๋‹ˆ๋ฉ€ํ•œ ๋””์ž์ธ

๐Ÿ”ง ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ

  • Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ - ์ƒˆ ํƒญ์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉ
  • ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ - ๋ฐ์ดํ„ฐ๋Š” ๋ธŒ๋ผ์šฐ์ €์— ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ
  • ๋ฐ˜์‘ํ˜• ๋””์ž์ธ - ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์— ์ตœ์ ํ™”
  • ๋‹คํฌ ํ…Œ๋งˆ - ๋ˆˆ์˜ ํ”ผ๋กœ๋ฅผ ์ค„์ด๋Š” ์–ด๋‘์šด ํ…Œ๋งˆ

๐Ÿš€ ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ๋ฒ•

์„ค์น˜

Chrome ์›น ์Šคํ† ์–ด์—์„œ One Focus๋ฅผ ์ง์ ‘ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

One Focus ์„ค์น˜

๊ฐ„ํŽธ ์„ค์น˜ ๋ฐฉ๋ฒ•:

  1. ์œ„์˜ ์„ค์น˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ Chrome ์›น ์Šคํ† ์–ด๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”
  2. "Chrome์— ์ถ”๊ฐ€" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์„ธ์š”
  3. ์„ค์น˜๋ฅผ ํ™•์ธํ•˜์„ธ์š”
  4. ์ƒˆ ํƒญ์„ ์—ด์–ด One Focus๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”!

๊ฐœ๋ฐœ์ž์šฉ ์„ค์น˜ (์†Œ์Šค์ฝ”๋“œ์—์„œ): ์†Œ์Šค์ฝ”๋“œ์—์„œ ์„ค์น˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ด ์ €์žฅ์†Œ๋ฅผ ํด๋ก ํ•˜๊ณ  Chrome์˜ ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ์—์„œ ์••์ถ•ํ•ด์ œ๋œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ•

  1. ํ•  ์ผ ์ถ”๊ฐ€: "+" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ž‘์—…์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  2. ํƒ€์ด๋จธ ์‹œ์ž‘: ํ•  ์ผ ๋ชฉ๋ก์—์„œ ์›ํ•˜๋Š” ์ž‘์—…์˜ ํƒ€์ด๋จธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค
  3. ์ง‘์ค‘ํ•˜๊ธฐ: ์„ค์ •๋œ ์‹œ๊ฐ„ ๋™์•ˆ ์ง‘์ค‘ํ•˜๋ฉฐ ์ž‘์—…์— ๋ชฐ์ž…ํ•ฉ๋‹ˆ๋‹ค
  4. ํœด์‹: ํƒ€์ด๋จธ ์™„๋ฃŒ ํ›„ ์ ์ ˆํ•œ ํœด์‹์„ ์ทจํ•ฉ๋‹ˆ๋‹ค

๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ

Frontend

  • React 18 - ์ตœ์‹  React ๊ธฐ๋Šฅ ํ™œ์šฉ
  • TypeScript - ํƒ€์ž… ์•ˆ์ „์„ฑ ๋ณด์žฅ
  • Vite - ๋น ๋ฅธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ
  • Tailwind CSS - ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ๋ฐ˜ ์Šคํƒ€์ผ๋ง
  • Radix UI - ์ ‘๊ทผ์„ฑ์ด ๋›ฐ์–ด๋‚œ UI ์ปดํฌ๋„ŒํŠธ

์ƒํƒœ ๊ด€๋ฆฌ

  • Zustand - ๊ฐ€๋ฒผ์šด ์ƒํƒœ ๊ด€๋ฆฌ
  • React Query - ์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ (ํ–ฅํ›„ ํ™•์žฅ์šฉ)

Chrome Extension

  • Manifest V3 - ์ตœ์‹  Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ API
  • Service Worker - ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—… ์ฒ˜๋ฆฌ
  • Chrome Storage API - ๋ฐ์ดํ„ฐ ์˜์†์„ฑ

๊ฐœ๋ฐœ ๋„๊ตฌ

  • ESLint - ์ฝ”๋“œ ํ’ˆ์งˆ ๊ด€๋ฆฌ
  • Prettier - ์ฝ”๋“œ ํฌ๋งทํŒ…
  • Storybook - ์ปดํฌ๋„ŒํŠธ ๋ฌธ์„œํ™”
  • Cypress - E2E ํ…Œ์ŠคํŒ…

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

src/
โ”œโ”€โ”€ components/          # React ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ oneFocus/       # One Focus ์ „์šฉ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ timer/      # ํƒ€์ด๋จธ ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ todoList/   # ํ•  ์ผ ๋ชฉ๋ก ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ quote/      # ๋ช…์–ธ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ””โ”€โ”€ ui/         # UI ์ปดํฌ๋„ŒํŠธ
โ”‚   โ””โ”€โ”€ ui/             # ๊ณตํ†ต UI ์ปดํฌ๋„ŒํŠธ
โ”œโ”€โ”€ stores/             # Zustand ์ƒํƒœ ๊ด€๋ฆฌ
โ”œโ”€โ”€ hooks/              # ์ปค์Šคํ…€ React ํ›…
โ”œโ”€โ”€ utils/              # ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜
โ”œโ”€โ”€ types/              # TypeScript ํƒ€์ž… ์ •์˜
โ”œโ”€โ”€ i18n/               # ๋‹ค๊ตญ์–ด ์ง€์›
โ””โ”€โ”€ pages/              # ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ

๐ŸŽจ UI/UX ํŠน์ง•

  • ๋ฏธ๋‹ˆ๋ฉ€ ๋””์ž์ธ - ์ง‘์ค‘์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๋Š” ๊น”๋”ํ•œ ์ธํ„ฐํŽ˜์ด์Šค
  • ๋‹คํฌ ํ…Œ๋งˆ - ๋ˆˆ์˜ ํ”ผ๋กœ๋ฅผ ์ค„์ด๋Š” ์–ด๋‘์šด ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ
  • ๋ฐ˜์‘ํ˜• ๋ ˆ์ด์•„์›ƒ - ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์— ์ตœ์ ํ™”
  • ๋ถ€๋“œ๋Ÿฌ์šด ์• ๋‹ˆ๋ฉ”์ด์…˜ - ์ž์—ฐ์Šค๋Ÿฌ์šด ์ „ํ™˜ ํšจ๊ณผ
  • ์ง๊ด€์ ์ธ ๋„ค๋น„๊ฒŒ์ด์…˜ - ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์ธํ„ฐํŽ˜์ด์Šค

๐Ÿ”ง ๊ฐœ๋ฐœ ์Šคํฌ๋ฆฝํŠธ

# ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰
yarn dev

# ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ
yarn build

# ์ฝ”๋“œ ๋ฆฐํŒ…
yarn lint

# ์ฝ”๋“œ ํฌ๋งทํŒ…
yarn format

# ํ…Œ์ŠคํŠธ ์‹คํ–‰
yarn test

# Storybook ์‹คํ–‰
yarn storybook

# Cypress E2E ํ…Œ์ŠคํŠธ
yarn cypress:open

๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LICENSE ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๐Ÿ“ž ์—ฐ๋ฝ์ฒ˜

ํ”„๋กœ์ ํŠธ ๋งํฌ: https://github.com/Attraction-of-John/OneFocus

๐Ÿ™ ๊ฐ์‚ฌ์˜ ๋ง

  • Radix UI - ์ ‘๊ทผ์„ฑ์ด ๋›ฐ์–ด๋‚œ UI ์ปดํฌ๋„ŒํŠธ
  • Lucide React - ์•„๋ฆ„๋‹ค์šด ์•„์ด์ฝ˜
  • Tailwind CSS - ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ๋ฐ˜ CSS ํ”„๋ ˆ์ž„์›Œํฌ
  • Zustand - ๊ฐ€๋ฒผ์šด ์ƒํƒœ ๊ด€๋ฆฌ

One Focus์™€ ํ•จ๊ป˜ ๋” ๋‚˜์€ ์ƒ์‚ฐ์„ฑ์„ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”! ๐Ÿš€

About

๐Ÿš€ OneFocus project presents a comprehensive solution to enhance productivity by integrating time management with task tracking and continuous motivation within a Chrome extension! ๐Ÿš€

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors