A small responsive Vue app that lists countries and shows details in a modal. Built with Vue, Vuex, Axios and Bulma. It consumes the REST Countries API.
- Responsive UI with Bulma
- Country list with basic info
- Country details shown in a modal
- Vuex for state management
- Axios for API requests
- Unit tests and coverage reporting
- Node.js (v14+ recommended)
- npm (v6+)
- Git
- Clone the repository
git clone https://github.com/dadobos/worldcountries.git - Enter the project directory
cd worldcountries - Install dependencies
npm install - Start the dev server
npm run serve - Open http://localhost:8080/ in your browser
npm run serve— start the dev servernpm run build— build for productionnpm test— run unit testsnpm run coverage— run tests and generate coverage reportnpm run lint— run linting (if configured)
This project uses the REST Countries API: https://restcountries.com
No API key is required.
Run unit tests with:
npm test
Check full coverage:
npm run coverage
- Main frameworks: Vue + Vuex
- HTTP client: Axios
- Styling: Bulma
- Components are organized under
src/components, store undersrc/store
If you add environment-specific endpoints or keys, use .env files and do not commit secrets.