diff --git a/.env b/.env
new file mode 100644
index 000000000..8926f94f6
--- /dev/null
+++ b/.env
@@ -0,0 +1 @@
+BASE_URL=http://localhost:8080
\ No newline at end of file
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 000000000..6f40582dd
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1,15 @@
+/* eslint-env node */
+require('@rushstack/eslint-patch/modern-module-resolution')
+
+module.exports = {
+ root: true,
+ 'extends': [
+ 'plugin:vue/vue3-essential',
+ 'eslint:recommended',
+ '@vue/eslint-config-typescript',
+ '@vue/eslint-config-prettier/skip-formatting'
+ ],
+ parserOptions: {
+ ecmaVersion: 'latest'
+ }
+}
diff --git a/.gitignore b/.gitignore
index 2f17e952b..ee107188d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,44 +1,30 @@
-# Compiled source #
-###################
-*.com
-*.class
-*.dll
-*.exe
-*.o
-*.so
-
-# Packages #
-############
-# it's better to unpack these files and commit the raw source
-# git has its own built in compression methods
-*.7z
-*.dmg
-*.gz
-*.iso
-*.jar
-*.rar
-*.tar
-*.zip
-
-# Logs and databases #
-######################
+# Logs
+logs
*.log
-*.sql
-*.sqlite
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
-# OS generated files #
-######################
+node_modules
.DS_Store
-.DS_Store?
-._*
-.Spotlight-V100
-.Trashes
-Icon?
-ehthumbs.db
-Thumbs.db
+dist
+dist-ssr
+coverage
+*.local
+package-lock.json
+/cypress/videos/
+/cypress/screenshots/
-# Custom #
-######################
-*.sass-cache*
-node_modules
-/.idea
\ No newline at end of file
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+*.tsbuildinfo
\ No newline at end of file
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 000000000..66e23359c
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,8 @@
+{
+ "$schema": "https://json.schemastore.org/prettierrc",
+ "semi": false,
+ "tabWidth": 2,
+ "singleQuote": true,
+ "printWidth": 100,
+ "trailingComma": "none"
+}
\ No newline at end of file
diff --git a/env.d.ts b/env.d.ts
new file mode 100644
index 000000000..11f02fe2a
--- /dev/null
+++ b/env.d.ts
@@ -0,0 +1 @@
+///
{{ item.description }}
+ +Maecenas nec semper ante, pellentesque posuere lorem. Nullam ipsum massa, consequat eget urna ut, pulvinar dignissim lorem. Nulla facilisi. Nam mattis eleifend metus. Fusce at commodo lorem. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus pellentesque elit sem, vel blandit posuere.
" + }, + { + "title": "Section 2", + "content": "Mauris a orci sodales, scelerisque velit vitae, gravida nisl. Ut non laoreet eros, vel laoreet nisi. Praesent sed dolor dui. Proin non fringilla quam. Aliquam erat volutpat. Vestibulum vel arcu semper, lobortis turpis ac, ultricies nisi. Praesent id.
" + }, + { + "title": "Section 3", + "content": "Sed elementum sapien ut sapien imperdiet, eu venenatis enim rhoncus. Praesent euismod tincidunt rhoncus. Duis cras amet:
Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est.
Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
" + } +] diff --git a/src/constants/listSection.json b/src/constants/listSection.json new file mode 100644 index 000000000..cc4c72c4f --- /dev/null +++ b/src/constants/listSection.json @@ -0,0 +1,19 @@ +[ + { + "id": 1, + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim adminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", + "imageUrl": "https://via.placeholder.com/400x300" + }, + { + "id": 2, + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim adminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", + + "imageUrl": "https://via.placeholder.com/400x300" + }, + { + "id": 3, + "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim adminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", + + "imageUrl": "https://via.placeholder.com/400x300" + } +] diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 000000000..18a832b11 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,11 @@ +import './assets/main.css' +import './assets/tailwind.css' +import { createApp } from 'vue' +import App from './App.vue' +import router from './router' + +const app = createApp(App) + +app.use(router) + +app.mount('#app') diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 000000000..ad41ca32c --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,24 @@ +import { createRouter, createWebHistory } from 'vue-router' +import ExerciseOne from '../views/ExerciseOne.vue' +import ExerciseTwo from '../views/ExerciseTwo.vue' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + name: 'ExerciseOne', + component: ExerciseOne + }, + { + path: '/exercise-two', + name: 'ExerciseTwo', + // route level code-splitting + // this generates a separate chunk (About.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: ExerciseTwo + } + ] +}) + +export default router diff --git a/src/types/dataTypes.ts b/src/types/dataTypes.ts new file mode 100644 index 000000000..8326acf9c --- /dev/null +++ b/src/types/dataTypes.ts @@ -0,0 +1,11 @@ +export interface DataItem { + title: string + content: string +} +export interface CardItem { + description: string + imageUrl: string + id: number +} + +export type CardType = CardItem[] diff --git a/src/views/ExerciseOne.vue b/src/views/ExerciseOne.vue new file mode 100644 index 000000000..ce7c74072 --- /dev/null +++ b/src/views/ExerciseOne.vue @@ -0,0 +1,17 @@ + +