69 lines
1.4 KiB
Markdown
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.
|