create-autostack 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +237 -0
- package/bin/index.js +675 -0
- package/lib/PackageManagerClass.js +185 -0
- package/package.json +55 -0
- package/templates/assets/fastapi.svg +1 -0
- package/templates/assets/flask.svg +1 -0
- package/templates/assets/mongodb.svg +1 -0
- package/templates/assets/mysql.svg +1 -0
- package/templates/assets/nodejs.svg +1 -0
- package/templates/assets/postgresql.svg +1 -0
- package/templates/backend/FASTAPI/MONGODB/.env +1 -0
- package/templates/backend/FASTAPI/MONGODB/config.py +26 -0
- package/templates/backend/FASTAPI/MONGODB/main.py +32 -0
- package/templates/backend/FASTAPI/MONGODB/models.py +56 -0
- package/templates/backend/FASTAPI/MONGODB/requirements.txt +6 -0
- package/templates/backend/FASTAPI/MONGODB/routes.py +189 -0
- package/templates/backend/FASTAPI/MONGODB/schemas.py +31 -0
- package/templates/backend/FASTAPI/MYSQL/.env +5 -0
- package/templates/backend/FASTAPI/MYSQL/config.py +29 -0
- package/templates/backend/FASTAPI/MYSQL/main.py +32 -0
- package/templates/backend/FASTAPI/MYSQL/models.py +31 -0
- package/templates/backend/FASTAPI/MYSQL/requirements.txt +6 -0
- package/templates/backend/FASTAPI/MYSQL/routes.py +180 -0
- package/templates/backend/FASTAPI/MYSQL/schemas.py +36 -0
- package/templates/backend/FASTAPI/POSTGRESQL/.env +5 -0
- package/templates/backend/FASTAPI/POSTGRESQL/config.py +29 -0
- package/templates/backend/FASTAPI/POSTGRESQL/main.py +32 -0
- package/templates/backend/FASTAPI/POSTGRESQL/models.py +31 -0
- package/templates/backend/FASTAPI/POSTGRESQL/requirements.txt +6 -0
- package/templates/backend/FASTAPI/POSTGRESQL/routes.py +180 -0
- package/templates/backend/FASTAPI/POSTGRESQL/schemas.py +36 -0
- package/templates/backend/FLASK/MONGODB/.env +6 -0
- package/templates/backend/FLASK/MONGODB/config.py +27 -0
- package/templates/backend/FLASK/MONGODB/main.py +5 -0
- package/templates/backend/FLASK/MONGODB/models.py +16 -0
- package/templates/backend/FLASK/MONGODB/requirements.txt +6 -0
- package/templates/backend/FLASK/MONGODB/routes.py +137 -0
- package/templates/backend/FLASK/MYSQL/.env +7 -0
- package/templates/backend/FLASK/MYSQL/config.py +24 -0
- package/templates/backend/FLASK/MYSQL/main.py +8 -0
- package/templates/backend/FLASK/MYSQL/models.py +26 -0
- package/templates/backend/FLASK/MYSQL/requirements.txt +6 -0
- package/templates/backend/FLASK/MYSQL/routes.py +135 -0
- package/templates/backend/FLASK/POSTGRESQL/.env +5 -0
- package/templates/backend/FLASK/POSTGRESQL/config.py +24 -0
- package/templates/backend/FLASK/POSTGRESQL/main.py +7 -0
- package/templates/backend/FLASK/POSTGRESQL/models.py +26 -0
- package/templates/backend/FLASK/POSTGRESQL/requirements.txt +6 -0
- package/templates/backend/FLASK/POSTGRESQL/routes.py +134 -0
- package/templates/backend/NODEJS/MONGODB/config/dbConn.js +11 -0
- package/templates/backend/NODEJS/MONGODB/controllers/noteController.js +79 -0
- package/templates/backend/NODEJS/MONGODB/controllers/userController.js +79 -0
- package/templates/backend/NODEJS/MONGODB/index.js +39 -0
- package/templates/backend/NODEJS/MONGODB/models/noteModel.js +17 -0
- package/templates/backend/NODEJS/MONGODB/models/userModel.js +17 -0
- package/templates/backend/NODEJS/MYSQL/config/dbConn.js +20 -0
- package/templates/backend/NODEJS/MYSQL/controllers/noteController.js +97 -0
- package/templates/backend/NODEJS/MYSQL/controllers/userController.js +98 -0
- package/templates/backend/NODEJS/MYSQL/index.js +39 -0
- package/templates/backend/NODEJS/MYSQL/models.txt +3 -0
- package/templates/backend/NODEJS/POSTGRESQL/config/dbConn.js +28 -0
- package/templates/backend/NODEJS/POSTGRESQL/controllers/noteController.js +91 -0
- package/templates/backend/NODEJS/POSTGRESQL/controllers/userController.js +92 -0
- package/templates/backend/NODEJS/POSTGRESQL/index.js +39 -0
- package/templates/backend/NODEJS/POSTGRESQL/models.txt +3 -0
- package/templates/backend/NODEJS/common/middleware/upstash.js +12 -0
- package/templates/backend/NODEJS/common/routes/noteRoutes.js +22 -0
- package/templates/backend/NODEJS/common/routes/userRoutes.js +22 -0
- package/templates/frontend/PREACT/src/app.jsx +103 -0
- package/templates/frontend/PREACT/vite.config.js +8 -0
- package/templates/frontend/PREACT-TS/src/app.tsx +112 -0
- package/templates/frontend/PREACT-TS/vite.config.ts +8 -0
- package/templates/frontend/REACT/src/App.css +27 -0
- package/templates/frontend/REACT/src/App.jsx +105 -0
- package/templates/frontend/REACT/vite.config.js +8 -0
- package/templates/frontend/REACT-SWC/src/App.css +27 -0
- package/templates/frontend/REACT-SWC/src/App.jsx +105 -0
- package/templates/frontend/REACT-SWC/vite.config.js +8 -0
- package/templates/frontend/REACT-SWC-TS/src/App.css +27 -0
- package/templates/frontend/REACT-SWC-TS/src/App.tsx +114 -0
- package/templates/frontend/REACT-SWC-TS/vite.config.ts +8 -0
- package/templates/frontend/REACT-TS/src/App.css +27 -0
- package/templates/frontend/REACT-TS/src/App.tsx +114 -0
- package/templates/frontend/REACT-TS/vite.config.ts +8 -0
- package/templates/frontend/SOLID/src/App.jsx +104 -0
- package/templates/frontend/SOLID/vite.config.js +7 -0
- package/templates/frontend/SOLID-TS/src/App.tsx +116 -0
- package/templates/frontend/SOLID-TS/vite.config.ts +7 -0
- package/templates/frontend/SVELTE/src/App.svelte +104 -0
- package/templates/frontend/SVELTE/vite.config.js +8 -0
- package/templates/frontend/SVELTE-TS/src/App.svelte +116 -0
- package/templates/frontend/SVELTE-TS/vite.config.ts +8 -0
- package/templates/frontend/VUE/src/App.vue +96 -0
- package/templates/frontend/VUE/vite.config.js +8 -0
- package/templates/frontend/VUE-TS/src/App.vue +112 -0
- package/templates/frontend/VUE-TS/vite.config.ts +8 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { onMount } from 'svelte'
|
|
3
|
+
import svelteLogo from './assets/svelte.svg'
|
|
4
|
+
import backendLogo from './assets/backend.svg'
|
|
5
|
+
import dbLogo from './assets/database.svg'
|
|
6
|
+
import viteLogo from '/vite.svg'
|
|
7
|
+
|
|
8
|
+
interface AutoStackAPI {
|
|
9
|
+
message: string
|
|
10
|
+
backend: string
|
|
11
|
+
database: string
|
|
12
|
+
filepath: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
let data: AutoStackAPI | null = null
|
|
16
|
+
let loading: boolean = true
|
|
17
|
+
let error: string | null = null
|
|
18
|
+
|
|
19
|
+
onMount(() => {
|
|
20
|
+
fetch('http://localhost:5000/autostack')
|
|
21
|
+
.then((res) => {
|
|
22
|
+
if (!res.ok) {
|
|
23
|
+
throw new Error(`HTTP error! status: ${res.status}`)
|
|
24
|
+
}
|
|
25
|
+
return res.json()
|
|
26
|
+
})
|
|
27
|
+
.then((responseData: AutoStackAPI) => {
|
|
28
|
+
data = responseData
|
|
29
|
+
loading = false
|
|
30
|
+
})
|
|
31
|
+
.catch((err: Error) => {
|
|
32
|
+
error = err.message
|
|
33
|
+
loading = false
|
|
34
|
+
})
|
|
35
|
+
})
|
|
36
|
+
</script>
|
|
37
|
+
|
|
38
|
+
<div class="min-h-screen bg-linear-to-br from-gray-900 via-gray-800 to-gray-900 text-white flex items-center justify-center p-8">
|
|
39
|
+
<div class="max-w-4xl w-full">
|
|
40
|
+
|
|
41
|
+
<div class="flex justify-center items-center gap-8 mb-12">
|
|
42
|
+
<a href="https://vitejs.dev" target="_blank" rel="noopener noreferrer"
|
|
43
|
+
class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#646cffaa]">
|
|
44
|
+
<img src={viteLogo} class="h-24 w-24" alt="Vite logo" />
|
|
45
|
+
</a>
|
|
46
|
+
<span class="text-4xl text-gray-500">+</span>
|
|
47
|
+
<a href="https://svelte.dev" target="_blank" rel="noopener noreferrer"
|
|
48
|
+
class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#ff3e00aa] animate-[spin_20s_linear_infinite]">
|
|
49
|
+
<img src={svelteLogo} class="h-24 w-24" alt="Svelte logo" />
|
|
50
|
+
</a>
|
|
51
|
+
<span class="text-4xl text-gray-500">+</span>
|
|
52
|
+
<a href="#" class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#10b981aa]">
|
|
53
|
+
<img src={backendLogo} class="h-24 w-24" alt="Backend logo" />
|
|
54
|
+
</a>
|
|
55
|
+
<span class="text-4xl text-gray-500">+</span>
|
|
56
|
+
<a href="#" class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#3b82f6aa]">
|
|
57
|
+
<img src={dbLogo} class="h-24 w-24" alt="Database logo" />
|
|
58
|
+
</a>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
<h1 class="text-5xl font-bold text-center mb-8 text-white bg-clip-text text-transparent">
|
|
62
|
+
Vite + Svelte + {data?.backend || '...'} + {data?.database || '...'}
|
|
63
|
+
</h1>
|
|
64
|
+
|
|
65
|
+
<div class="bg-gray-800/50 backdrop-blur-sm rounded-2xl p-8 mb-8 border border-gray-700 shadow-2xl">
|
|
66
|
+
{#if loading}
|
|
67
|
+
<div class="flex items-center justify-center gap-3">
|
|
68
|
+
<div class="w-5 h-5 border-3 border-blue-500 border-t-transparent rounded-full animate-spin"></div>
|
|
69
|
+
<p class="text-gray-400">Connecting to backend...</p>
|
|
70
|
+
</div>
|
|
71
|
+
{/if}
|
|
72
|
+
|
|
73
|
+
{#if error}
|
|
74
|
+
<div class="text-center">
|
|
75
|
+
<p class="text-red-400 mb-2">⚠️ Connection Failed</p>
|
|
76
|
+
<p class="text-sm text-gray-500">{error}</p>
|
|
77
|
+
<p class="text-xs text-gray-600 mt-3">Make sure your backend server is running on port 5000</p>
|
|
78
|
+
</div>
|
|
79
|
+
{/if}
|
|
80
|
+
|
|
81
|
+
{#if !loading && !error && data}
|
|
82
|
+
<div class="text-center">
|
|
83
|
+
<div class="inline-flex items-center gap-2 px-4 py-2 bg-green-500/10 border border-green-500/20 rounded-full mb-4">
|
|
84
|
+
<span class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></span>
|
|
85
|
+
<span class="text-green-400 text-sm font-medium">Connected</span>
|
|
86
|
+
</div>
|
|
87
|
+
<p class="text-2xl text-gray-300 mb-2">{data.message}</p>
|
|
88
|
+
<p class="text-sm text-gray-500">Your full-stack app is up and running! ✨</p>
|
|
89
|
+
</div>
|
|
90
|
+
{/if}
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
<div class="bg-gray-800/30 rounded-xl p-6 border border-gray-700/50">
|
|
94
|
+
<h2 class="text-xl font-semibold mb-4 text-gray-300 text-center">Quick Start</h2>
|
|
95
|
+
<div class="space-y-3 text-sm text-gray-400">
|
|
96
|
+
<div class="flex justify-center items-center gap-3">
|
|
97
|
+
<p>Edit <code class="px-2 py-1 bg-gray-700 rounded text-blue-300">src/App.svelte</code> to start building your frontend</p>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="flex justify-center items-center gap-3">
|
|
100
|
+
<p>Modify <code class="px-2 py-1 bg-gray-700 rounded text-blue-300">{data?.filepath}</code> to add your API routes</p>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="flex justify-center items-center gap-3">
|
|
103
|
+
<p>Check the console for any errors or messages</p>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<p class="text-center text-gray-500 text-sm mt-8">
|
|
109
|
+
Created with ❤️ using AutoStack
|
|
110
|
+
</p>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<style>
|
|
115
|
+
@import './app.css';
|
|
116
|
+
</style>
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ref, onMounted } from 'vue'
|
|
3
|
+
import vueLogo from './assets/vue.svg'
|
|
4
|
+
import backendLogo from './assets/backend.svg'
|
|
5
|
+
import dbLogo from './assets/database.svg'
|
|
6
|
+
import viteLogo from '/vite.svg'
|
|
7
|
+
|
|
8
|
+
const data = ref(null)
|
|
9
|
+
const loading = ref(true)
|
|
10
|
+
const error = ref(null)
|
|
11
|
+
|
|
12
|
+
onMounted(() => {
|
|
13
|
+
fetch('http://localhost:5000/autostack')
|
|
14
|
+
.then(res => res.json())
|
|
15
|
+
.then(responseData => {
|
|
16
|
+
data.value = responseData
|
|
17
|
+
loading.value = false
|
|
18
|
+
})
|
|
19
|
+
.catch(err => {
|
|
20
|
+
error.value = err.message
|
|
21
|
+
loading.value = false
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
27
|
+
<div class="min-h-screen bg-linear-to-br from-gray-900 via-gray-800 to-gray-900 text-white flex items-center justify-center p-8">
|
|
28
|
+
<div class="max-w-4xl w-full">
|
|
29
|
+
|
|
30
|
+
<div class="flex justify-center items-center gap-8 mb-12">
|
|
31
|
+
<a href="https://vitejs.dev" target="_blank" rel="noopener noreferrer"
|
|
32
|
+
class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#646cffaa]">
|
|
33
|
+
<img :src="viteLogo" class="h-24 w-24" alt="Vite logo" />
|
|
34
|
+
</a>
|
|
35
|
+
<span class="text-4xl text-gray-500">+</span>
|
|
36
|
+
<a href="https://vuejs.org" target="_blank" rel="noopener noreferrer"
|
|
37
|
+
class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#42b883aa]">
|
|
38
|
+
<img :src="vueLogo" class="h-24 w-24" alt="Vue logo" />
|
|
39
|
+
</a>
|
|
40
|
+
<span class="text-4xl text-gray-500">+</span>
|
|
41
|
+
<a href="#" class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#10b981aa]">
|
|
42
|
+
<img :src="backendLogo" class="h-24 w-24" alt="Backend logo" />
|
|
43
|
+
</a>
|
|
44
|
+
<span class="text-4xl text-gray-500">+</span>
|
|
45
|
+
<a href="#" class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#3b82f6aa]">
|
|
46
|
+
<img :src="dbLogo" class="h-24 w-24" alt="Database logo" />
|
|
47
|
+
</a>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<h1 class="text-5xl font-bold text-center mb-8 text-white bg-clip-text text-transparent">
|
|
51
|
+
Vite + Vue + {{ data?.backend || '...' }} + {{ data?.database || '...' }}
|
|
52
|
+
</h1>
|
|
53
|
+
|
|
54
|
+
<div class="bg-gray-800/50 backdrop-blur-sm rounded-2xl p-8 mb-8 border border-gray-700 shadow-2xl">
|
|
55
|
+
<div v-if="loading" class="flex items-center justify-center gap-3">
|
|
56
|
+
<div class="w-5 h-5 border-3 border-blue-500 border-t-transparent rounded-full animate-spin"></div>
|
|
57
|
+
<p class="text-gray-400">Connecting to backend...</p>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
<div v-if="error" class="text-center">
|
|
61
|
+
<p class="text-red-400 mb-2">⚠️ Connection Failed</p>
|
|
62
|
+
<p class="text-sm text-gray-500">{{ error }}</p>
|
|
63
|
+
<p class="text-xs text-gray-600 mt-3">Make sure your backend server is running on port 5000</p>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div v-if="!loading && !error && data" class="text-center">
|
|
67
|
+
<div class="inline-flex items-center gap-2 px-4 py-2 bg-green-500/10 border border-green-500/20 rounded-full mb-4">
|
|
68
|
+
<span class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></span>
|
|
69
|
+
<span class="text-green-400 text-sm font-medium">Connected</span>
|
|
70
|
+
</div>
|
|
71
|
+
<p class="text-2xl text-gray-300 mb-2">{{ data?.message }}</p>
|
|
72
|
+
<p class="text-sm text-gray-500">Your full-stack app is up and running! ✨</p>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<div class="bg-gray-800/30 rounded-xl p-6 border border-gray-700/50">
|
|
77
|
+
<h2 class="text-xl font-semibold mb-4 text-gray-300 text-center">Quick Start</h2>
|
|
78
|
+
<div class="space-y-3 text-sm text-gray-400">
|
|
79
|
+
<div class="flex justify-center items-center gap-3">
|
|
80
|
+
<p>Edit <code class="px-2 py-1 bg-gray-700 rounded text-blue-300">src/App.vue</code> to start building your frontend</p>
|
|
81
|
+
</div>
|
|
82
|
+
<div class="flex justify-center items-center gap-3">
|
|
83
|
+
<p>Modify <code class="px-2 py-1 bg-gray-700 rounded text-blue-300">{{ data?.filepath }}</code> to add your API routes</p>
|
|
84
|
+
</div>
|
|
85
|
+
<div class="flex justify-center items-center gap-3">
|
|
86
|
+
<p>Check the console for any errors or messages</p>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
<p class="text-center text-gray-500 text-sm mt-8">
|
|
92
|
+
Created with ❤️ using AutoStack
|
|
93
|
+
</p>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</template>
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref, onMounted } from 'vue'
|
|
3
|
+
import vueLogo from './assets/vue.svg'
|
|
4
|
+
import backendLogo from './assets/backend.svg'
|
|
5
|
+
import dbLogo from './assets/database.svg'
|
|
6
|
+
import viteLogo from '/vite.svg'
|
|
7
|
+
|
|
8
|
+
interface AutoStackAPI {
|
|
9
|
+
message: string
|
|
10
|
+
backend: string
|
|
11
|
+
database: string
|
|
12
|
+
filepath: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const data = ref<AutoStackAPI | null>(null)
|
|
16
|
+
const loading = ref<boolean>(true)
|
|
17
|
+
const error = ref<string | null>(null)
|
|
18
|
+
|
|
19
|
+
onMounted(() => {
|
|
20
|
+
fetch('http://localhost:5000/autostack')
|
|
21
|
+
.then((res) => {
|
|
22
|
+
if (!res.ok) {
|
|
23
|
+
throw new Error(`HTTP error! status: ${res.status}`)
|
|
24
|
+
}
|
|
25
|
+
return res.json()
|
|
26
|
+
})
|
|
27
|
+
.then((responseData: AutoStackAPI) => {
|
|
28
|
+
data.value = responseData
|
|
29
|
+
loading.value = false
|
|
30
|
+
})
|
|
31
|
+
.catch((err: Error) => {
|
|
32
|
+
error.value = err.message
|
|
33
|
+
loading.value = false
|
|
34
|
+
})
|
|
35
|
+
})
|
|
36
|
+
</script>
|
|
37
|
+
|
|
38
|
+
<template>
|
|
39
|
+
<div class="min-h-screen bg-linear-to-br from-gray-900 via-gray-800 to-gray-900 text-white flex items-center justify-center p-8">
|
|
40
|
+
<div class="max-w-4xl w-full">
|
|
41
|
+
|
|
42
|
+
<div class="flex justify-center items-center gap-8 mb-12">
|
|
43
|
+
<a href="https://vitejs.dev" target="_blank" rel="noopener noreferrer"
|
|
44
|
+
class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#646cffaa]">
|
|
45
|
+
<img :src="viteLogo" class="h-24 w-24" alt="Vite logo" />
|
|
46
|
+
</a>
|
|
47
|
+
<span class="text-4xl text-gray-500">+</span>
|
|
48
|
+
<a href="https://vuejs.org" target="_blank" rel="noopener noreferrer"
|
|
49
|
+
class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#42b883aa]">
|
|
50
|
+
<img :src="vueLogo" class="h-24 w-24" alt="Vue logo" />
|
|
51
|
+
</a>
|
|
52
|
+
<span class="text-4xl text-gray-500">+</span>
|
|
53
|
+
<a href="#" class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#10b981aa]">
|
|
54
|
+
<img :src="backendLogo" class="h-24 w-24" alt="Backend logo" />
|
|
55
|
+
</a>
|
|
56
|
+
<span class="text-4xl text-gray-500">+</span>
|
|
57
|
+
<a href="#" class="transition-transform hover:scale-110 hover:drop-shadow-[0_0_2em_#3b82f6aa]">
|
|
58
|
+
<img :src="dbLogo" class="h-24 w-24" alt="Database logo" />
|
|
59
|
+
</a>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<h1 class="text-5xl font-bold text-center mb-8 text-white bg-clip-text text-transparent">
|
|
63
|
+
Vite + Vue + {{ data?.backend || '...' }} + {{ data?.database || '...' }}
|
|
64
|
+
</h1>
|
|
65
|
+
|
|
66
|
+
<div class="bg-gray-800/50 backdrop-blur-sm rounded-2xl p-8 mb-8 border border-gray-700 shadow-2xl">
|
|
67
|
+
<div v-if="loading" class="flex items-center justify-center gap-3">
|
|
68
|
+
<div class="w-5 h-5 border-3 border-blue-500 border-t-transparent rounded-full animate-spin"></div>
|
|
69
|
+
<p class="text-gray-400">Connecting to backend...</p>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<div v-if="error" class="text-center">
|
|
73
|
+
<p class="text-red-400 mb-2">⚠️ Connection Failed</p>
|
|
74
|
+
<p class="text-sm text-gray-500">{{ error }}</p>
|
|
75
|
+
<p class="text-xs text-gray-600 mt-3">Make sure your backend server is running on port 5000</p>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<div v-if="!loading && !error && data" class="text-center">
|
|
79
|
+
<div class="inline-flex items-center gap-2 px-4 py-2 bg-green-500/10 border border-green-500/20 rounded-full mb-4">
|
|
80
|
+
<span class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></span>
|
|
81
|
+
<span class="text-green-400 text-sm font-medium">Connected</span>
|
|
82
|
+
</div>
|
|
83
|
+
<p class="text-2xl text-gray-300 mb-2">{{ data.message }}</p>
|
|
84
|
+
<p class="text-sm text-gray-500">Your full-stack app is up and running! ✨</p>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<div class="bg-gray-800/30 rounded-xl p-6 border border-gray-700/50">
|
|
89
|
+
<h2 class="text-xl font-semibold mb-4 text-gray-300 text-center">Quick Start</h2>
|
|
90
|
+
<div class="space-y-3 text-sm text-gray-400">
|
|
91
|
+
<div class="flex justify-center items-center gap-3">
|
|
92
|
+
<p>Edit <code class="px-2 py-1 bg-gray-700 rounded text-blue-300">src/App.vue</code> to start building your frontend</p>
|
|
93
|
+
</div>
|
|
94
|
+
<div class="flex justify-center items-center gap-3">
|
|
95
|
+
<p>Modify <code class="px-2 py-1 bg-gray-700 rounded text-blue-300">{{ data?.filepath }}</code> to add your API routes</p>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="flex justify-center items-center gap-3">
|
|
98
|
+
<p>Check the console for any errors or messages</p>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
|
|
103
|
+
<p class="text-center text-gray-500 text-sm mt-8">
|
|
104
|
+
Created with ❤️ using AutoStack
|
|
105
|
+
</p>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
</template>
|
|
109
|
+
|
|
110
|
+
<style scoped>
|
|
111
|
+
@import './App.css';
|
|
112
|
+
</style>
|