├── src
├── App.vue
├── assets
│ ├── pattern-bg.png
│ └── tailwind.css
├── main.js
├── router
│ └── index.js
├── components
│ └── IPInfo.vue
└── views
│ └── HomeView.vue
├── .browserslistrc
├── public
├── favicon.ico
└── index.html
├── babel.config.js
├── vue.config.js
├── postcss.config.js
├── .gitignore
├── tailwind.config.js
├── jsconfig.json
├── README.md
├── .eslintrc.js
└── package.json
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 | not ie 11
5 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/neto112/tracking-app/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/src/assets/pattern-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/neto112/tracking-app/HEAD/src/assets/pattern-bg.png
--------------------------------------------------------------------------------
/src/assets/tailwind.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 |
3 | @tailwind components;
4 |
5 | @tailwind utilities;
6 |
--------------------------------------------------------------------------------
/vue.config.js:
--------------------------------------------------------------------------------
1 | const { defineConfig } = require('@vue/cli-service')
2 | module.exports = defineConfig({
3 | transpileDependencies: true
4 | })
5 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {
4 | config: './tailwind.config.js'
5 | },
6 | autoprefixer: {}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 | import router from './router'
4 | import './assets/tailwind.css'
5 |
6 | createApp(App).use(router).mount('#app')
7 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: ['./public/**/*.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
4 | theme: {
5 | extend: {
6 | backgroundImage: (theme) => ({
7 | "hero-pattern": "url('pattern-bg.png')",
8 | }),
9 | },
10 | },
11 | plugins: [],
12 | }
13 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # tracking-app
2 |
3 | ## Project setup
4 | ```
5 | npm install
6 | ```
7 |
8 | ### Compiles and hot-reloads for development
9 | ```
10 | npm run serve
11 | ```
12 |
13 | ### Compiles and minifies for production
14 | ```
15 | npm run build
16 | ```
17 |
18 | ### Lints and fixes files
19 | ```
20 | npm run lint
21 | ```
22 |
23 | ### Customize configuration
24 | See [Configuration Reference](https://cli.vuejs.org/config/).
25 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | env: {
4 | node: true
5 | },
6 | 'extends': [
7 | 'plugin:vue/vue3-essential',
8 | 'eslint:recommended'
9 | ],
10 | parserOptions: {
11 | parser: '@babel/eslint-parser'
12 | },
13 | rules: {
14 | 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
15 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import { createRouter, createWebHistory } from 'vue-router'
2 | import HomeView from '../views/HomeView.vue'
3 |
4 | const routes = [
5 | {
6 | path: '/',
7 | name: 'home',
8 | component: HomeView,
9 | meta: {
10 | title: "IP Address Tracker"
11 | }
12 | },
13 | ]
14 |
15 | const router = createRouter({
16 | history: createWebHistory(process.env.BASE_URL),
17 | routes
18 | })
19 |
20 | router.beforeEach((to, from, next) => {
21 | document.title = `${to.meta.title}`;
22 | next()
23 | });
24 |
25 | export default router
26 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tracking-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 | "axios": "^1.1.3",
12 | "core-js": "^3.8.3",
13 | "leaflet": "^1.9.2",
14 | "tailwind": "^4.0.0",
15 | "vue": "^3.2.13",
16 | "vue-router": "^4.0.3"
17 | },
18 | "devDependencies": {
19 | "@babel/core": "^7.12.16",
20 | "@babel/eslint-parser": "^7.12.16",
21 | "@vue/cli-plugin-babel": "~5.0.0",
22 | "@vue/cli-plugin-eslint": "~5.0.0",
23 | "@vue/cli-plugin-router": "~5.0.0",
24 | "@vue/cli-service": "~5.0.0",
25 | "autoprefixer": "^10.4.13",
26 | "eslint": "^7.32.0",
27 | "eslint-plugin-vue": "^8.0.3",
28 | "postcss": "^8.4.19",
29 | "sass": "^1.32.7",
30 | "sass-loader": "^12.0.0",
31 | "tailwindcss": "^3.2.4",
32 | "vue-cli-plugin-tailwind": "~3.0.0"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/components/IPInfo.vue:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
IP Address
19 | {{ ipInfo.address }}
20 |
21 |
22 |
Location
23 | {{ ipInfo.state }}
24 |
25 |
26 |
Timezone
27 | UTC {{ ipInfo.timezone }}
28 |
29 |
30 |
Isp
31 | {{ ipInfo.isp }}
32 |
33 |
34 |
35 |
36 |
41 |
42 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
14 |
21 | <%= htmlWebpackPlugin.options.title %>
22 |
23 |
24 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/views/HomeView.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
IP Address Tracker
8 |
9 |
15 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
91 |
--------------------------------------------------------------------------------