Javascript Captsone: Film Guru

Overview

Javascript Captsone: Film Guru

This project is the second capstone project from Microverse. We created a webapp for movies enthusiast so they can search and find their favorite movies. The project uses OMDb API to get info about movies, and 'involvment' API to Send & get likes and comments.

Screenshots

  • Homepage

home-screeshot

  • Movie popup

movie-popup

Built With

  • HTML/CSS
  • JavaScript(ES6)
  • Webpack
  • OMDbAPI and Involvment API

Useful links

Getting Started

Prerequisites

You need to have a browser and this tools installed:

  • Git
  • NodeJS

Setup

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

$ git clone [email protected]:jssol/api-based-webapp.git
$ cd api-based-webapp
$ npm i
$ npm start

Usage

To build a version of the website under Development mode:

$ npm run dev

To build the production version:

$ npm run build

Run tests

To run tests in terminal use:

npm test

Deployment

To deploy the project to Githubpages run:

npm run deploy

Authors

๐Ÿ‘ค Jonathan Sivahera

๐Ÿ‘ค Ismail Courr

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

Show your support

Give a โญ๏ธ if you like this project!

Acknowledgments

This project uses the OMDb API

๐Ÿ“ License

This project is AGPL-3.0 licensed.

Comments
  • Change the style

    Change the style

    Hi, @jssol I did some changes to the style of the app:

    • Add logo to the header.
    • Organize the navbar.
    • Add the search feature into the header.

    You can pull the changes and add anything else you like to change ๐Ÿ˜„

    opened by Ismailco 2
  • Release/v 1.0

    Release/v 1.0

    Project requirements

    APIs

    • First, you need to find an API so you can base the development of the webapp around it. The API should allow you to:
      • Get a list of items with a unique item id (or generate the unique id).
      • For a given item, get detailed information about it.
    • Use our Involvement API to record the different user interactions (likes, comments).

    Interfaces

    • [x] Built these interfaces:

      • The home page.
      • The comments popup.
    • [x] When the page loads, the web app retrieves data from:

      • The selected API shows the list of items on the screen.
      • The Involvement API to show the item likes.
      • 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.
    • [x] Comments popup

      • When the popup loads, the web app retrieves data from:
      • The selected API 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.

    Counters

    Counters We have counters in all the interfaces that show:

    • The number of items (home).
    • The number of comments (comments popup).

    Useful links

    opened by jssol 1
  • Create function to count items on the page

    Create function to count items on the page

    • Create a counter function to count movies on the page.

    • Move the .overlay in HTML before header to fix navigation background issue.

    • Create a paragraph to print the movies count into HTML.

    • Note:

      • I used #fff for the navigation, you can choose any color and opacity you like.
      • The API returns 10 movies max.
      • There is a Linters Error because of involvement.api.js, we can fix it later.

    Live Demo

    opened by Ismailco 1
  • JS code review

    JS code review

    Amazing job on API hitting and presentation so far. The code is dry and the functionality is great. I really love it. Looking forward to seeing the complete version of the website.

    opened by Elerqsousy 1
  • Add the documentation of the project

    Add the documentation of the project

    • [x] Added title and description of the project
    • [x] Added a screenshot
    • [x] Added a list of technologies used
    • [x] Added authors
    • [x] Added instructions on how to use the project
    • [x] Added a summary video
    opened by jssol 0
  • Create test for countItems() function

    Create test for countItems() function

    The test's check if the Function :

    • Gives the same result as counting the DOM elements.
    • Gives the correct number of items on the page.
    • Gives the right number of items from the API (I used the 'Search' array to simulate the API response after fetching the data).
    opened by Ismailco 0
  • Get & display likes on the Homepage

    Get & display likes on the Homepage

    • Fetch like data from the involvement API
    • Create likeCount() function
    • Get movies like count from the API
    • Display the data on the home page

    ###Note: This task doesn't post likes when clicking on the like button, if you want to test the functionality you need to send data manually, you can use tools like Postman for this.

    Link Demo

    opened by Ismailco 0
  • Feature/comments popup

    Feature/comments popup

    Create a comments popup only with the top section (displaying details of the selected item)

    Closes #14

    :warning: Very important note :warning:

    I have encapsulated previous functionalities into functions, may you check them and incorporate them in your workflow because we need to organize our code well.

    Check out the live demo here

    opened by jssol 0
Owner
Jonathan Sivahera
Software developer, React fan. :computer: Anime/Manga lover :cupid: Stack: JavaScript, Ruby, Rails, React, Redux :nerd_face: Looking for my next job :office:
Jonathan Sivahera
This is my to-do list website built with html, css and JavaScript. In this project I used Webpack to bundle JavaScript and ES6 modules to write modular JavaScript.

To-Do-List App This is my to-do list website built with html, css and JavaScript. In this project I used Webpack to bundle JavaScript and ES6 modules

Samuel Mwape 18 Sep 20, 2022
Reference for How to Write an Open Source JavaScript Library - https://egghead.io/series/how-to-write-an-open-source-javascript-library

Reference for How to Write an Open Source JavaScript Library The purpose of this document is to serve as a reference for: How to Write an Open Source

