An open API service indexing awesome lists of open source software.

https://github.com/saseungmin/recoil_todo

Todo๐Ÿ“† application created using Recoil and React โš›๏ธ
https://github.com/saseungmin/recoil_todo

async cypress demo github-page jest react recoil recoil-example recoil-todo recoiljs tdd test todo todolist

Last synced: about 2 months ago
JSON representation

Todo๐Ÿ“† application created using Recoil and React โš›๏ธ

Awesome Lists containing this project

README

        

## ๐Ÿฆ„ ToDo Application created using Recoil and React

### WIP!! [TS๊ธฐ๋ฐ˜์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ค‘](https://github.com/saseungmin/Recoil_ToDo/issues/91)













### ๐Ÿš€ Demo URL
- [Github Page](https://saseungmin.github.io/Recoil_ToDo/)
- [Demo Image](#-demo)
- Theme (light, dark)
- Desktop, Mobile

### ๐ŸŽˆ Introduce
- ์ด ํ”„๋กœ์ ํŠธ๋Š” React์˜ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ **[Recoil](https://recoiljs.org/)๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•œ** ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.
- ๊ทธ๋กœ ์ธํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ To-Do List๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ ๋ชฉํ‘œ๋กœ ์žก๊ณ  ์‹œ์ž‘ํ•˜์˜€์œผ๋ฉฐ, ๋” ๋‚˜์•„๊ฐ€ Recoil์„ ์‚ฌ์šฉํ–ˆ์„๋•Œ ์–ด๋–ป๊ฒŒ API ํ†ต์‹ ํ•˜๋Š”์ง€ ๋ฐฐ์šฐ๊ณ  ์‹ถ์–ด์„œ ๋ฐฑ์•ค๋“œ๋„ ๊ฐ™์ด ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
- Recoil ์‚ฌ์šฉ์— ์žˆ์–ด์„œ ๋ฏธ์ˆ™ํ•œ ์ ์ด ๋งŽ์•„ ๊ณต์‹ ๋ฌธ์„œ์™€ ์—ฌ๋Ÿฌ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ [Recoil Github Issue](https://github.com/facebookexperimental/Recoil/issues)๋ฅผ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
- TDD ์‚ฌ์ดํด์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์ผฐ๋‹ค๊ณ ๋Š” ๋ชปํ•˜์ง€๋งŒ, ์ง€ํ‚ค๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๋ฉฐ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

### ๐Ÿ‘‰ Back-End Repository
- https://github.com/saseungmin/Recoil_Todo_Backend

### ๐Ÿ”ฅ ๊ธฐ์ˆ  ์Šคํƒ ๋ฐ ์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
- React
- Recoil
- Emotion
- Axios
- Lodash
- universal-cookie
- Jest, React-Testing-Library, Cypress
- Webpack, Eslint, Babel

### ๐Ÿถ Project Structure

```
๐Ÿ“ฆ src
โ”ฃ ๐Ÿ“‚ assets
โ”ƒ โ”ฃ ๐Ÿ“‚ css
โ”ƒ โ”— ๐Ÿ“‚ icons
โ”ฃ ๐Ÿ“‚ components
โ”ƒ โ”ฃ ๐Ÿ“‚ auth
โ”ƒ โ”ฃ ๐Ÿ“‚ common
โ”ƒ โ”ฃ ๐Ÿ“‚ footer
โ”ƒ โ”ฃ ๐Ÿ“‚ info-bar
โ”ƒ โ”ฃ ๐Ÿ“‚ input
โ”ƒ โ”ฃ ๐Ÿ“‚ todo
โ”ƒ โ”— ๐Ÿ“‚ user-info
โ”ฃ ๐Ÿ“‚ hooks
โ”ฃ ๐Ÿ“‚ recoil
โ”ƒ โ”ฃ ๐Ÿ“‚ auth
โ”ƒ โ”ฃ ๐Ÿ“‚ common
โ”ƒ โ”ฃ ๐Ÿ“‚ todos
โ”ƒ โ”— ๐Ÿ“‚ user
โ”ฃ ๐Ÿ“‚ services
โ”ƒ โ”ฃ ๐Ÿ“‚ api
โ”ฃ ๐Ÿ“‚ styles
โ”ฃ ๐Ÿ“‚ utils
โ”ƒ โ”ฃ ๐Ÿ“‚ constants
โ”ƒ โ”ฃ ๐Ÿ“‚ recoil
โ”ฃ ๐Ÿ“œ App.jsx
โ”ฃ ๐Ÿ“œ App.test.jsx
โ”— ๐Ÿ“œ index.jsx
```

### ๐Ÿ›  Project Settings

#### ๐Ÿ“ข Install dependencies

```bash
> yarn install
```

#### ๐Ÿ“ข Start Dev Server

```bash
> yarn start
```

#### ๐Ÿ“ข Tests with Jest
- test

```bash
> yarn test
```

- test watch

```bash
> yarn run test:watch
```

- Run test with Code Coverage

```bash
> yarn run coverage
```

#### ๐Ÿ“ข Build project

```bash
> yarn run build
```

#### ๐Ÿ“ข Check Lint

```bash
> yarn run lint
```

#### ๐Ÿ“ข Deploy to Github Pages
- However, I used Github Actions for Continuous Delivery

```bash
> yarn run deploy
```

### ๐Ÿค” ์ถ”๊ฐ€์ ์ธ Issue ์‚ฌํ•ญ๊ณผ ๊ณ ๋ฏผํ•ด๋ณผ์ 
- [Recoil๋ฅผ ์‚ฌ์šฉํ•œ ToDo ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ์‚ฌํ•ญ](https://github.com/saseungmin/Recoil_ToDo/issues/4)
- [Recoil selector์™€ selectorFamily์˜ Cache๋กœ ์ธํ•œ ๋ฌธ์ œ์ ](https://github.com/saseungmin/Recoil_ToDo/issues/57)
- [JWT ํ† ํฐ๊ณผ ์ฟ ํ‚ค์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ](https://github.com/saseungmin/Recoil_ToDo/issues/57)

### ๐Ÿ’ป Demo
- Theme

ย 

- Desktop

![demo-desktop](images/demo-desktop.gif)

- mobile

## ๐Ÿ› Bug reporting
[Issues](https://github.com/saseungmin/Recoil_ToDo/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)

## ๐Ÿ”’ LICENSE
This Project is [MIT licensed](https://github.com/saseungmin/Recoil_ToDo/blob/main/LICENSE).