Files

69 lines
1.4 KiB
Markdown

# 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
1. Clone the repository
```
git clone https://github.com/dadobos/worldcountries.git
```
2. Enter the project directory
```
cd worldcountries
```
3. Install dependencies
```
npm install
```
4. Start the dev server
```
npm run serve
```
5. Open http://localhost:8080/ in your browser
## Scripts
- `npm run serve` — start the dev server
- `npm run build` — build for production
- `npm test` — run unit tests
- `npm run coverage` — run tests and generate coverage report
- `npm 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 under `src/store`
If you add environment-specific endpoints or keys, use `.env` files and do not commit secrets.