Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finalized React Capstone Project for review #4

Merged
merged 65 commits into from
Jul 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
98c639a
Create react application.
ab-noori Jun 26, 2023
3fba35e
Create react application.
ab-noori Jun 26, 2023
f48eef7
Add project image.
ab-noori Jun 26, 2023
7e0dc3a
Update README.md to add project description.
ab-noori Jun 26, 2023
6e74584
Remove biolerplate data and add Logo icon.
ab-noori Jun 27, 2023
2dd1632
Install Sass and change the file extentions.
ab-noori Jun 27, 2023
d7b186d
Add linter files and configurations.
ab-noori Jun 27, 2023
6bde11e
Install redux, react-redux, reduxjs/toolkit, react-router-dom
ab-noori Jun 27, 2023
e27eb4c
Update README.md
ab-noori Jun 27, 2023
f84fd7d
Add the gh-pages configuration and deploy the project.
ab-noori Jun 27, 2023
82401d9
Merge branch 'setup' of https://github.com/ab-noori/Cryptopanel into …
ab-noori Jun 27, 2023
549e6bc
Update README.md file to tech stacks.
ab-noori Jun 27, 2023
aeb0d80
Merge branch 'dev' into setup
ab-noori Jun 27, 2023
56198d7
Merge pull request #1 from ab-noori/setup
ab-noori Jun 27, 2023
cee8a54
Modify the App.js to add routes.
ab-noori Jun 29, 2023
9c1201b
Modify the index.js to add router and store provider.
ab-noori Jun 29, 2023
4a35b44
Add redux store.
ab-noori Jun 29, 2023
6e991ed
Add currencySlicer to fetch trends and serched currencies.
ab-noori Jun 29, 2023
65f1662
Display the Trends and searched currencies in Homepage.
ab-noori Jun 29, 2023
e881e2f
Add Show pages to display the details of each currencies.
ab-noori Jun 29, 2023
77ca319
Add some configruration and installations.
ab-noori Jun 29, 2023
2bb71e4
Add details slicer to fetch detailed data and define some actions.
ab-noori Jun 29, 2023
c55a05b
Modify store to add detail reducer.
ab-noori Jun 29, 2023
3b97bf2
Install Millify to foramt the numbers.
ab-noori Jun 29, 2023
93e9d22
Update the app.jsx to add routes and clean the codebase.
ab-noori Jun 30, 2023
e9594b1
Update the slicer to fetch detailed data.
ab-noori Jun 30, 2023
05ca476
Update the slicer to fetch all currency data.
ab-noori Jun 30, 2023
bdaa68c
Update the Home page component to display the general currencies.
ab-noori Jun 30, 2023
b23d797
Update the Show page component to show the each currency details.
ab-noori Jun 30, 2023
5fd7a65
Add the installation and configurations.
ab-noori Jun 30, 2023
1fa8ea8
Add the Navbar to show the page titles.
ab-noori Jun 30, 2023
feabf27
Add the Navbar styles.
ab-noori Jun 30, 2023
1d1faf3
Add the DetailsView component.
ab-noori Jun 30, 2023
cca0ed3
Add styles for details components
ab-noori Jun 30, 2023
da1e1a6
Add the CurrencyList component to list all data
ab-noori Jun 30, 2023
a41357e
Add Styles for currency list.
ab-noori Jun 30, 2023
e554f2c
Add the Footer component.
ab-noori Jul 1, 2023
e4a1418
Add the style to Footer component.
ab-noori Jul 1, 2023
b48283f
Add the SearchBar Footer component for searching currencies..
ab-noori Jul 1, 2023
e610e40
Add the style to SearchBar component.
ab-noori Jul 1, 2023
a7f6a48
Add test for footer..
ab-noori Jul 1, 2023
85fb85b
Add test for Navbar.
ab-noori Jul 1, 2023
8c2eb2d
Add test for SearchBar.
ab-noori Jul 1, 2023
860866e
Add test for DetailsView.
ab-noori Jul 1, 2023
97fb5d8
Add test for CurrencyList.
ab-noori Jul 1, 2023
ead1ae9
Add the Project images.
ab-noori Jul 1, 2023
53c6a15
Add the snapshot tests.
ab-noori Jul 1, 2023
ad03c4d
Upadate the readme file to add the project images and acknowledgments.
ab-noori Jul 1, 2023
a5f4124
Modify the app.jsx to include footer components
ab-noori Jul 1, 2023
27d436d
Set the font famaily for the whole project.
ab-noori Jul 1, 2023
8fabc72
Add test for search component
ab-noori Jul 1, 2023
3cf855f
Modify the currencyList to separate the search component
ab-noori Jul 1, 2023
c757022
Modify the currency slice
ab-noori Jul 1, 2023
c0301d1
Give style to currency list and currency details.
ab-noori Jul 1, 2023
8d9050b
Modify the navbar conditions.
ab-noori Jul 1, 2023
2483b21
Modify the style for navabar
ab-noori Jul 1, 2023
6254dc2
Remove the liter errors.
ab-noori Jul 1, 2023
1923496
Remove Linter error.
ab-noori Jul 1, 2023
161541a
Merge pull request #2 from ab-noori/tutorial-follow-up
ab-noori Jul 1, 2023
c91f95b
Update README.md
ab-noori Jul 1, 2023
e8babed
Update README.md
ab-noori Jul 1, 2023
ff93fb2
Update README.md
ab-noori Jul 1, 2023
9d702a2
Merge pull request #3 from ab-noori/components
ab-noori Jul 1, 2023
9668633
Update README.md to add introduction video.
ab-noori Jul 1, 2023
0bec94e
Update README.md
ab-noori Jul 1, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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"]
}
35 changes: 35 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"env": {
"browser": true,
"es6": true,
"jest": true
},
"parser": "@babel/eslint-parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 2018,
"sourceType": "module"
},
"extends": ["airbnb", "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"
},
"overrides": [
{
// feel free to replace with your preferred file pattern - eg. 'src/**/*Slice.js' or 'redux/**/*Slice.js'
"files": ["src/**/*Slice.js"],
// avoid state param assignment
"rules": { "no-param-reassign": ["error", { "props": false }] }
}
],
"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@v3
- uses: actions/setup-node@v3
with:
node-version: "18.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 "**/*.{js,jsx}"
stylelint:
name: Stylelint
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "18.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@v3
- 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
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 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"]
}
66 changes: 33 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

</div>

<!-- Open pull request using the following structure
<!-- Open a pull request using the following structure

## Pronject Title: Branch title.............
## Project Title: Branch title.............

### 🌟Features:

Expand All @@ -23,13 +23,13 @@

-->

> # Template
> # Crypto Panel

| Desktop Veiw Representation|
| Desktop View Representation|
|---------------------------------------|
|<div align="center"><img src="./project-image.png" alt="screenshot" width="auto" height="auto"/></div>|
|<div align="center"><img src="./project-image.png" alt="screenshot" width="auto" height="auto"/></div>|
|<div align="center"><img src="./project-image.png" alt="screenshot" width="auto" height="auto"/></div>|
|<div align="center"><img src="./src/assets/project-image1.PNG" alt="screenshot" width="auto" height="auto"/></div>|
|<div align="center"><img src="./src/assets/project-image2.PNG" alt="screenshot" width="auto" height="auto"/></div>|
|<div align="center"><img src="./src/assets/mobile-shot1.PNG" alt="screenshot" width="auto" height="400"/><img src="./src/assets/mobile-shot2.PNG" alt="screenshot" width="auto" height="400"/></div>|

<!-- TABLE OF CONTENTS -->

Expand Down Expand Up @@ -57,20 +57,21 @@

<!-- PROJECT DESCRIPTION -->

# 📖 [Template] <a name="about-project"></a>
# 📖 [Crypto Panel] <a name="about-project"></a>

> **[Temaplate]** is a project template with ready README file for creating react applications.
> **[Cryptopanel]** is Cryptopanel is a single-page web app that is created using React and Redux and fetches data from CoinGecko API. The application allows users to get details of cryptocurrency information.

## 🛠 Built With <a name="built-with"></a>

### Tech Stack <a name="tech-stack"></a>
- <summary>Client</summary>
<ul>
<li><a href="https://reactjs.org/">HTML</a></li>
<li><a href="https://reactjs.org/">CSS</a></li>
<li><a href="https://reactjs.org/">JSX</a></li>
<li><a href="https://reactjs.org/">SCSS</a></li>
<li><a href="https://reactjs.org/">JavaScript</a></li>
<li><a href="https://reactjs.org/">ReactJS</a></li>
<li><a href="https://reactjs.org/">API</a></li>
<li><a href="https://reactjs.org/">React-Redux</a></li>
<li><a href="https://reactjs.org/">React-Toolkit</a></li>
<li><a href="https://reactjs.org/">Cryptocurrency API</a></li>
</ul>

### Key Features <a name="key-features"></a>
Expand All @@ -85,8 +86,8 @@

## 🚀 Live Demo <a name="live-demo"></a>

> - [Live Demo on Gh-pages](https://ab-noori.github.io/math-magicians/)
> - [Live Demo on Render](https://math-magicians-ab.onrender.com)
> - [Live Demo on Gh-pages](https://ab-noori.github.io/Cryptopanel/)
> - [Introduction to Project](https://www.loom.com/share/24b50649f3344d18a4a007d5715900e8?t=283&sid=a833953d-a480-4f39-981f-49f920cc9fa6)

<p align="right">(<a href="#readme-top">back to top</a>)</p>

Expand All @@ -99,7 +100,7 @@ To get a local copy up and running, follow these steps:
### Prerequisites

In order to run this project you need:
- A browser of you choice.
- A browser of your choice.
- A text editor of your choice.
- An installed node.js on your local system

Expand All @@ -110,19 +111,18 @@ Clone this repository to your desired folder:
- Use the following Commands:

cd your-desired-folder
git clone git@github.com:ab-noori/template.git
git clone git@github.com:ab-noori/Cryptopanel.git


### Install
- Install this project with:

npx create-react-app my-app
cd my-app
npx create-react-app .
npm start


### Usage
- Use following commands to run on your local system:
- Use the following commands to run the project on your local system:

npm run build
npm run deploy
Expand All @@ -137,18 +137,18 @@ Clone this repository to your desired folder:
npx stylelint "**/*.{css,scss}" --fix

