main
worldcountries
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.
Features
- 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
Prerequisites
- Node.js (v14+ recommended)
- npm (v6+)
- Git
Quick start
- 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
Scripts
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)
API
This project uses the REST Countries API: https://restcountries.com
No API key is required.
Testing
Run unit tests with:
npm test
Check full coverage:
npm run coverage
Development notes
- 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.
Description
A small responsive app build with Vue, Vuex, Axios and Bulma. It calls the restcountries API, visualises the list of countries, and shows detailed information for each country in a modal.
888 KiB
Languages
Vue
72.6%
JavaScript
21.8%
HTML
3.9%
Shell
1.7%