├── Screenshot 2022-11-08 001503.png ├── readme ├── readme.txt ├── index.html ├── script.js └── style.css /Screenshot 2022-11-08 001503.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sudharsanan123/Movie-reviewing-web-app/HEAD/Screenshot 2022-11-08 001503.png -------------------------------------------------------------------------------- /readme: -------------------------------------------------------------------------------- 1 | @sudharsanan123 2 | This web page is build using on Html,Css,Javascript 3 | 4 | This show's about the movie and small discreption is added when hover the mouse over the movie 5 | 6 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | @sudharsanan123 2 | This web page is build using on Html,Css,Javascript 3 | 4 | This show's about the movie and small discreption is added when hover the mouse over the movie 5 | 6 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Movie App 8 | 9 | 10 |
11 |
12 | 13 |
14 |
15 | 16 |
17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /script.js: -------------------------------------------------------------------------------- 1 | const API_URL = 'https://api.themoviedb.org/3/discover/movie?sort_by=popularity.desc&api_key=3fd2be6f0c70a2a598f084ddfb75487c&page=1' 2 | const IMG_PATH = 'https://image.tmdb.org/t/p/w1280' 3 | const SEARCH_API = 'https://api.themoviedb.org/3/search/movie?api_key=3fd2be6f0c70a2a598f084ddfb75487c&query="' 4 | 5 | const main = document.getElementById('main') 6 | const form = document.getElementById('form') 7 | const search = document.getElementById('search') 8 | 9 | // Get initial movies 10 | getMovies(API_URL) 11 | 12 | async function getMovies(url) { 13 | const res = await fetch(url) 14 | const data = await res.json() 15 | 16 | showMovies(data.results) 17 | } 18 | 19 | function showMovies(movies) { 20 | main.innerHTML = '' 21 | 22 | movies.forEach((movie) => { 23 | const { title, poster_path, vote_average, overview } = movie 24 | 25 | const movieEl = document.createElement('div') 26 | movieEl.classList.add('movie') 27 | 28 | movieEl.innerHTML = ` 29 | ${title} 30 |
31 |

${title}

32 | ${vote_average} 33 |
34 |
35 |

Overview

36 | ${overview} 37 |
38 | ` 39 | main.appendChild(movieEl) 40 | }) 41 | } 42 | 43 | function getClassByRate(vote) { 44 | if(vote >= 8) { 45 | return 'green' 46 | } else if(vote >= 5) { 47 | return 'orange' 48 | } else { 49 | return 'red' 50 | } 51 | } 52 | 53 | form.addEventListener('submit', (e) => { 54 | e.preventDefault() 55 | 56 | const searchTerm = search.value 57 | 58 | if(searchTerm && searchTerm !== '') { 59 | getMovies(SEARCH_API + searchTerm) 60 | 61 | search.value = '' 62 | } else { 63 | window.location.reload() 64 | } 65 | }) -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;400&display=swap'); 2 | 3 | 4 | :root { 5 | --primary-color: #888ccb; 6 | --secondary-color: #868bc2; 7 | } 8 | 9 | 10 | * { 11 | box-sizing: border-box; 12 | } 13 | 14 | body { 15 | background-color: var(--primary-color); 16 | font-family: 'Poppins', sans-serif; 17 | margin: 0%; 18 | } 19 | 20 | header { 21 | padding: 1rem; 22 | display: flex; 23 | justify-content: flex-end; 24 | background-color: var(--secondary-color); 25 | } 26 | 27 | 28 | 29 | .search { 30 | background-color: transparent; 31 | border: 2px solid var(--primary-color); 32 | border-radius: 51px; 33 | font-family: inherit; 34 | font-size: 1rem; 35 | padding: 0.6rem 1rem; 36 | color: #fff; 37 | } 38 | 39 | .search::placeholder { 40 | color: #7378c5; 41 | } 42 | 43 | .search:focus { 44 | outline: none; 45 | background-color: var(--primary-color); 46 | } 47 | 48 | main { 49 | display: flex; 50 | flex-wrap: wrap; 51 | justify-content: center; 52 | } 53 | 54 | .movie { 55 | width: 300px; 56 | margin: 1rem; 57 | background-color: var(--secondary-color); 58 | box-shadow: 0 4px 5px rgba(0, 0, 0, 0.2); 59 | position: relative; 60 | overflow: hidden; 61 | border-radius: 3px; 62 | } 63 | 64 | .movie img { 65 | width: 100%; 66 | } 67 | 68 | .movie-info { 69 | color: #eee; 70 | display: flex; 71 | align-items: center; 72 | justify-content: space-between; 73 | padding: 0.5rem 1rem 1rem; 74 | letter-spacing: 0.5px; 75 | } 76 | 77 | .movie-info h3 { 78 | margin-top: 0; 79 | } 80 | 81 | .movie-info span { 82 | background-color: var(--primary-color); 83 | padding: 0.25rem 0.5rem; 84 | border-radius: 3px; 85 | font-weight: bold; 86 | } 87 | 88 | .movie-info span.green { 89 | color: lightgreen; 90 | } 91 | 92 | .movie-info span.orange { 93 | color: orange; 94 | } 95 | 96 | .movie-info span.red { 97 | color: red; 98 | } 99 | 100 | .overview { 101 | background-color: #fff; 102 | padding: 2rem; 103 | position: absolute; 104 | left: 0; 105 | bottom: 0; 106 | right: 0; 107 | max-height: 100%; 108 | transform: translateY(101%); 109 | overflow-y: auto; 110 | transition: transform 0.3s ease-in; 111 | } 112 | 113 | .movie:hover .overview { 114 | transform: translateY(0); 115 | } 116 | --------------------------------------------------------------------------------