### Deployment
- 1- install `'gh-pages'` with following command:
- 1- install _gh-pages_ with following command:

npm i -D gh-pages
npm i gh-pages

- 2- Add `'homepage'` to project's jason file:
- 2- Add _homepage_ to project's jason file:

"homepage": "https://ab-noori.github.io/repo-name",
"homepage": "https://ab-noori.github.io/Cryptopanel",

- 3- Add the following scripts to project's jason file:
- 3- Add the following scripts to the project's _package.jason_ file:

"predeploy": "npm run build",
"deploy": "gh-pages -d build "
"deploy": "gh-pages -d build ",

- 4- Finally run the following command:

Expand All @@ -164,21 +164,22 @@ Clone this repository to your desired folder:

- GitHub: [@ab-noori](https://github.com/ab-noori)
- Twitter: [@AbdulAliNoori4](https://twitter.com/AbdulAliNoori4)
- LinkedIn: [abdul-ali-noori](https://www.linkedin.com/in/abdul-ali-noori-384b85195/)
- LinkedIn: [abdulali-noori](https://www.linkedin.com/in/abdulali-noori)


## 🔭 Future Features <a name="future-features"></a>

- [ ] **[Add About page]**
- [ ] **[Add Contact page]**
- [ ] **[Giving funtionality to search input]**
- [ ] **[Creating more professional sidebar panel]**
- [ ] **[Using charts and graph to disply the currencies data]**

<p align="right">(<a href="#readme-top">back to top</a>)</p>

## 🤝 Contributing <a name="contributing"></a>

Contributions, issues, and feature requests are welcome!

Feel free to check the [issues page](https://github.com/ab-noori/.../issues).
Feel free to check the [issues page](https://github.com/ab-noori/Cryptopanel/issues).

<p align="right">(<a href="#readme-top">back to top</a>)</p>

Expand All @@ -192,8 +193,7 @@ Feel free to check the [issues page](https://github.com/ab-noori/.../issues).

## 🙏 Acknowledgments <a name="acknowledgements"></a>

I would like to thank Microverse and my coding partners. Also I want to give credit to [`Nerd's lesson`](https://www.youtube.com/@Nerdslesson)
YouTub Channel, it's [`react tutorial`](https://www.youtube.com/watch?v=cd3P3yXyx30) is really helpfull.
First, I would like to thank Microverse and my coding partners. Second, I want to give credit to [`Nerd's lesson`](https://www.youtube.com/@Nerdslesson) YouTub Channel, its [`react tutorial`](https://www.youtube.com/watch?v=cd3P3yXyx30) is really helpful, and third, I should give credit to `Nelson Sakwa`, I got some inspirations from his design on Behance.

<p align="right">(<a href="#readme-top">back to top</a>)</p>

Expand All @@ -206,7 +206,7 @@ YouTub Channel, it's [`react tutorial`](https://www.youtube.com/watch?v=cd3P3yXy

- **How to design the site?**

- Draw a mockup before start to code
- Draw a mockup before starting to code

<p align="right">(<a href="#readme-top">back to top</a>)</p>

Expand Down
Loading