├── public ├── CNAME ├── favicon.ico ├── manifest.json └── index.html ├── src ├── index.css ├── assets │ └── images │ │ ├── list.jpg │ │ ├── list1.jpg │ │ ├── single.jpg │ │ ├── favicon.jpg │ │ ├── single1.jpg │ │ ├── parallax1.jpg │ │ ├── parallax2.jpg │ │ ├── parallax3.jpg │ │ ├── parallax4.jpg │ │ ├── parallax5.jpg │ │ ├── parallax6.jpg │ │ ├── parallax6.png │ │ ├── parallax7.jpg │ │ └── TejasNanaware.jpg ├── containers │ ├── Footer │ │ ├── Footer.css │ │ └── Footer.js │ ├── MyRouter │ │ └── MyRouter.js │ ├── Header │ │ └── Header.js │ ├── About │ │ └── About.js │ └── Home │ │ ├── Home.css │ │ └── Home.js ├── App.test.js ├── components │ ├── ListOfWords │ │ ├── ListOfWords.css │ │ └── ListOfWords.js │ └── SingleWord │ │ └── SingleWord.js ├── index.js ├── App.js └── registerServiceWorker.js ├── .gitignore ├── package.json ├── README.md └── LICENSE /public/CNAME: -------------------------------------------------------------------------------- 1 | vocab.ssisindia.com -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: "Roboto", sans-serif; 5 | } 6 | -------------------------------------------------------------------------------- /src/assets/images/list.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/list.jpg -------------------------------------------------------------------------------- /src/assets/images/list1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/list1.jpg -------------------------------------------------------------------------------- /src/assets/images/single.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/single.jpg -------------------------------------------------------------------------------- /src/assets/images/favicon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/favicon.jpg -------------------------------------------------------------------------------- /src/assets/images/single1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/single1.jpg -------------------------------------------------------------------------------- /src/assets/images/parallax1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/parallax1.jpg -------------------------------------------------------------------------------- /src/assets/images/parallax2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/parallax2.jpg -------------------------------------------------------------------------------- /src/assets/images/parallax3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/parallax3.jpg -------------------------------------------------------------------------------- /src/assets/images/parallax4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/parallax4.jpg -------------------------------------------------------------------------------- /src/assets/images/parallax5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/parallax5.jpg -------------------------------------------------------------------------------- /src/assets/images/parallax6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/parallax6.jpg -------------------------------------------------------------------------------- /src/assets/images/parallax6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/parallax6.png -------------------------------------------------------------------------------- /src/assets/images/parallax7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/parallax7.jpg -------------------------------------------------------------------------------- /src/assets/images/TejasNanaware.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SSIS-Group/Vocabulary/HEAD/src/assets/images/TejasNanaware.jpg -------------------------------------------------------------------------------- /src/containers/Footer/Footer.css: -------------------------------------------------------------------------------- 1 | footer { 2 | background-color: #343a40; 3 | padding-top: 10px; 4 | padding-bottom: 10px; 5 | color: rgba(255,255,255,.5); 6 | width: 100%; 7 | } 8 | 9 | .fixed-bottom { 10 | z-index: auto; 11 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | /node_modules 3 | 4 | #deployment 5 | /build 6 | 7 | # testing 8 | /coverage 9 | 10 | # misc 11 | .DS_Store 12 | .env.local 13 | .env.development.local 14 | .env.test.local 15 | .env.production.local 16 | 17 | npm-debug.log* -------------------------------------------------------------------------------- /src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | -------------------------------------------------------------------------------- /src/components/ListOfWords/ListOfWords.css: -------------------------------------------------------------------------------- 1 | .btn-circle { 2 | position: fixed; 3 | bottom: 20px; 4 | right: 30px; 5 | z-index: 99; 6 | font-size: 18px; 7 | border: none; 8 | outline: none; 9 | cursor: pointer; 10 | 11 | width: 40px; 12 | height: 40px; 13 | padding: 6px 0px; 14 | border-radius: 20px; 15 | text-align: center; 16 | } -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import registerServiceWorker from './registerServiceWorker'; 6 | import { HashRouter as Router } from 'react-router-dom'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | registerServiceWorker(); 10 | -------------------------------------------------------------------------------- /src/containers/Footer/Footer.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import './Footer.css'; 3 | 4 | const Footer = () => { 5 | return ( 6 | 11 | ); 12 | }; 13 | 14 | export default Footer; -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Header from './containers/Header/Header'; 3 | import MyRouter from './containers/MyRouter/MyRouter'; 4 | import Footer from './containers/Footer/Footer'; 5 | 6 | class App extends React.Component { 7 | render() { 8 | return ( 9 |
10 |
11 | 12 |
13 |
14 | ); 15 | } 16 | } 17 | 18 | export default App; 19 | -------------------------------------------------------------------------------- /src/containers/MyRouter/MyRouter.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Switch, Route } from 'react-router-dom'; 3 | import Home from '../Home/Home'; 4 | import About from '../About/About'; 5 | import SingleWord from '../../components/SingleWord/SingleWord'; 6 | import ListOfWords from '../../components/ListOfWords/ListOfWords'; 7 | 8 | const MyRouter = () => { 9 | return ( 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | ); 19 | }; 20 | 21 | export default MyRouter; -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vocabulary-app", 3 | "version": "2.0.5", 4 | "private": false, 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/SSIS-Group/Vocabulary" 8 | }, 9 | "license": "SEE LICENSE IN ", 10 | "homepage": "http://vocab.ssisindia.com", 11 | "dependencies": { 12 | "react": "^16.4.1", 13 | "react-dom": "^16.4.2", 14 | "react-router-dom": "^4.3.1", 15 | "react-scripts": "1.1.4" 16 | }, 17 | "scripts": { 18 | "predeploy": "npm run build", 19 | "deploy": "gh-pages -d build", 20 | "start": "react-scripts start", 21 | "build": "react-scripts build", 22 | "test": "react-scripts test --env=jsdom", 23 | "eject": "react-scripts eject" 24 | }, 25 | "devDependencies": { 26 | "gh-pages": "^1.2.0", 27 | "merge": "^1.2.1" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Vocabulary Builder App

2 | 3 | Do you want to improve your vocabulary if you are preparing for an English exam? Do you face issues like paid apps or limited number of words? 4 | 5 | Search No More! 6 | 7 | Vocabulary Builder App will enable you to learn English at no cost at all. This app is built using [React](http://reactjs.org). 8 | Providing about **7000 different words that are sorted alphabetically**, you can learn now by using two different modes: 9 | 10 | 1. **Single Word:** This method provides you a random word from the selected letter everytime. 11 | 2. **List of Words:** This will provide you with a list of words from the chosen letter. 12 | 13 | The app is hosted online using GitHub and you can start using it [here](https://ssis-group.github.io/Vocabulary/#/). 14 | 15 | ```Feel free to contribute to this app by adding new words or adding new learning strategies.``` 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Tejas Nanaware 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/containers/Header/Header.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { NavLink as Link } from 'react-router-dom'; 3 | 4 | const Header = () => { 5 | return ( 6 | 28 | ); 29 | }; 30 | 31 | export default Header; -------------------------------------------------------------------------------- /src/containers/About/About.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Tejas from "../../assets/images/TejasNanaware.jpg"; 3 | 4 | const About = () => { 5 | return ( 6 |
7 |
8 |
9 | Tejas Nanaware 10 |
11 |
12 |

Tejas Nanaware

13 |
14 |
15 | 16 |
17 |
18 | 19 |
20 |
21 | 22 |
23 |
24 | 25 |
26 |
27 |
28 |

I am a passionate engineer who loves innovative things and a keen learner. I am curious to learn new things and implement them in any manner. Regarding my technical skills, I am a machine learning and a full-stack developer specializing in Python and JavaScript.

29 |

I have created this app especially for my friends giving competitive exams that focus on the English verbal part. This app has about 5000 words. If you feel like contributing to this project, or add words, you can raise an issue on the GitHub repo or send me an email.

30 |
31 |
32 |
33 |
34 | ); 35 | }; 36 | 37 | export default About; -------------------------------------------------------------------------------- /src/containers/Home/Home.css: -------------------------------------------------------------------------------- 1 | .parallax1{ 2 | background-image: url("../../assets/images/parallax6.jpg"); 3 | min-height: 500px; 4 | background-attachment: fixed; 5 | background-position: center; 6 | background-repeat: no-repeat; 7 | background-size: cover; 8 | margin: 0; 9 | padding-top: 240px; 10 | } 11 | .parallax2{ 12 | background-image: url("../../assets/images/parallax7.jpg"); 13 | min-height: 500px; 14 | background-attachment: fixed; 15 | background-position: center; 16 | background-repeat: no-repeat; 17 | background-size: cover; 18 | margin: 0; 19 | padding-top: 240px; 20 | } 21 | 22 | #header{ 23 | /* position: absolute; 24 | z-index: 1000; 25 | top: 50%; 26 | left: 50%; */ 27 | top: 50%; 28 | color: #333; 29 | font-size: 40px; 30 | line-height: 1; 31 | font-weight: 700; 32 | text-align: center; 33 | text-transform: uppercase; 34 | text-shadow: 0 0 10px white; 35 | } 36 | 37 | .text-box{ 38 | height: 600px; 39 | padding: 50px; 40 | } 41 | 42 | @media all and (min-width: 600px) { 43 | .parallax1{ 44 | background-image: url("../../assets/images/parallax6.jpg"); 45 | min-height: 500px; 46 | background-attachment: fixed; 47 | background-position: center; 48 | background-repeat: no-repeat; 49 | background-size: cover; 50 | margin: 0; 51 | padding-top: 240px; 52 | } 53 | .parallax2{ 54 | background-image: url("../../assets/images/parallax7.jpg"); 55 | min-height: 500px; 56 | background-attachment: fixed; 57 | background-position: center; 58 | background-repeat: no-repeat; 59 | background-size: cover; 60 | margin: 0; 61 | padding-top: 240px; 62 | } 63 | } 64 | @media all and (min-width: 960px) { 65 | .parallax1{ 66 | background-image: url("../../assets/images/parallax6.jpg"); 67 | min-height: 500px; 68 | background-attachment: fixed; 69 | background-position: center; 70 | background-repeat: no-repeat; 71 | background-size: cover; 72 | margin: 0; 73 | padding-top: 240px; 74 | } 75 | .parallax2{ 76 | background-image: url("../../assets/images/parallax7.jpg"); 77 | min-height: 500px; 78 | background-attachment: fixed; 79 | background-position: center; 80 | background-repeat: no-repeat; 81 | background-size: cover; 82 | margin: 0; 83 | padding-top: 240px; 84 | } 85 | } -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 | 33 | Strengthen your Vocabulary 34 | 35 | 36 | 37 | 38 | 39 | 40 | 43 |
44 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /src/registerServiceWorker.js: -------------------------------------------------------------------------------- 1 | // In production, we register a service worker to serve assets from local cache. 2 | 3 | // This lets the app load faster on subsequent visits in production, and gives 4 | // it offline capabilities. However, it also means that developers (and users) 5 | // will only see deployed updates on the "N+1" visit to a page, since previously 6 | // cached resources are updated in the background. 7 | 8 | // To learn more about the benefits of this model, read https://goo.gl/KwvDNy. 9 | // This link also includes instructions on opting out of this behavior. 10 | 11 | const isLocalhost = Boolean( 12 | window.location.hostname === 'localhost' || 13 | // [::1] is the IPv6 localhost address. 14 | window.location.hostname === '[::1]' || 15 | // 127.0.0.1/8 is considered localhost for IPv4. 16 | window.location.hostname.match( 17 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ 18 | ) 19 | ); 20 | 21 | export default function register() { 22 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 23 | // The URL constructor is available in all browsers that support SW. 24 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location); 25 | if (publicUrl.origin !== window.location.origin) { 26 | // Our service worker won't work if PUBLIC_URL is on a different origin 27 | // from what our page is served on. This might happen if a CDN is used to 28 | // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 29 | return; 30 | } 31 | 32 | window.addEventListener('load', () => { 33 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; 34 | 35 | if (isLocalhost) { 36 | // This is running on localhost. Lets check if a service worker still exists or not. 37 | checkValidServiceWorker(swUrl); 38 | 39 | // Add some additional logging to localhost, pointing developers to the 40 | // service worker/PWA documentation. 41 | navigator.serviceWorker.ready.then(() => { 42 | console.log( 43 | 'This web app is being served cache-first by a service ' + 44 | 'worker. To learn more, visit https://goo.gl/SC7cgQ' 45 | ); 46 | }); 47 | } else { 48 | // Is not local host. Just register service worker 49 | registerValidSW(swUrl); 50 | } 51 | }); 52 | } 53 | } 54 | 55 | function registerValidSW(swUrl) { 56 | navigator.serviceWorker 57 | .register(swUrl) 58 | .then(registration => { 59 | registration.onupdatefound = () => { 60 | const installingWorker = registration.installing; 61 | installingWorker.onstatechange = () => { 62 | if (installingWorker.state === 'installed') { 63 | if (navigator.serviceWorker.controller) { 64 | // At this point, the old content will have been purged and 65 | // the fresh content will have been added to the cache. 66 | // It's the perfect time to display a "New content is 67 | // available; please refresh." message in your web app. 68 | console.log('New content is available; please refresh.'); 69 | } else { 70 | // At this point, everything has been precached. 71 | // It's the perfect time to display a 72 | // "Content is cached for offline use." message. 73 | console.log('Content is cached for offline use.'); 74 | } 75 | } 76 | }; 77 | }; 78 | }) 79 | .catch(error => { 80 | console.error('Error during service worker registration:', error); 81 | }); 82 | } 83 | 84 | function checkValidServiceWorker(swUrl) { 85 | // Check if the service worker can be found. If it can't reload the page. 86 | fetch(swUrl) 87 | .then(response => { 88 | // Ensure service worker exists, and that we really are getting a JS file. 89 | if ( 90 | response.status === 404 || 91 | response.headers.get('content-type').indexOf('javascript') === -1 92 | ) { 93 | // No service worker found. Probably a different app. Reload the page. 94 | navigator.serviceWorker.ready.then(registration => { 95 | registration.unregister().then(() => { 96 | window.location.reload(); 97 | }); 98 | }); 99 | } else { 100 | // Service worker found. Proceed as normal. 101 | registerValidSW(swUrl); 102 | } 103 | }) 104 | .catch(() => { 105 | console.log( 106 | 'No internet connection found. App is running in offline mode.' 107 | ); 108 | }); 109 | } 110 | 111 | export function unregister() { 112 | if ('serviceWorker' in navigator) { 113 | navigator.serviceWorker.ready.then(registration => { 114 | registration.unregister(); 115 | }); 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /src/components/SingleWord/SingleWord.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { A } from '../../assets/wordlist.json'; 3 | import { B } from '../../assets/wordlist.json'; 4 | import { C } from '../../assets/wordlist.json'; 5 | import { D } from '../../assets/wordlist.json'; 6 | import { E } from '../../assets/wordlist.json'; 7 | import { F } from '../../assets/wordlist.json'; 8 | import { G } from '../../assets/wordlist.json'; 9 | import { H } from '../../assets/wordlist.json'; 10 | import { I } from '../../assets/wordlist.json'; 11 | import { J } from '../../assets/wordlist.json'; 12 | import { K } from '../../assets/wordlist.json'; 13 | import { L } from '../../assets/wordlist.json'; 14 | import { M } from '../../assets/wordlist.json'; 15 | import { N } from '../../assets/wordlist.json'; 16 | import { O } from '../../assets/wordlist.json'; 17 | import { P } from '../../assets/wordlist.json'; 18 | import { Q } from '../../assets/wordlist.json'; 19 | import { R } from '../../assets/wordlist.json'; 20 | import { S } from '../../assets/wordlist.json'; 21 | import { T } from '../../assets/wordlist.json'; 22 | import { U } from '../../assets/wordlist.json'; 23 | import { V } from '../../assets/wordlist.json'; 24 | import { W } from '../../assets/wordlist.json'; 25 | import { X } from '../../assets/wordlist.json'; 26 | import { Y } from '../../assets/wordlist.json'; 27 | import { Z } from '../../assets/wordlist.json'; 28 | 29 | class SingleWord extends Component { 30 | constructor() { 31 | super(); 32 | this.state = { 33 | myWord: '', 34 | itsMeaning: '' 35 | }; 36 | } 37 | 38 | generateWord = (myChar) => { 39 | let myWord = myChar[Math.floor(Math.random() * myChar.length)].split(":"); 40 | this.setState({ 41 | myWord: myWord[0], 42 | itsMeaning: myWord[1] 43 | }); 44 | } 45 | 46 | render() { 47 | return ( 48 |
49 |

