Committer: @hikari-8
To get started with this application, follow the instructions below:
-
Clone this repository to your local machine
-
Navigate to the project directory:
cd blog_client
-
Install the project dependencies using npm:
npm install
Run the npm run dev command:
npm run dev
The project structure is organized as follows:
โโโ src/
โโโ __generated__/ # Generated types and mock data by Orval
โโโ app/ # Navigation for App Router
โโโ assets/ # Reusable or global assets like images, fonts, etc.
โโ- components/
| โโโ page/ # Each pages
| โโโ *Features/ # Application's features (begin with Uppercase)
| โโโ ui/ # Globally reusable UI components
| โโโ functional/ # Globally reusable functional which has no view, only behavior
โโโ contexts/ # Globally reusable state
โโโ services/ # Application services like API clients
โโโ themes/ # Globally reusable themes like color, layouts, etc.
โโโ utils/ # Utility/helper functions
โโโ stories/ # Storybook ui parts and tests
๏ผ src/app ใฎๅฝนๅฒใฏๅบๆฌ็ใซใซใผใใฃใณใฐใฎใฟใจใใ
ใขใใชใฑใผใทใงใณใซๅญๅจใใ Component ใไปฅไธใฎ 4 ็จฎ้กใซๅ้กใใฆใใฃใฌใฏใใชใๅใใ
- src/components/page
- src/components/${Feature}
- src/components/ui
- src/components/functional
src/components/page : 1 ใคใฎใใผใธใ่กจใใณใณใใผใใณใ
src/components/${Feature} : ไฝใใใฎใใกใคใณใซ้ขๅฟใๆใคใณใณใใผใใณใ (ใใกใคใณใใจใซใใฃใฌใฏใใชใๅใ, ใใฃใฌใฏใใชๅใฏไปใณใณใใผใใณใใจใฎๅทฎๅฅๅใฎใใๅคงๆๅญใงๅงใใ)
src/components/ui : ใใกใคใณใซ้ขๅฟใใชใใณใณใใผใใณใ
src/components/functional : ใใกใคใณใซ้ขๅฟใใชใใview ใๆใใๆฏใ่ใใฎใฟใๆใคใณใณใใผใใณใ
่ชๅใฎๅณๅดใซๅญๅจใใฆใใใณใณใใผใใณใใ import ใใฆใใใ
page ไปฅๅคใฏ่ชๅใฎๆๅฑใใๅ้ก่ปธใฎๅ็
งใๅฏ่ฝใ
ไพๅญ้ขไฟใฎใใงใใฏใฏใeslint-plugin-strict-dependenciesใง้็ใซ่กใชใฃใฆใใใ
functional or ui โ models โ page
- E2E test : Playwright
- Unit test : Jest
- UI test : StoryBook
- Accessibility test : axe-core, lighthouse