├── .gitignore ├── README.md ├── babel.config.js ├── img ├── calculator.png └── package.png ├── jsconfig.json ├── package.json ├── public ├── favicon.ico └── index.html ├── src ├── App.vue ├── assets │ └── logo.png ├── components │ ├── Calculator.vue │ ├── Footer.vue │ └── Navigation.vue ├── main.js └── plugins │ └── bootstrap-vue.js ├── vue.config.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Calculator In Vue Js 2 | 3 | Written in JavaScript through VueJs and styled with Bootstrap Vue. 4 | 5 | 6 | 7 | ## Installation. 8 | 9 | First of all, clone the project. 10 | You should have Vuejs installed on your system to proceed. To install Vue, you need Node Package Manager (NPM) and Node Js as JavaScript runtime. 11 | 12 | Note: I chose to use ``yarn`` as my package manager instead of npm. 13 | 14 | To install Vue, go ahead and run: 15 | 16 | > yarn global add @vue/cli 17 | 18 | You can install the packages I used through 19 | 20 | > yarn add "the dependency" 21 | 22 | Look into the ```package.json``` to see the used dependencies. 23 | 24 | 25 | 26 | Install bootstrap-vue. We could do this through vue itself. 27 | 28 | > vue add bootstrap-vue 29 | 30 | ### That should be all folks. Now to run: 31 | 32 | > yarn serve 33 | 34 | #### Thank You 35 | 36 | Feel free to reach out to me! 37 | geraldabuchi@twitter -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "presets": [ 3 | "@vue/cli-plugin-babel/preset" 4 | ] 5 | } -------------------------------------------------------------------------------- /img/calculator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grayoj/calculator-vuejs-app/7318158712e3b4046a1b957b798060fa5b23660e/img/calculator.png -------------------------------------------------------------------------------- /img/package.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grayoj/calculator-vuejs-app/7318158712e3b4046a1b957b798060fa5b23660e/img/package.png -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "esnext", 5 | "baseUrl": "./", 6 | "moduleResolution": "node", 7 | "paths": { 8 | "@/*": [ 9 | "src/*" 10 | ] 11 | }, 12 | "lib": [ 13 | "esnext", 14 | "dom", 15 | "dom.iterable", 16 | "scripthost" 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "calculator-vuejs-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "@babel/polyfill": "^7.11.5", 12 | "bootstrap": "^5.1.3", 13 | "bootstrap-vue": "^2.21.2", 14 | "core-js": "^3.8.3", 15 | "mutationobserver-shim": "^0.3.7", 16 | "popper.js": "^1.16.1", 17 | "portal-vue": "^2.1.7", 18 | "vue": "^2.6.14" 19 | }, 20 | "devDependencies": { 21 | "@babel/core": "^7.12.16", 22 | "@babel/eslint-parser": "^7.12.16", 23 | "@vue/cli-plugin-babel": "~5.0.0", 24 | "@vue/cli-plugin-eslint": "~5.0.0", 25 | "@vue/cli-service": "~5.0.0", 26 | "eslint": "^7.32.0", 27 | "eslint-plugin-vue": "^8.0.3", 28 | "sass": "^1.26.11", 29 | "sass-loader": "^10.0.2", 30 | "vue-cli-plugin-bootstrap-vue": "~0.8.2", 31 | "vue-template-compiler": "^2.6.14" 32 | }, 33 | "eslintConfig": { 34 | "root": true, 35 | "env": { 36 | "node": true 37 | }, 38 | "extends": [ 39 | "plugin:vue/essential", 40 | "eslint:recommended" 41 | ], 42 | "parserOptions": { 43 | "parser": "@babel/eslint-parser" 44 | }, 45 | "rules": {} 46 | }, 47 | "browserslist": [ 48 | "> 1%", 49 | "last 2 versions", 50 | "not dead" 51 | ] 52 | } 53 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grayoj/calculator-vuejs-app/7318158712e3b4046a1b957b798060fa5b23660e/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 20 | 21 | 24 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grayoj/calculator-vuejs-app/7318158712e3b4046a1b957b798060fa5b23660e/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/Calculator.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 23 | 24 | 71 | 72 | 73 | 85 | -------------------------------------------------------------------------------- /src/components/Footer.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 36 | 37 | -------------------------------------------------------------------------------- /src/components/Navigation.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 25 | 26 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import 'bootstrap/dist/css/bootstrap.min.css' 4 | import './plugins/bootstrap-vue.js' 5 | 6 | 7 | Vue.config.productionTip = false 8 | 9 | new Vue({ 10 | render: h => h(App), 11 | }).$mount('#app') 12 | -------------------------------------------------------------------------------- /src/plugins/bootstrap-vue.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | 3 | import BootstrapVue from 'bootstrap-vue' 4 | import 'bootstrap/dist/css/bootstrap.min.css' 5 | import 'bootstrap-vue/dist/bootstrap-vue.css' 6 | 7 | Vue.use(BootstrapVue) 8 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | const { defineConfig } = require('@vue/cli-service') 2 | module.exports = defineConfig({ 3 | transpileDependencies: true 4 | }) 5 | --------------------------------------------------------------------------------