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

JavaScript capstone project - Your API-based webapp #46

Merged
merged 106 commits into from
Jul 29, 2022
Merged
Show file tree
Hide file tree
Changes from 104 commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
b56058f
Linters and Readme update
for-ashraf Jul 25, 2022
f8522a9
Webpack installation
for-ashraf Jul 25, 2022
5012392
Output Management and Jest updated
for-ashraf Jul 25, 2022
e32d8a8
Add nav bar to header
AbrahaKahsay Jul 25, 2022
4a4f8fb
Add style to header
AbrahaKahsay Jul 25, 2022
c8aeefe
Add and style footer
AbrahaKahsay Jul 25, 2022
88b4d2e
Add and style footer
AbrahaKahsay Jul 25, 2022
4f603ee
Fix linter errors
AbrahaKahsay Jul 25, 2022
08f0f2e
Add logo image to js
AbrahaKahsay Jul 25, 2022
d071587
Fix linter errors
AbrahaKahsay Jul 26, 2022
cbd3ec3
Fix linter errors
AbrahaKahsay Jul 26, 2022
ee536cf
Fix linter errors
AbrahaKahsay Jul 26, 2022
a12823b
Fix linter errors
AbrahaKahsay Jul 26, 2022
f0b09d6
Update index.html
for-ashraf Jul 26, 2022
565cd4a
Logo Changed
for-ashraf Jul 26, 2022
4d04fc5
Update webpackconfig file
AbrahaKahsay Jul 26, 2022
c8d9f66
Update webpackconfig file
AbrahaKahsay Jul 26, 2022
4f369c4
Update webpackconfig file
AbrahaKahsay Jul 26, 2022
3b46c37
remove image from html and vreate it dynamically
AbrahaKahsay Jul 26, 2022
db178ad
Fix linter errors
AbrahaKahsay Jul 26, 2022
fa8bac4
Merge pull request #22 from for-ashraf/header-footer-layout
AbrahaKahsay Jul 26, 2022
e1d84ad
JS files added for functionality
for-ashraf Jul 26, 2022
df20ada
display of API images
for-ashraf Jul 26, 2022
19f39b2
Display data from API
for-ashraf Jul 26, 2022
82b3c23
Display movie Data
lucabenaventew Jul 26, 2022
051f4e0
Fetch API Data
lucabenaventew Jul 26, 2022
f09cd89
Fix linter errors
lucabenaventew Jul 26, 2022
b80370d
Merge pull request #23 from for-ashraf/15-4pt-display-list-of-items-o…
lucabenaventew Jul 26, 2022
1f115b9
files updated
for-ashraf Jul 27, 2022
7e81690
Update
for-ashraf Jul 27, 2022
860471c
Modal Finalized
for-ashraf Jul 27, 2022
95f7232
Linter Errors updated
for-ashraf Jul 27, 2022
0cfc2ee
Update commentsController.js
for-ashraf Jul 27, 2022
2b26776
Update APICall.js
for-ashraf Jul 27, 2022
cbc9a43
Modal Updated
for-ashraf Jul 27, 2022
7aa17a1
Functional Unit
for-ashraf Jul 27, 2022
5e99c99
removed linter errors
for-ashraf Jul 27, 2022
ee94054
Update main.js
for-ashraf Jul 27, 2022
5b1a746
Update .eslintrc.json
for-ashraf Jul 27, 2022
3a4a21d
update errors
for-ashraf Jul 27, 2022
d403654
linter errors
for-ashraf Jul 27, 2022
8cdc053
Update displaycontroller.js
for-ashraf Jul 27, 2022
fec0b1a
Update commentsController.js
for-ashraf Jul 27, 2022
f6df46b
Linter errors
for-ashraf Jul 27, 2022
8e30218
Try to remove linter
for-ashraf Jul 27, 2022
864e895
Removed Linter Errors
for-ashraf Jul 27, 2022
1c0cb52
Fix import issues
lucabenaventew Jul 27, 2022
0346434
Fix import issues
lucabenaventew Jul 27, 2022
407add6
Merge pull request #25 from for-ashraf/8-4pt-create-feature-add-new-c…
for-ashraf Jul 27, 2022
969dc9c
files updated
for-ashraf Jul 27, 2022
f18d2dc
Add Display and Like controller
lucabenaventew Jul 27, 2022
a6987c0
Add Display and Like controller
lucabenaventew Jul 27, 2022
340aeb7
Merge pull request #26 from for-ashraf/9-3pt-create-feature-add-new-l…
lucabenaventew Jul 27, 2022
4248a49
Update Files
lucabenaventew Jul 27, 2022
6f85bbb
Merge pull request #27 from for-ashraf/12-4pt-display-number-of-likes…
lucabenaventew Jul 27, 2022
4e84bb3
Update Item Counter
lucabenaventew Jul 27, 2022
7afef3d
Merge pull request #28 from for-ashraf/6-3pt-add-all-items-counter-on…
lucabenaventew Jul 27, 2022
289d427
Update likescontroller.js
for-ashraf Jul 27, 2022
44b9e7d
Fuctionality added
for-ashraf Jul 27, 2022
c7acb25
Update displaycontroller.js
for-ashraf Jul 27, 2022
5d81c19
Tests Added
for-ashraf Jul 28, 2022
09a34a3
linter errors
for-ashraf Jul 28, 2022
739675f
Fix linter error
AbrahaKahsay Jul 28, 2022
3f2b6a2
Merge pull request #31 from for-ashraf/2-3pt-add-tests-for-comments-c…
for-ashraf Jul 28, 2022
0d02b11
Merge pull request #30 from for-ashraf/5-3pt-add-comments-counter-stu…
for-ashraf Jul 28, 2022
7f87020
Functionality Added
for-ashraf Jul 28, 2022
1508c11
Update showcount.test.js
for-ashraf Jul 28, 2022
dfa1f8f
Merge pull request #29 from for-ashraf/11-3pt-display-comments-for-a-…
for-ashraf Jul 28, 2022
5ff7544
Add Show Count Test
lucabenaventew Jul 28, 2022
bc63aa9
Update Dist Folder
lucabenaventew Jul 28, 2022
62d85c7
Merge pull request #33 from for-ashraf/3-3pt-add-tests-for-items-coun…
lucabenaventew Jul 28, 2022
02abfb7
Update index.html
for-ashraf Jul 28, 2022
9f2684e
setup webpack and jest
AbrahaKahsay Jul 28, 2022
8c8b1d7
Create footer
AbrahaKahsay Jul 28, 2022
eeac6ab
Choose images, text, icons, fonts.
AbrahaKahsay Jul 28, 2022
5d1c6e3
Add header and style
AbrahaKahsay Jul 28, 2022
42fc49f
FInd an external api for implementation
AbrahaKahsay Jul 28, 2022
77b8850
Merge pull request #37 from for-ashraf/19-1pt-choose-assets-group-task
AbrahaKahsay Jul 28, 2022
33f5fc4
Merge pull request #36 from for-ashraf/16-05pt-add-footer-group-task
AbrahaKahsay Jul 28, 2022
4ab8e27
Merge branch 'development' into 18-05pt-set-up-the-project-with-webpa…
AbrahaKahsay Jul 28, 2022
c5abbc8
Merge pull request #35 from for-ashraf/18-05pt-set-up-the-project-wit…
AbrahaKahsay Jul 28, 2022
81e96cf
Add reservation controller
AbrahaKahsay Jul 28, 2022
3cac73c
Merge branch 'development' into 20-05pt-find-external-api-group-task
AbrahaKahsay Jul 28, 2022
7b71251
Merge pull request #39 from for-ashraf/20-05pt-find-external-api-grou…
AbrahaKahsay Jul 28, 2022
5c202a1
Merge branch 'development' into 17-05pt-add-header-group-task
AbrahaKahsay Jul 28, 2022
909df25
Fix linter errors
AbrahaKahsay Jul 28, 2022
58c5064
Merge pull request #38 from for-ashraf/17-05pt-add-header-group-task
AbrahaKahsay Jul 28, 2022
1c5c7b5
Fix linter errors
AbrahaKahsay Jul 28, 2022
e88d247
Merge branch 'development' into 13-4pt-display-reservations-pop-up-wi…
AbrahaKahsay Jul 28, 2022
ea283de
Merge pull request #40 from for-ashraf/13-4pt-display-reservations-po…
AbrahaKahsay Jul 28, 2022
5301746
Update reservation controller
AbrahaKahsay Jul 28, 2022
bd45430
Merge pull request #41 from for-ashraf/10-3pt-display-reservations-fo…
AbrahaKahsay Jul 28, 2022
273360c
Update reservation controller
AbrahaKahsay Jul 28, 2022
69c3000
Fix linter errors
AbrahaKahsay Jul 28, 2022
a955c45
Merge pull request #42 from for-ashraf/7-4pt-create-feature-add-new-r…
AbrahaKahsay Jul 28, 2022
a34f97f
Add count reservations functionality
AbrahaKahsay Jul 28, 2022
30ad46c
Fix linter errors
AbrahaKahsay Jul 28, 2022
3bd4703
Merge pull request #43 from for-ashraf/4-3pt-add-reservations-counter…
AbrahaKahsay Jul 28, 2022
832d5ad
UpdateTests
for-ashraf Jul 29, 2022
e6f85d7
Update
for-ashraf Jul 29, 2022
bb3a66b
Test Finalized
for-ashraf Jul 29, 2022
474d5f0
Loom Video Recorded
for-ashraf Jul 29, 2022
ff58f0c
Merge pull request #45 from for-ashraf/1-3pt-add-tests-for-reservatio…
AbrahaKahsay Jul 29, 2022
135b307
Update README.md
for-ashraf Jul 29, 2022
aa84240
Update
for-ashraf Jul 29, 2022
8b56bc7
Update README.md
for-ashraf Jul 29, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
25 changes: 25 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"env": {
"browser": true,
"es6": true,
"jest": true
},
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"extends": ["airbnb-base"],
"rules": {
"no-shadow": "off",
"no-param-reassign": "off",
"eol-last": "off",
"import/extensions": [ 1, {
"js": "always", "json": "always"
}]
},
"ignorePatterns": [
"dist/",
"build/"
]
}
70 changes: 70 additions & 0 deletions .github/workflows/linters.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Linters

