Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fmanimashaun/artwork-listing-app
This project will be a group capstone project to create a single-page web application based on the Art Institute of Chicago's API. The application will be built with webpack 5 and Sass, and provide an intuitive user interface to view artworks from the Art Institute of Chicago. Additionally, the application will use Jest to test.
https://github.com/fmanimashaun/artwork-listing-app
api html5 json-api rest-api sass spa webpack5
Last synced: 13 days ago
JSON representation
This project will be a group capstone project to create a single-page web application based on the Art Institute of Chicago's API. The application will be built with webpack 5 and Sass, and provide an intuitive user interface to view artworks from the Art Institute of Chicago. Additionally, the application will use Jest to test.
- Host: GitHub
- URL: https://github.com/fmanimashaun/artwork-listing-app
- Owner: fmanimashaun
- License: mit
- Created: 2022-12-04T18:14:14.000Z (about 2 years ago)
- Default Branch: dev
- Last Pushed: 2023-03-13T15:14:10.000Z (almost 2 years ago)
- Last Synced: 2024-12-06T02:47:14.921Z (22 days ago)
- Topics: api, html5, json-api, rest-api, sass, spa, webpack5
- Language: JavaScript
- Homepage: https://fmanimashaun.github.io/artwork-listing-app
- Size: 10.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
![](https://img.shields.io/badge/fmanimashaun-green)
![](https://img.shields.io/badge/francis3400-blue)
![](https://img.shields.io/badge/gealsanchez-red)# Artwork Listing App (API-based webapp)
## 📗 Table of Contents
- [📖 Overview](#about-project)
- [Project Requirements](#project-requirements)
- [API](#api)
- [User Stories](#user-stories)
- [🛠 Built With](#built-with)
- [Tech Stack](#tech-stack)
- [Key Features](#key-features)
- [🚀 Live Demo](#live-demo)
- [💻 Getting Started](#getting-started)
- [Setup](#setup)
- [Prerequisites](#prerequisites)
- [Install](#install)
- [Run tests](#run-tests)
- [Deployment](#deployment)
- [👥 Authors](#authors)
- [🔭 Future Features](#future-features)
- [🤝 Contributing](#contributing)
- [⭐️ Show your support](#support)
- [🙏 Acknowledgements](#acknowledgements)
- [📝 License](#license)This project will be a group capstone project to create a single-page web application based on the Art Institute of Chicago's API. The application will be built with webpack 5 and Sass, and provide an intuitive user interface to view artworks from the Art Institute of Chicago. Additionally, the application will use Jest to test all JavaScript functions.
The project involves developing a web application from scratch. As part of this, the group will need to research and familiarize themselves with the Art Institute of Chicago's API, as well as webpack 5 and Sass. The group will then implement a functional design with an intuitive user interface, HTML formatting, and stylesheet creation. Furthermore, the project will incorporate testing with Jest.
By the end of the project, the team should have a completed web application that allows users to view artifacts from the Art Institute of Chicago, with the code tested using Jest.
For this project, we explore the use of [Art Institute of Chicago API](https://api.artic.edu/docs/) to build a web application that allows users to view a list of artworks and like them using [Involvement API](https://www.notion.so/869e60b5ad104603aa6db59e08150270). The API provides data about artworks and their authors.
For this particular project, we will use the following endpoints:
> https://api.artic.edu/api/v1/artworks?page=2&limit=100&fields=id,title,artist_display,date_display,main_reference_number,image_id- The following interfaces were built:
- The *home page*.
- The *comments popup*.
- The *reservations popup*
- the given [layout](https://github.com/microverseinc/curriculum-javascript/blob/main/group-capstone/buisness_requirements.md#description) was followed with additional personalization(colors, typographies, spacings, etc).
- Home page
- When the page loads, the webapp retrieves data from:
- The selected API and shows the list of items on screen.
- The Involvement API to show the item likes.
- Remember that your page should make only 2 requests:
- One to the base API.
- And **one** to the Involvement API.
- When the user clicks on the Like button of an item, the interaction is recorded in the Involvement API and the screen is updated.
- When the user clicks on the "Comments" button, the Comments popup appears.
- When the user clicks on the "Reservations" button, the Reservations popup appears (only for the groups of 3 students).
- Home page header and navigation similar to the given mockup.
- Home page footer similar to the given mockup.
- Comments popup
- When the popup loads, the webapp retrieves data from:
- The selected API and shows details about the selected item.
- The Involvement API to show the item comments.
- When the user clicks on the "Comment" button, the data is recorded in the Involvement API and the screen is updated.
- Reservations popup (only for the groups of 3 students)
- When the popup loads, the webapp retrieves data from:
- The selected API and shows details about the selected item.
- The Involvement API to show the item reservations.
- When the user clicks on the "Reserve" button, the data is recorded in the Involvement API and the screen is updated.
- We have counters in all the interfaces that show:
- The number of items (home).
- The number of comments (comments popup).
- The number of reservations (reservations popup) - only for the groups of 3 students.
- Each counter was implemented as a separate module.
- A counter function looks for specific DOM elements (e.g. for the comments counter it should look for comments) and make the counting based on what is actually displayed on the page.
- The counter function covers all the edge cases you can think about.- [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML)
- [JavaScript/ES6](https://262.ecma-international.org/6.0/)
- [webpack 5](https://webpack.js.org/)
- [npm](https://www.npmjs.com/)
- [Git](https://git-scm.com/)
- [GitHub](https://github.com)
- [Stylelinter](https://stylelint.io/)
- [ESLint](https://eslint.org/)
- [Webhint](https://webhint.io/)
- [Lighthouse](https://ethcar.github.io/lighthouse/)
- [SASS](https://sass-lang.com/)
- [API](https://api.artic.edu/docs/)- [x] Use ES6 modules, with import and export.
- [x] Use callbacks and promises.
- [x] Use Webpack to bundle JavaScript.
- [x] Write units tests for a JavaScript app.
- [x] Follow Gitflow.
- [x] Send and receive data from an API.
- [x] Use API documentation.
- [x] page counter.> [Live Demo Link](https://fmanimashaun.github.io/artwork-listing-app/)
> [Video Demo Link](#)
- [Optional] Install git bash to your machine to enable you to clone this repo.
- install Visual Studio to be able to host a local live version.
- Install a browser to view the local live version.To get a local copy up and running follow these simple example steps.
- Open your GitHub account the repository's [link](https://github.com/fmanimashaun/artwork-listing-app)
- Internet connection
- A github account- copy the repo's link and clone it by writing `git clone https://github.com/fmanimashaun/artwork-listing-app.git` on your git bash terminal.
- `npm install` to install the dependencies.- You can check for errors by running linter tests found in the github flows.
- run `npm run start` to run it locally.
👤 **Engr. Animashaun Fisayo**
- [GitHub](https://github.com/fmanimashaun)
- [Twitter](https://twitter.com/fmanimashaun)
- [LinkedIn](https://www.linkedin.com/in/fmanimashaun/)
- [Website](https://fmanimashaun.com)👤 **Gerson Sanchez**
- [GitHub](https://github.com/gealsanchez)
- [Twitter](https://twitter.com/gealsanchez)
- [LinkedIn](https://www.linkedin.com/in/gerson-sanchez-88309b57/)👤 **Francis Uche**
- [GitHub](https://github.com/francis3400)
- [Twitter](https://twitter.com/francisBlinkz)
- [LinkedIn](https://www.linkedin.com/in/francis-uche-888675213)Contributions, issues, and feature requests are welcome!
Feel free to check the [issues page](../../issues/).
Give a ⭐️ if you like this project!
This project is [MIT](./LICENSE) licensed.