Table of Contents
Nation Guide is an dynamic web application designed to provide users with a comprehensive database of country details. This project aimed to provide an efficient and user-friendly tool for users to quickly access information about countries. The app is fully responsive for mobile devices and optimized for a smooth user experience.
Experience the live website at Nation Guide Webapp.
- Explore Countries: Browse through a list of countries worldwide.
- Quick Search: Find countries by their names in a flash.
- Sort & Find: Easily organize countries by area or name.
- Detailed Information: Get detailed information about each country.
- Share Easily: Share country facts with friends.
- Day & Night Modes: Switch between dark and light themes.
- Mobile Friendly: Enjoy a smooth experience on your phone.
- Easy Navigation: Navigate between pages with ease.
- Real-time Updates: Get the latest country data from REST Countries API.
This app was developed using the latest industry-standards and best practices. The codebase is highly modularized and organized for easy maintenance and scalability.
Project Structure
With a focus on clean code and reusability, the project is structured as follows:
.
βββ src/
βββ assets
βββ components/
β βββ styles
β βββ Navbar.jsx
β βββ Footer.jsx
βββ hooks
βββ redux/
β βββ configureStore.js
β βββ slice.js
βββ lib/
β βββ utils.js
βββ pages/
β βββ Home/
β β βββ index.jsx
β β βββ Countries.jsx
β βββ Detail
β βββ NotFound.jsx
βββ services
βββ tests
βββ App.jsx
βββ index.jsx
βββ index.css
βββ propTypes.js
To get a local copy up and running, follow these steps.
In order to run this project you need Node.js installed on your machine.
Clone this repository to your desired folder:
cd my-project
git clone git@github.com:IndieCoderMM/nation-guide.git .
Install the dependencies with:
npm install
To run the project, execute the following command:
npm start
To run tests, run the following command:
npm run test
You can deploy this project using:
npm run build
This will create a production-ready build of your website in build/
folder, which you can use to deploy on a static site hosting platform.
I am always looking for ways to improve my project. If you have any suggestions or ideas, I would love to hear from you.
- Add desktop UI
- Include link to map
- Dark/Light mode
- User authentication
- Favorite countries
I welcome any and all contributions to my website! If you have an idea for a new feature or have found a bug, please open an issue or submit a pull request.
Feel free to check the issues page.
If you like this project, please consider giving it a β.
- Design Insipration - Frontend Mentor Challenge
- Rest Countries API - API to get information about all countries
- Undraw Illustrations - Open-source illustrations
This project is MIT licensed.