on: pull_request

env:
FORCE_COLOR: 1

jobs:
lighthouse:
name: Lighthouse
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "12.x"
- name: Setup Lighthouse
run: npm install -g @lhci/cli@0.7.x
- name: Lighthouse Report
run: lhci autorun --upload.target=temporary-public-storage --collect.staticDistDir=.
webhint:
name: Webhint
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "12.x"
- name: Setup Webhint
run: |
npm install --save-dev hint@7.x
[ -f .hintrc ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/html-css-js/.hintrc
- name: Webhint Report
run: npx hint .
stylelint:
name: Stylelint
runs-on: ubuntu-18.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/html-css-js/.stylelintrc.json
- name: Stylelint Report
run: npx stylelint "**/*.{css,scss}"
eslint:
name: ESLint
runs-on: ubuntu-18.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-base@14.x eslint-plugin-import@2.x babel-eslint@10.x
[ -f .eslintrc.json ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/html-css-js/.eslintrc.json
- name: ESLint Report
run: npx eslint .
nodechecker:
name: node_modules checker
runs-on: ubuntu-18.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
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ typings/

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
Expand Down
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"]
}
68 changes: 64 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,65 @@
# Capstone-Project-2---API-based-webapp
This repository is about building a web application based on an external API. We will select an API that provides data about a topic that we like and then build the webapp around it. The webapp will have 2 or 3 user interfaces. A Home Page, a popup window with more data and a reservation window.
# Capstone - Project-2 --- API Based Webapp

# Github Toke
This token will be used to get GitHub API instead of password: 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
> This is a group project of three people <a href="https://github.com/for-ashraf">Muhammad Ashraf</a>, <a href="https://github.com/AbrahaKahsay">Abraha</a> and <a href="https://github.com/lucabenaventew">Luca</a>.

> This project is about about building your own web application based on an external API. We will select an API that provides data about a topic that we liked and then build the webapp around it.

## Built With

- HTML
- CSS
- JavaScript
- webpack
- Linters
- API Consumption
- Kanban Board

## Getting Started

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

- Run "npm start" command at terminal to browse the page.
## Loom Video Link for a brief intro of the app

- https://www.loom.com/share/873c948d2210470780a12d503a22e857

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • In the video presentation, Please show up all the members and talk about the project.

### Prerequisites

- Web Browser to browse and following tools to debug and make changes (if any):
IDE eg (Atom/Visual studio code)
Set-up linter(HTML and CSS)
webpack

## Live Demo ##

<a href="https://for-ashraf.github.io/Capstone-Project-2---API-based-webapp/dist/index.html"> Click here for live demo of the webpage</a>

### Setup

- Clone the github repository and set up linters and webpack

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • I would also recommend writing the proper steps to clone and run the project locally.

HInt:

$ git clone yourrepo.git
$ cd yourrepo
$ npm i
$ npm start

$ npm test  # for testing

## Authors

👤<a href="https://github.com/for-ashraf">**Muhammad Ashraf**</a>, <a href="https://github.com/AbrahaKahsay">Abraha Kahsay</a> and <a href="https://github.com/lucabenaventew">Luca Benavente</a>


## 🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the <a href="https://github.com/for-ashraf/Capstone-Project-2---API-based-webapp/issues">issues page</a>.

## Show your support

Give a ⭐️ if you like this project!

## Acknowledgments

- Hat tip to anyone whose code was used
- Inspiration
- code reviewers, morning session and standup team
- etc

## 📝 License

This project is [MIT](./MIT.md) licensed.
Binary file added Task Overview.xlsx
Binary file not shown.
3 changes: 3 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
presets: [['@babel/preset-env', { targets: { node: 'current' } }]],
};
91 changes: 91 additions & 0 deletions dist/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/all.min.css"
integrity="sha512-YWzhKL2whUzgiheMoBFwW8CKV4qpHQAEuvilg9FAn5VJUDwKZZxkJNuGM4XkWuk94WCrrwslk8yWNGmY1EduTA=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous" />
<title>Capstone-Project---API Based Webapp</title>
<script defer src="runtime.js"></script><script defer src="main.js"></script></head>

<body class="container">
<header>
<nav class="navbar navbar-expand-lg navbar-light bg-light mx-auto">
<a class="navbar-brand" href="#">Logo</a>
<span id="totalShows"><i class="fas fa-film"></i>&nbsp;<b id="totalShowsCount"> 0 </b> Shows</span>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Movies</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact</a>
</li>
</ul>
</div>
</nav>
</header>

<!-- Comments Modal -->
<div class="modal fade" id="commentsPage" tabindex="-1" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button
type="button"
class="btn-close"
data-bs-dismiss="modal"
aria-label="Close"
></button>
</div>
<div class="modal-body"></div>
</div>
</div>
</div>

<!-- Reservation Modal -->
<div class="modal fade" id="reservationPage" tabindex="-1" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button
type="button"
class="btn-close"
data-bs-dismiss="modal"
aria-label="Close"
></button>
</div>
<div class="modal-body"></div>
</div>
</div>
</div>

<main>
<div class="row" id="cardHolder"></div>
</main>

<footer>
<div class="d-flex justify-content-between py-4 my-4 border-top">
<p class="mx-4">&copy; Created by Microverse under CC License</p>
</div>
</footer>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
crossorigin="anonymous"></script>
</body>

</html>