- Next.js 14
- React 18
- TypeScript
- Tailwind CSS
- Vitest
- Playwright
This project implements Vertical Slice Architecture (VSA), it focuses on organizing code around features or "slices" of functionality, rather than traditional layered architectures.
- Feature-centric organization: Easier to understand and maintain as all related code is grouped together.
- Improved modularity: Each slice is self-contained, reducing coupling between different parts of the application.
- Faster development: Enables quicker implementation and testing of new features.
- Scalability: Facilitates the growth of the application without increasing complexity.
For a comprehensive understanding of Vertical Slice Architecture, I recommend watching this video on "Vertical Slice Architecture".
This app uses the Dog API to fetch dog breeds and associated images.
I have documented the specific API endpoints used in this project in my own API reference, which you can find here.
For easy testing and exploration of the API, a Postman collection for these endpoints is available here.
-
Clone the repository:
git clone https://github.com/jorgecancinof/dog-breeds.git && cd dog-breeds
-
This project uses Node.js LTS version 20.15.0. If you have a Node.js version manager (e.g., NVM, FNM, Volta), the
.nvmrc
file will help you switch to this version automatically. -
Install the dependencies:
npm ci
-
Start the development server:
npm run dev
-
Open http://localhost:3000 with your browser to access the app.
All unit tests are located close to the source code in the __tests__
directory. This project uses Vitest for unit testing. You can run the tests with:
npm run test
This project uses Playwright for E2E testing. You can run the tests with:
npx playwright install # Only for the first time in a new environment
npm run test:e2e
This project is licensed under the MIT License.