https://github.com/sasmithak/rest-countries
Explore countries worldwide with a React app using the REST Countries API
https://github.com/sasmithak/rest-countries
reactjs redux-persist rest-api restcountries-api webapplication
Last synced: 4 months ago
JSON representation
Explore countries worldwide with a React app using the REST Countries API
- Host: GitHub
- URL: https://github.com/sasmithak/rest-countries
- Owner: sasmithaK
- Created: 2025-04-17T15:12:21.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2025-05-23T16:43:10.000Z (5 months ago)
- Last Synced: 2025-05-27T07:48:19.649Z (4 months ago)
- Topics: reactjs, redux-persist, rest-api, restcountries-api, webapplication
- Language: JavaScript
- Homepage: https://www.curiosityvoyage.me
- Size: 12.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Curiosity Voyage π - Explore Countries
Take a tour around the world. This React application lets you browse, search, filter, and view details such as country flag, population, languages used, currencies, capital, bordering countries and many more via the [REST Countries API](https://restcountries.com/).
---
## π Demo
> _Live demo:_ https://www.curiosityvoyage.me
---
## π Features
- **Browse** all countries with flags, names, regions, populations, capitals, languages and bordering countries
- **Search** countries by name
- **Filter** by region and by language
- **Detailed view** for each country's official name, currencies, subregion and timezone
- **Bookmark and View the most recently visited countries** within a user state
- **Responsive** UI for mobile and desktop
---## π Tech Stack
- **Frontβend**: React, React Router, React Hooks
- **Styling**: Bootstrap 5 + custom CSS
- **API client**: Fetch wrapper in `src/api/restCountries.js`
- **State management**: Redux
- **Bundler**: Create React App
- **Testing**: Jest & React Testing Library---
## π¨βπ» Getting Started
### Prerequisites
- **Node.js** v14+
- **npm** v6+ or **yarn**### Installation
```bash
# Clone the repository
git clone https://github.com/sasmithaK/REST-countries.git
cd REST-countries/frontend# Install dependencies
npm install
# or
yarn install
```### Script Description
```bash
npm run dev # Launch development server
npm run build # Build for production
npm run preview # Preview production build locally
```## π Project Structure
```bash
frontend/
βββ backend/ #user state management
βββ public/
βββ src/
β βββ api/ # API client
β βββ assests/ # Media files
β βββ components/ # UI components
β βββ hooks/ # Custom React hooks
β βββ styles/ # CSS styles
β βββ pages/ # Web pages
β βββ store/ # Redux state management
β βββ tests/ # Unit & integration tests
β βββ App.jsx # App entry component
β βββ main.jsx # Main entry file
βββ index.html
βββ package.json
```