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
b!B~?t+WWKS5u5)CcMJGaRz{_UZlwPKNp@r}
literal 0
HcmV?d00001
diff --git a/MovieSearch/927tanmay/public/manifest.json b/MovieSearch/927tanmay/public/manifest.json
new file mode 100644
index 000000000..080d6c77a
--- /dev/null
+++ b/MovieSearch/927tanmay/public/manifest.json
@@ -0,0 +1,25 @@
+{
+ "short_name": "React App",
+ "name": "Create React App Sample",
+ "icons": [
+ {
+ "src": "favicon.ico",
+ "sizes": "64x64 32x32 24x24 16x16",
+ "type": "image/x-icon"
+ },
+ {
+ "src": "logo192.png",
+ "type": "image/png",
+ "sizes": "192x192"
+ },
+ {
+ "src": "logo512.png",
+ "type": "image/png",
+ "sizes": "512x512"
+ }
+ ],
+ "start_url": ".",
+ "display": "standalone",
+ "theme_color": "#000000",
+ "background_color": "#ffffff"
+}
diff --git a/MovieSearch/927tanmay/public/robots.txt b/MovieSearch/927tanmay/public/robots.txt
new file mode 100644
index 000000000..01b0f9a10
--- /dev/null
+++ b/MovieSearch/927tanmay/public/robots.txt
@@ -0,0 +1,2 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
diff --git a/MovieSearch/927tanmay/src/ApiKey.js b/MovieSearch/927tanmay/src/ApiKey.js
new file mode 100644
index 000000000..6f7772db1
--- /dev/null
+++ b/MovieSearch/927tanmay/src/ApiKey.js
@@ -0,0 +1,3 @@
+module.exports{
+ Api_Url: 'http://www.omdbapi.com/?i=tt3896198&apikey=35069641'
+}
\ No newline at end of file
diff --git a/MovieSearch/927tanmay/src/App.css b/MovieSearch/927tanmay/src/App.css
new file mode 100644
index 000000000..cb0f74ad0
--- /dev/null
+++ b/MovieSearch/927tanmay/src/App.css
@@ -0,0 +1,23 @@
+#movies img,
+#movie img {
+ width: 100%;
+}
+.brand-text {
+ font-size: 2rem;
+}
+#react-logo {
+ color: #00d8ff;
+}
+#imdb-logo {
+ color: #f5de50;
+}
+@media (min-width: 960px) {
+ #movies .col-md-3 .well {
+ height: 390px;
+ }
+
+ #movies .col-md-3 img {
+ height: 240px;
+ }
+}
+
diff --git a/MovieSearch/927tanmay/src/App.js b/MovieSearch/927tanmay/src/App.js
new file mode 100644
index 000000000..b50d0d5b4
--- /dev/null
+++ b/MovieSearch/927tanmay/src/App.js
@@ -0,0 +1,22 @@
+import Main from './components/Main';
+import {connect} from 'react-redux';
+import { bindActionCreators } from 'redux';
+import * as actions from './redux/action';
+import {withRouter} from 'react-router';
+
+function mapStateToProps(state){
+ return{
+ text:state.movies.text,
+ loading:state.movies.loading,
+ movies:state.movies.movies,
+ movie:state.movies.movie
+ }
+}
+
+function mapDispatchToProps(dispatch){
+ return bindActionCreators(actions,dispatch);
+}
+
+const App = withRouter(connect(mapStateToProps,mapDispatchToProps)(Main));
+
+export default App;
diff --git a/MovieSearch/927tanmay/src/App.test.js b/MovieSearch/927tanmay/src/App.test.js
new file mode 100644
index 000000000..a754b201b
--- /dev/null
+++ b/MovieSearch/927tanmay/src/App.test.js
@@ -0,0 +1,9 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import App from './App';
+
+it('renders without crashing', () => {
+ const div = document.createElement('div');
+ ReactDOM.render(, div);
+ ReactDOM.unmountComponentAtNode(div);
+});
diff --git a/MovieSearch/927tanmay/src/components/Footer.js b/MovieSearch/927tanmay/src/components/Footer.js
new file mode 100644
index 000000000..24032bcb6
--- /dev/null
+++ b/MovieSearch/927tanmay/src/components/Footer.js
@@ -0,0 +1,38 @@
+import React,{Component} from 'react';
+
+class Footer extends Component{
+ render(){
+ return (
+
+
+
+
+
+ Developed By:
+
+ Tanmay Sharma
+
+ , Using
React JS & Redux JS
+ integrated with external movies data API
+
+ OMDB
+
+
+
+
+
+
+
+
+
+ );
+
+ }
+
+}
+
+export default Footer;
\ No newline at end of file
diff --git a/MovieSearch/927tanmay/src/components/Main.js b/MovieSearch/927tanmay/src/components/Main.js
new file mode 100644
index 000000000..849cbdaba
--- /dev/null
+++ b/MovieSearch/927tanmay/src/components/Main.js
@@ -0,0 +1,36 @@
+import React,{Component} from 'react';
+import Navbar from './Navbar';
+import Landing from './landing';
+import Footer from './Footer';
+import {Route} from 'react-router-dom';
+import Single from './singlemovie';
+
+class Main extends Component{
+ render(){
+ return(
+
+
+
+
(
+
+
+
+ )}/>
+
+ (
+
+
+
+
+ )}/>
+
+
+
+
+
+
+ )
+ }
+}
+
+export default Main;
\ No newline at end of file
diff --git a/MovieSearch/927tanmay/src/components/MovieCard.js b/MovieSearch/927tanmay/src/components/MovieCard.js
new file mode 100644
index 000000000..7508b6a86
--- /dev/null
+++ b/MovieSearch/927tanmay/src/components/MovieCard.js
@@ -0,0 +1,26 @@
+ import React, { Component } from 'react'
+ import {Link} from 'react-router-dom';
+
+export class MovieCard extends Component {
+ render() {
+ const {movie}=this.props;
+ return (
+
+
+
+

+
+ {movie.Title} - {movie.Year}
+
+
+ Movie Details
+
+
+
+
+ )
+ }
+}
+
+
+export default MovieCard;
diff --git a/MovieSearch/927tanmay/src/components/MoviesContainer.js b/MovieSearch/927tanmay/src/components/MoviesContainer.js
new file mode 100644
index 000000000..3e5e2280b
--- /dev/null
+++ b/MovieSearch/927tanmay/src/components/MoviesContainer.js
@@ -0,0 +1,30 @@
+import React, { Component } from 'react';
+import MovieCard from './MovieCard';
+export class MoviesContainer extends Component {
+ constructor(props)
+ {
+ super(props);
+ this.state={
+ content: ""
+ }
+ }
+ componentDidMount()
+ {
+ const {movies} =this.props;
+ this.setState({content : movies.Response==='True'?movies.Search.map((movie,index)=>
+ ): null});
+ }
+ componentDidUpdate()
+ {
+ if(this.props.movies.Response==="False") window.alert("No such movie exists");
+ }
+ render() {
+ return (
+
+ {this.state.content}
+
+ )
+ }
+}
+
+export default MoviesContainer;
diff --git a/MovieSearch/927tanmay/src/components/Navbar.js b/MovieSearch/927tanmay/src/components/Navbar.js
new file mode 100644
index 000000000..6d5a63e58
--- /dev/null
+++ b/MovieSearch/927tanmay/src/components/Navbar.js
@@ -0,0 +1,40 @@
+
+import React,{Component} from 'react';
+import {Link} from 'react-router-dom';
+
+class Navbar extends Component{
+ render(){
+ return (
+
+
+
+
+
+
+
+
+
+
+ );
+
+ }
+
+}
+
+export default Navbar;
\ No newline at end of file
diff --git a/MovieSearch/927tanmay/src/components/landing.js b/MovieSearch/927tanmay/src/components/landing.js
new file mode 100644
index 000000000..d028927c1
--- /dev/null
+++ b/MovieSearch/927tanmay/src/components/landing.js
@@ -0,0 +1,19 @@
+import React,{Component} from 'react';
+import SearchBar from './searchbar';
+import MoviesContainer from './MoviesContainer';
+import Spinner from './spinner';
+class Landing extends Component{
+ render(){
+ const {loading} = this.props;
+ console.log(loading);
+ return(
+
+
+
+ {loading ? : }
+
+ )
+ }
+}
+
+export default Landing;
\ No newline at end of file
diff --git a/MovieSearch/927tanmay/src/components/searchbar.js b/MovieSearch/927tanmay/src/components/searchbar.js
new file mode 100644
index 000000000..6c456298f
--- /dev/null
+++ b/MovieSearch/927tanmay/src/components/searchbar.js
@@ -0,0 +1,59 @@
+import React,{Component} from 'react';
+// import {searchmovie} from '../redux/action';
+
+
+
+
+
+
+class SearchBar extends Component{
+ constructor(){
+ super();
+ this.handleSubmit=this.handleSubmit.bind(this);
+ // this.onChange=this.onChange.bind(this);
+ }
+
+ // onChange(event) {
+ // event.preventDefault();
+ // const movie_text= event.target.elements.searchText.value;
+ // this.props.fetchMovies(movie_text);
+ // }
+ handleSubmit(event){
+
+ event.preventDefault();
+
+
+ const movie_text= event.target.elements.searchText.value;
+ if(movie_text)
+ this.props.fetchMovies(movie_text);
+
+ this.props.setLoading();
+ }
+ render(){
+ return(
+
+
+
+
+
+ Search for a movie ,TV series ..
+
+
+
+
+
+ )}
+}
+
+export default SearchBar;
\ No newline at end of file
diff --git a/MovieSearch/927tanmay/src/components/singlemovie.js b/MovieSearch/927tanmay/src/components/singlemovie.js
new file mode 100644
index 000000000..491f1f1bb
--- /dev/null
+++ b/MovieSearch/927tanmay/src/components/singlemovie.js
@@ -0,0 +1,79 @@
+import React, { Component } from 'react'
+import {Link} from 'react-router-dom';
+import Spinner from './spinner';
+
+export class Single extends Component {
+
+ componentDidMount(){
+ this.props.fetchMovie(this.props.match.params.id);
+ this.props.setLoading();
+ }
+
+ render() {
+ const {movie} = this.props;
+ const {loading} = this.props;
+
+ let test = (
+
+
+

+
+
+
{movie.Title}
+
+ -
+ Genre: {movie.Genre}
+
+ -
+ Released: {movie.Released}
+
+ -
+ Rated: {movie.Rated}
+
+ -
+ IMDB Rating: {movie.imdbRating}
+
+ -
+ Director: {movie.Director}
+
+ -
+ Writer: {movie.Writer}
+
+ -
+ Actors: {movie.Actors}
+
+
+
+
+
+
);
+ let content = loading ? : test;
+
+ return (
+
+ {content}
+
+ )
+ }
+}
+
+export default Single;
diff --git a/MovieSearch/927tanmay/src/components/spinner.gif b/MovieSearch/927tanmay/src/components/spinner.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0424aa4ffda24a189ed8487dddd63626bceff0f8
GIT binary patch
literal 8942
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
O7>g_~XKNzx*Z%+t`<_t%
literal 0
HcmV?d00001
diff --git a/MovieSearch/927tanmay/src/components/spinner.js b/MovieSearch/927tanmay/src/components/spinner.js
new file mode 100644
index 000000000..9054e0356
--- /dev/null
+++ b/MovieSearch/927tanmay/src/components/spinner.js
@@ -0,0 +1,19 @@
+import React from 'react'
+import spinner from './spinner.gif';
+
+
+function Spinner() {
+ return (
+
+

+
+ )
+}
+
+
+
+export default Spinner
diff --git a/MovieSearch/927tanmay/src/data/movie.js b/MovieSearch/927tanmay/src/data/movie.js
new file mode 100644
index 000000000..1739581f2
--- /dev/null
+++ b/MovieSearch/927tanmay/src/data/movie.js
@@ -0,0 +1,8 @@
+const initialState = {
+ text:'',
+ movies: [],
+ loading: false,
+ movie:[]
+}
+
+export default initialState;
\ No newline at end of file
diff --git a/MovieSearch/927tanmay/src/index.css b/MovieSearch/927tanmay/src/index.css
new file mode 100644
index 000000000..4a1df4db7
--- /dev/null
+++ b/MovieSearch/927tanmay/src/index.css
@@ -0,0 +1,13 @@
+body {
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
+ "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
+ sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+code {
+ font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
+ monospace;
+}
diff --git a/MovieSearch/927tanmay/src/index.js b/MovieSearch/927tanmay/src/index.js
new file mode 100644
index 000000000..831ac5b22
--- /dev/null
+++ b/MovieSearch/927tanmay/src/index.js
@@ -0,0 +1,25 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import './index.css';
+import App from './App';
+import * as serviceWorker from './serviceWorker';
+import {createStore,applyMiddleware} from 'redux';
+import {Provider} from 'react-redux'
+import {BrowserRouter} from 'react-router-dom';
+import rootreducer from './redux/search_reducer';
+import ReduxPromise from 'redux-promise';
+import { composeWithDevTools } from 'redux-devtools-extension';
+
+const store = createStore(rootreducer, composeWithDevTools(
+ applyMiddleware(ReduxPromise),
+ // other store enhancers if any
+));
+// const store = createStore(rootreducer,window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());
+// const createStoreWithMiddleware = applyMiddleware(ReduxPromise)(createStore);
+// const createStoreWithMiddleware = applyMiddleware(ReduxPromise)(createStore());
+
+// ReactDOM.render(, document.getElementById('root'));
+ReactDOM.render(,document.getElementById('root'));
+// ReactDOM.render(,document.getElementById('root'));
+
+serviceWorker.unregister();
diff --git a/MovieSearch/927tanmay/src/redux/action.js b/MovieSearch/927tanmay/src/redux/action.js
new file mode 100644
index 000000000..689b13c02
--- /dev/null
+++ b/MovieSearch/927tanmay/src/redux/action.js
@@ -0,0 +1,35 @@
+import axios from 'axios';
+
+const apiUrl = 'http://www.omdbapi.com/?i=tt3896198&apikey=35069641';
+const newurl = 'http://www.omdbapi.com/?&apikey=35069641'
+export function searchmovie(text){
+ return {
+ type:'SEARCH_MOVIE',
+ payload:text
+ }
+}
+
+export function fetchMovies(text){
+ const url =`${apiUrl}&s=${text}`;
+ const request = axios.get(url);
+ return{
+ type:'FETCH_MOVIES',
+ payload: request
+ }
+}
+
+
+export function fetchMovie(id){
+ const url =`${newurl}&i=${id}`;
+ const request = axios.get(url);
+ return{
+ type:'FETCH_MOVIE',
+ payload: request
+ }
+}
+
+export function setLoading(text){
+ return {
+ type:'LOADING'
+ }
+}
\ No newline at end of file
diff --git a/MovieSearch/927tanmay/src/redux/search_reducer.js b/MovieSearch/927tanmay/src/redux/search_reducer.js
new file mode 100644
index 000000000..1a2c37565
--- /dev/null
+++ b/MovieSearch/927tanmay/src/redux/search_reducer.js
@@ -0,0 +1,43 @@
+import initialState from '../data/movie';
+import {combineReducers} from 'redux';
+
+ function movies(state=initialState,action){
+ switch(action.type){
+ case 'SEARCH_MOVIE':
+ return{
+ ...state,
+ text:action.payload,
+ loading:false
+ } ;
+
+ case 'FETCH_MOVIES':
+ console.log(action.payload.data)
+ return{
+ ...state,
+
+ movies:action.payload.data,
+
+ loading:false
+ } ;
+
+ case 'FETCH_MOVIE':
+ return{
+ ...state,
+ movie:action.payload.data,
+ loading:false
+ } ;
+ case 'LOADING':
+ return{
+ ...state,
+ loading:true
+ } ;
+
+
+
+ default: return state;
+ }
+}
+
+const rootReducer = combineReducers({movies});
+
+export default rootReducer;
\ No newline at end of file
diff --git a/MovieSearch/927tanmay/src/serviceWorker.js b/MovieSearch/927tanmay/src/serviceWorker.js
new file mode 100644
index 000000000..f8c7e50c2
--- /dev/null
+++ b/MovieSearch/927tanmay/src/serviceWorker.js
@@ -0,0 +1,135 @@
+// This optional code is used to register a service worker.
+// register() is not called by default.
+
+// This lets the app load faster on subsequent visits in production, and gives
+// it offline capabilities. However, it also means that developers (and users)
+// will only see deployed updates on subsequent visits to a page, after all the
+// existing tabs open on the page have been closed, since previously cached
+// resources are updated in the background.
+
+// To learn more about the benefits of this model and instructions on how to
+// opt-in, read https://bit.ly/CRA-PWA
+
+const isLocalhost = Boolean(
+ window.location.hostname === 'localhost' ||
+ // [::1] is the IPv6 localhost address.
+ window.location.hostname === '[::1]' ||
+ // 127.0.0.1/8 is considered localhost for IPv4.
+ window.location.hostname.match(
+ /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
+ )
+);
+
+export function register(config) {
+ if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
+ // The URL constructor is available in all browsers that support SW.
+ const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
+ if (publicUrl.origin !== window.location.origin) {
+ // Our service worker won't work if PUBLIC_URL is on a different origin
+ // from what our page is served on. This might happen if a CDN is used to
+ // serve assets; see https://github.com/facebook/create-react-app/issues/2374
+ return;
+ }
+
+ window.addEventListener('load', () => {
+ const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
+
+ if (isLocalhost) {
+ // This is running on localhost. Let's check if a service worker still exists or not.
+ checkValidServiceWorker(swUrl, config);
+
+ // Add some additional logging to localhost, pointing developers to the
+ // service worker/PWA documentation.
+ navigator.serviceWorker.ready.then(() => {
+ console.log(
+ 'This web app is being served cache-first by a service ' +
+ 'worker. To learn more, visit https://bit.ly/CRA-PWA'
+ );
+ });
+ } else {
+ // Is not localhost. Just register service worker
+ registerValidSW(swUrl, config);
+ }
+ });
+ }
+}
+
+function registerValidSW(swUrl, config) {
+ navigator.serviceWorker
+ .register(swUrl)
+ .then(registration => {
+ registration.onupdatefound = () => {
+ const installingWorker = registration.installing;
+ if (installingWorker == null) {
+ return;
+ }
+ installingWorker.onstatechange = () => {
+ if (installingWorker.state === 'installed') {
+ if (navigator.serviceWorker.controller) {
+ // At this point, the updated precached content has been fetched,
+ // but the previous service worker will still serve the older
+ // content until all client tabs are closed.
+ console.log(
+ 'New content is available and will be used when all ' +
+ 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'
+ );
+
+ // Execute callback
+ if (config && config.onUpdate) {
+ config.onUpdate(registration);
+ }
+ } else {
+ // At this point, everything has been precached.
+ // It's the perfect time to display a
+ // "Content is cached for offline use." message.
+ console.log('Content is cached for offline use.');
+
+ // Execute callback
+ if (config && config.onSuccess) {
+ config.onSuccess(registration);
+ }
+ }
+ }
+ };
+ };
+ })
+ .catch(error => {
+ console.error('Error during service worker registration:', error);
+ });
+}
+
+function checkValidServiceWorker(swUrl, config) {
+ // Check if the service worker can be found. If it can't reload the page.
+ fetch(swUrl)
+ .then(response => {
+ // Ensure service worker exists, and that we really are getting a JS file.
+ const contentType = response.headers.get('content-type');
+ if (
+ response.status === 404 ||
+ (contentType != null && contentType.indexOf('javascript') === -1)
+ ) {
+ // No service worker found. Probably a different app. Reload the page.
+ navigator.serviceWorker.ready.then(registration => {
+ registration.unregister().then(() => {
+ window.location.reload();
+ });
+ });
+ } else {
+ // Service worker found. Proceed as normal.
+ registerValidSW(swUrl, config);
+ }
+ })
+ .catch(() => {
+ console.log(
+ 'No internet connection found. App is running in offline mode.'
+ );
+ });
+}
+
+export function unregister() {
+ if ('serviceWorker' in navigator) {
+ navigator.serviceWorker.ready.then(registration => {
+ registration.unregister();
+ });
+ }
+}
diff --git a/MovieSearch/927tanmay/src/store.js b/MovieSearch/927tanmay/src/store.js
new file mode 100644
index 000000000..5b37aa18b
--- /dev/null
+++ b/MovieSearch/927tanmay/src/store.js
@@ -0,0 +1,8 @@
+import {createStore, applyMiddleware} from 'redux';
+import thunk from 'redux-thunk';
+import
+
+const middleware = [thunk];
+const initialState={};
+
+const store = createStore();
\ No newline at end of file