Sarbbottam Bandyopadhyay 175 Dec 24, 2022
Open Source projects are a project to improve your JavaScript knowledge with JavaScript documentation, design patterns, books, playlists.

It is a project I am trying to list the repos that have received thousands of stars on Github and deemed useful by the JavaScript community. It's a gi

Cihat Salik 22 Aug 14, 2022
Javascript-testing-practical-approach-2021-course-v3 - Javascript Testing, a Practical Approach (v3)

Javascript Testing, a Practical Approach Description This is the reference repository with all the contents and the examples of the "Javascript Testin

Stefano Magni 2 Nov 14, 2022
Navigation-Menu-Javascript - A simple Navbar navigation using vanilla javascript, to change links to the active link when clicked.

Navigation-Menu-Javascript A simple Navbar navigation using vanilla javascript, to change links to the active link when clicked. Desktop view Mobile v

Ellis 2 Feb 16, 2021
Ping.js is a small and simple Javascript library for the browser to "ping" response times to web servers in Javascript

Ping.js Ping.js is a small and simple Javascript library for the browser to "ping" response times to web servers in Javascript! This is useful for whe

Alfred Gutierrez 353 Dec 27, 2022
MenuSlider-Javascript - How to create a menu slider with vanilla javascript

MenuSlider-Javascript How to create a menu slider with vanilla javascript Instal

Tarokh Mohammadi 1 Feb 8, 2022
Simple Library implemented using HTML, CSS and JavaScript. This is a simple implementation of JavaScript Modules of ES6.

Awesome-books A single page project with the porpuse of storing books' titles and authors. Built With CSS, HTML & Javascript. How to run in your local

Saadat Ali 7 Feb 21, 2022
This is a project that allows users to add/remove books from a list. we accomplish this by using a JavaScript object. Built with JavaScript, Html and CSS.

Awesome-book This is a project that allows users to add/remove book from a list. we accomplish this by usig javascript oject. Built With HTML5 CSS3 Ja

Juan Fco. Rosario Suli 6 May 27, 2022
JavaScript project for the Leaderboard list app, using Webpack and ES6 features, notably modules. this app consume the Leaderboard API using JavaScript async and await and add some styling.

Leaderboard Project JavaScript project for the Leaderboard list app, using Webpack and ES6 features, notably modules. this app consume the Leaderboard

bizimungu pascal 4 May 20, 2022
Custom alert box using javaScript and css. This plugin will provide the functionality to customize the default JavaScript alert box.

customAlertBoxPlugin Custom Alert Box Plugin Using JavaScript and CSS Author: Suraj Aswal Must Include CSS Code/Default Custom Alert Box Class: /* mus

Suraj Aswal 17 Sep 10, 2022
A Powerful and Elegant "alert" library for JavaScript that replaces that boring alert style of Javascript.

A Powerful , Elegant and fully customizable "alert" library using JavaScript that replaces that boring style of alert. Installation Place the below sc

Cosmogic 11 Aug 10, 2021
Device.js is a JavaScript library to detect device, viewport, and browser information using plain JavaScript.

Device.js Device.js is a JavaScript library to detect device, viewport, and browser information using plain JavaScript. Compatibility Works with all m

Emanuel R. Vรกsquez 5 Dec 16, 2022
It's an alert library build with JavaScript. You can replace your traditional JavaScript alert, confirm and toast with the library.

asteroid-alert It's an alert library build with JavaScript. You can replace your traditional JavaScript alert, confirm with the library. It has also e

Khan Md Sagar 4 Mar 12, 2021
A little JavaScript plugin to generate PDF, XLS, CSV and DOC from JavaScript Object or DOM element only from the frontend!

?? JavaScript Object to csv, xls, pdf, doc and DOM to html generator ?? A little JavaScript plugin to generate PDF, XLS, CSV and DOC from JavaScript O

null 61 Jan 7, 2023
Leader Board is a simple project based on JavaScript programing language. The purpose of this project is to work with APIs and ASYNC & AWAIT methods. I have used vanilla JavaScript with web pack to implement this project

Leader Board - JavaScript Project Table of contents Overview The challenge Screenshot Links Project Setup commands My process Built with What I learne

Mahdi Rezaei 7 Oct 21, 2022
This repo has demos, content and documentation of javascript concepts and syntax, in their simplest form. Contribute by sharing your understanding of javascript! Hacktoberfest Accepted!

javascript-documentation open-source hacktoberfest2022 Submit your PR to this javascript-documentation repo ?? ?? โ— This repo has some of my javascrip

Austin Lynch 7 Nov 2, 2022
๐Ÿ“ Algorithms and data structures implemented in JavaScript with explanations and links to further readings

?? Algorithms and data structures implemented in JavaScript with explanations and links to further readings

Oleksii Trekhleb 157.8k Dec 29, 2022
A book series on JavaScript. @YDKJS on twitter.

You Don't Know JS Yet (book series) - 2nd Edition This is a series of books diving deep into the core mechanisms of the JavaScript language. This is t

Kyle Simpson 162.7k Dec 29, 2022