Skip to content

Commit

Permalink
Create react project
Browse files Browse the repository at this point in the history
  • Loading branch information
ZikaZaki committed Oct 20, 2022
1 parent e1645c2 commit 1268385
Show file tree
Hide file tree
Showing 17 changed files with 33,498 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"presets": [
"@babel/preset-react"
],
"plugins": ["@babel/plugin-syntax-jsx"]
}
27 changes: 27 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"env": {
"browser": true,
"es6": true,
"jest": true
},
"parser": "@babel/eslint-parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 2018,
"sourceType": "module"
},
"extends": ["airbnb", "eslint:recommended", "plugin:react/recommended", "plugin:react-hooks/recommended"],
"plugins": ["react"],
"rules": {
"react/jsx-filename-extension": ["warn", { "extensions": [".js", ".jsx"] }],
"react/react-in-jsx-scope": "off",
"import/no-unresolved": "off",
"no-shadow": "off"
},
"ignorePatterns": [
"dist/",
"build/"
]
}
45 changes: 45 additions & 0 deletions .github/workflows/linters.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Linters

on: pull_request

env:
FORCE_COLOR: 1

jobs:
eslint:
name: ESLint
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "12.x"
- name: Setup ESLint
run: |
npm install --save-dev eslint@7.x eslint-config-airbnb@18.x eslint-plugin-import@2.x eslint-plugin-jsx-a11y@6.x eslint-plugin-react@7.x eslint-plugin-react-hooks@4.x @babel/eslint-parser@7.x @babel/core@7.x @babel/plugin-syntax-jsx@7.x @babel/preset-env@7.x @babel/preset-react@7.x
[ -f .eslintrc.json ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/react-redux/.eslintrc.json
[ -f .babelrc ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/react-redux/.babelrc
- name: ESLint Report
run: npx eslint .
stylelint:
name: Stylelint
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "12.x"
- name: Setup Stylelint
run: |
npm install --save-dev stylelint@13.x stylelint-scss@3.x stylelint-config-standard@21.x stylelint-csstree-validator@1.x
[ -f .stylelintrc.json ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/react-redux/.stylelintrc.json
- name: Stylelint Report
run: npx stylelint "**/*.{css,scss}"
nodechecker:
name: node_modules checker
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- name: Check node_modules existence
run: |
if [ -d "node_modules/" ]; then echo -e "\e[1;31mThe node_modules/ folder was pushed to the repo. Please remove it from the GitHub repository and try again."; echo -e "\e[1;32mYou can set up a .gitignore file with this folder included on it to prevent this from happening in the future." && exit 1; fi
23 changes: 23 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
20 changes: 20 additions & 0 deletions .stylelintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"extends": ["stylelint-config-standard"],
"plugins": ["stylelint-scss", "stylelint-csstree-validator"],
"rules": {
"at-rule-no-unknown": [
true,
{
"ignoreAtRules": ["tailwind", "apply", "variants", "responsive", "screen"]
}
],
"scss/at-rule-no-unknown": [
true,
{
"ignoreAtRules": ["tailwind", "apply", "variants", "responsive", "screen"]
}
],
"csstree/validator": true
},
"ignoreFiles": ["build/**", "dist/**", "**/reset*.css", "**/bootstrap*.css", "**/*.js", "**/*.jsx"]
}
7 changes: 7 additions & 0 deletions MIT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## Copyright 2021, [ZikaZaki](https://github.com/ZikaZaki)

Permission is hereby granted, free of charge, to any person obtaining a copy of this **Countries-Info** web app and associated documentation files, to deal in the **Countries-Info** web app without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the **Countries-Info** web app, and to permit persons to whom the **Countries-Info** web app is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the **Countries-Info** web app.

THE **Countries-Info** WEB APP IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE **Countries-Info** WEB APP OR THE USE OR OTHER DEALINGS IN THE **Countries-Info** WEB APP.
97 changes: 97 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
![](https://img.shields.io/badge/Microverse-blueviolet)

# Countries-Info

> This web application is built upon real live data from the **REST Countries API**. The main purpose is to build a web application that provides all sorts of useful information about every country. It includes data from ISO 3166 (countries and states/subdivisions ), ISO 4217 (currency), and E.164 (phone numbers). and scientific space travel services. The application will give users to an overview of any country they're willing to visit.
## Built With ⚙️

- **Major languages**: HTML, CSS, & JavaScript.
- **Frameworks**: React & Redux.
- **Linters**: Lighthouse, Webhint, Stylelint & ESLint.
- **Technologies used**: NPM, Webpack, & Jest Library.
- **Tools**: Git, Gitflow, GitHub, Netlify, VS Code, & Chrome Browser.

## Live Demo (Not Yet) 🚀

[![Netlify Status](https://api.netlify.com/api/v1/badges/68ea255b-ae38-4005-968b-6fbd0a8d676b/deploy-status)](#)

[Live Demo Link](#)

## Getting Started

To get a local copy up and running follow these simple example steps.

### Prerequisites

- [x] Basic Knowledge of **HTML**, **CSS**, & **JavaScript**.
- [x] Basic knowledge of **React** fundamentals.
- [x] Basic knowledge of **Redux** fundamentals.
- [x] Basic knowledge of **ES6** syntax.
- [x] Basic knowledge of **Git** & **GitHub**.
- [x] Basic knowledge of **Linters**.
- [x] Basic knowledge of **Webpack**.
- [x] Basic knowledge of **Jest** unit-testing library.
- [x] Basic knowledge of **VS Code** or any other code-editors.

### Setup

- Create a new **Microverse** folder and move into it.
- Open the **Command Prompt (CMD)** in the current directory (Microverse Folder).
- Run the following command:

```
$ git clone https://github.com/ZikaZaki/travelers-hub.git
```

- Once finished you should see a new folder called **countries-info** folder in your current directory.
- Start customizing the project so it fits your personal preferences and needs.
- Enjoy your new professional **Countries-Info** application!

### Install Dependencies

To check for linters, use the files provided by [Microverse](https://github.com/microverseinc/linters-config/tree/master/react-redux). A GitHub action is also set to run during pull request. Run the following command to install dependencies:

```bash
$ npm install
```

### Run tests

We used the **Jest & React-testing** libraries for testing the project.

```
$ npm run test
```

## Authors

👤 **Zakariya Al-Khamisi ([ZikaZaki](https://github.com/ZikaZaki))**

- GitHub: [ZikaZaki](https://github.com/ZikaZaki)
- Twitter: [Zakariya Al-Khamisi](https://twitter.com/ZakariyaKhamisi)
- LinkedIn: [Zakariya Al-Khamisi](https://www.linkedin.com/in/zakariyaalkhamisisap/)

## Show your support

Give a ⭐️ if you like this project!

## 🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the [issues page](../../issues/).

## Acknowledgments

- [Microverse](https://www.microverse.org/)
- Code Reviewers & Coding Partners
- Hat tip to anyone whose code was used
- Inspiration
- etc

## 📝 License

This project is [MIT](./LICENSE) licensed.

_NOTE: we recommend using the [MIT license](https://choosealicense.com/licenses/mit/) - you can set it up quickly by [using templates available on GitHub](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository). You can also use [any other license](https://choosealicense.com/licenses/) if you wish._
Loading

0 comments on commit 1268385

Please sign in to comment.