Hello!

50 |
Click on the button to show a random word and its meaning
51 |
52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
61 |
62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |
71 |
72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 |
81 |
82 | 83 | 84 |
85 | 86 | 87 |

{this.state.myWord}

88 |

{this.state.itsMeaning}

89 |
90 | ); 91 | } 92 | } 93 | 94 | export default SingleWord; 95 | -------------------------------------------------------------------------------- /src/components/ListOfWords/ListOfWords.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import './ListOfWords.css'; 3 | import { A } from '../../assets/wordlist.json'; 4 | import { B } from '../../assets/wordlist.json'; 5 | import { C } from '../../assets/wordlist.json'; 6 | import { D } from '../../assets/wordlist.json'; 7 | import { E } from '../../assets/wordlist.json'; 8 | import { F } from '../../assets/wordlist.json'; 9 | import { G } from '../../assets/wordlist.json'; 10 | import { H } from '../../assets/wordlist.json'; 11 | import { I } from '../../assets/wordlist.json'; 12 | import { J } from '../../assets/wordlist.json'; 13 | import { K } from '../../assets/wordlist.json'; 14 | import { L } from '../../assets/wordlist.json'; 15 | import { M } from '../../assets/wordlist.json'; 16 | import { N } from '../../assets/wordlist.json'; 17 | import { O } from '../../assets/wordlist.json'; 18 | import { P } from '../../assets/wordlist.json'; 19 | import { Q } from '../../assets/wordlist.json'; 20 | import { R } from '../../assets/wordlist.json'; 21 | import { S } from '../../assets/wordlist.json'; 22 | import { T } from '../../assets/wordlist.json'; 23 | import { U } from '../../assets/wordlist.json'; 24 | import { V } from '../../assets/wordlist.json'; 25 | import { W } from '../../assets/wordlist.json'; 26 | import { X } from '../../assets/wordlist.json'; 27 | import { Y } from '../../assets/wordlist.json'; 28 | import { Z } from '../../assets/wordlist.json'; 29 | 30 | class ListOfWords extends React.Component { 31 | constructor() { 32 | super(); 33 | this.state = { 34 | words: ['Word: Meaning', 'Word: Meaning'] 35 | }; 36 | } 37 | 38 | resetList = () => { 39 | this.setState({ 40 | words: ['Word: Meaning', 'Word: Meaning'] 41 | }); 42 | } 43 | 44 | goToTop = () => { 45 | document.body.scrollTop = 0; 46 | document.documentElement.scrollTop = 0; 47 | } 48 | 49 | generateList = (myChar) => { 50 | let arrWords = []; 51 | for (let index = 0; index < myChar.length; index++) { 52 | arrWords = [...arrWords, myChar[index]]; 53 | } 54 | this.setState({ 55 | words: arrWords 56 | }); 57 | } 58 | render() { 59 | return ( 60 |
61 |

Hello!

62 |
Click on the button to show a list of words and its meaning
63 |
64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 |
73 |
74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 |
83 |
84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 |
93 |
94 | 95 | 96 | 97 |
98 |
{this.state.words.length === 2? 0: this.state.words.length} { this.state.words.length === 1 ? 'Word':'Words'}
99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | { 108 | this.state.words.map( 109 | (object, i) => ( 110 | 111 | 112 | 113 | 114 | ) 115 | ) 116 | } 117 | 118 |
WordMeaning
{object.split(':')[0]}{object.split(':')[1]}
119 | 120 |
121 | ); 122 | } 123 | } 124 | 125 | export default ListOfWords; -------------------------------------------------------------------------------- /src/containers/Home/Home.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import './Home.css'; 3 | import single from '../../assets/images/single1.jpg'; 4 | import list from '../../assets/images/list1.jpg'; 5 | import {Link} from 'react-router-dom'; 6 | 7 | const Home = () => { 8 | return ( 9 |
10 | 11 |

Welcome to Vocabulary App

12 |
13 |

Seven Ways To Improve Vocabulary

14 |
15 |
16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 | The more you read -- especially novels and literary works, but also magazines and newspapers -- the more words you'll be exposed to. As you read and uncover new words, use a combination of attempting to derive meaning from the context of the sentence as well as from looking up the definition in a dictionary. 24 |
25 |
26 |
27 |
28 |
29 |
30 | 31 |
32 |
33 |
34 |
35 | Use whatever versions you prefer -- in print, software, or online. When you uncover a new word, look it up in the dictionary to get both its pronunciation and its meaning(s). Next, go to the thesaurus and find similar words and phrases -- and their opposites (synonyms and antonyms, respectively) -- and learn the nuances among the words. 36 |
37 |
38 |
39 |
40 |
41 |
42 | 43 |
44 |
45 |
46 |
47 | It's a good idea to keep a running list of the new words you discover so that you can refer back to the list and slowly build them into your everyday vocabulary. Plus, keeping a journal of all your new words can provide positive reinforcement for learning even more words -- especially when you can see how many new words you've already learned. 48 |
49 |
50 |
51 |
52 |
53 |
54 | 55 |
56 |
57 |
58 |
59 | Using a word-a-day calendar or Website -- or developing your own list of words to learn -- is a great technique many people use to learn new words. This approach may be too rigid for some, so even if you do use this method, don't feel you must learn a new word every day. 60 |
61 |
62 |
63 |
64 |
65 |
66 | 67 |
68 |
69 |
70 |
71 | One of the most powerful tools for learning new words -- and for deciphering the meaning of other new words -- is studying Latin and Greek roots. Latin and Greek elements (prefixes, roots, and suffixes) are a significant part of the English language and a great tool for learning new words. 72 |
73 |
74 |
75 |
76 |
77 |
78 | 79 |
80 |
81 |
82 |
83 | Word games that challenge you and help you discover new meanings and new words are a great and fun tool in your quest for expanding your vocabulary. Examples include crossword puzzles, anagrams, word jumble, Scrabble, and Boggle. 84 |
85 |
86 |
87 |
88 |
89 |
90 | 91 |
92 |
93 |
94 |
95 | Simply talking with other people can help you learn discover new words. As with reading, once you hear a new word, remember to jot it down so that you can study it later -- and then slowly add the new word to your vocabulary. 96 |
97 |
98 |
99 |
100 |
101 |

Tailor-made for your needs

102 |
103 |

Ensuring Faster Learning By

104 |
105 |
106 |
107 | Single words 108 |
109 |
Single Words
110 |

Using this method, you can learn new words as words are generated randomly from the alphabet that you select.

111 | Single Words 112 |
113 |
114 |
115 |
116 |
117 | List of words 118 |
119 |
List of Words
120 |

Using this method, you can learn new words as a list of words is generated from the alphabet that you select.

121 | List of Words 122 |
123 |
124 |
125 |
126 |
127 |
128 | ); 129 | }; 130 | 131 | export default Home; --------------------------------------------------------------------------------