my-cloud-devops-consulting 1.1.202507022317__tar.gz → 1.1.202507040019__tar.gz
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.
- {my-cloud-devops-consulting-1.1.202507022317/my_cloud_devops_consulting.egg-info → my-cloud-devops-consulting-1.1.202507040019}/PKG-INFO +1 -1
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019/my_cloud_devops_consulting.egg-info}/PKG-INFO +1 -1
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/my_cloud_devops_consulting.egg-info/SOURCES.txt +2 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/css/index.css +16 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/css/main.css +66 -0
- my-cloud-devops-consulting-1.1.202507040019/static/js/counter.js +19 -0
- my-cloud-devops-consulting-1.1.202507040019/static/js/typing.js +40 -0
- my-cloud-devops-consulting-1.1.202507040019/templates/about.html +35 -0
- my-cloud-devops-consulting-1.1.202507040019/templates/assessment.html +22 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/templates/base.html +25 -1
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/templates/index.html +69 -7
- my-cloud-devops-consulting-1.1.202507040019/test/test.py +9 -0
- my-cloud-devops-consulting-1.1.202507022317/templates/about.html +0 -52
- my-cloud-devops-consulting-1.1.202507022317/templates/assessment.html +0 -33
- my-cloud-devops-consulting-1.1.202507022317/test/test.py +0 -10
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/MANIFEST.in +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/README.md +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/app.py +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/my_cloud_devops_consulting.egg-info/dependency_links.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/my_cloud_devops_consulting.egg-info/requires.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/my_cloud_devops_consulting.egg-info/top_level.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/setup.cfg +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/setup.py +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/css/about.css +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/css/assessment.css +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/css/contact-form.css +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/css/login.css +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/css/register.css +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/css/services.css +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/images/image.jpg +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/images/whatspp.jpeg +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/js/index.js +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/js/login.js +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/js/main.js +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/js/register.js +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/static/js/services.js +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/templates/contact-form.html +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/templates/login.html +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/templates/private-videos.html +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/templates/register.html +0 -0
- {my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/templates/services.html +0 -0
@@ -17,11 +17,13 @@ static/css/register.css
|
|
17
17
|
static/css/services.css
|
18
18
|
static/images/image.jpg
|
19
19
|
static/images/whatspp.jpeg
|
20
|
+
static/js/counter.js
|
20
21
|
static/js/index.js
|
21
22
|
static/js/login.js
|
22
23
|
static/js/main.js
|
23
24
|
static/js/register.js
|
24
25
|
static/js/services.js
|
26
|
+
static/js/typing.js
|
25
27
|
templates/about.html
|
26
28
|
templates/assessment.html
|
27
29
|
templates/base.html
|
@@ -276,3 +276,19 @@ nav ul.visible {
|
|
276
276
|
min-height: 180px;
|
277
277
|
}
|
278
278
|
}
|
279
|
+
|
280
|
+
#dynamic-headline::after {
|
281
|
+
content: "|";
|
282
|
+
animation: blink 1s infinite;
|
283
|
+
margin-left: 5px;
|
284
|
+
}
|
285
|
+
|
286
|
+
@keyframes blink {
|
287
|
+
0%,
|
288
|
+
100% {
|
289
|
+
opacity: 1;
|
290
|
+
}
|
291
|
+
50% {
|
292
|
+
opacity: 0;
|
293
|
+
}
|
294
|
+
}
|
@@ -95,3 +95,69 @@ a:hover {
|
|
95
95
|
nav ul li a i {
|
96
96
|
margin-right: 6px;
|
97
97
|
}
|
98
|
+
|
99
|
+
.floating-shape {
|
100
|
+
position: absolute;
|
101
|
+
border-radius: 50%;
|
102
|
+
background: radial-gradient(circle at center, #00b4d8, #0077b6);
|
103
|
+
width: 200px;
|
104
|
+
height: 200px;
|
105
|
+
opacity: 0.3;
|
106
|
+
animation: float 8s ease-in-out infinite;
|
107
|
+
z-index: 0;
|
108
|
+
}
|
109
|
+
|
110
|
+
.floating-shape.one {
|
111
|
+
top: -50px;
|
112
|
+
left: -50px;
|
113
|
+
}
|
114
|
+
|
115
|
+
.floating-shape.two {
|
116
|
+
bottom: -60px;
|
117
|
+
right: -40px;
|
118
|
+
}
|
119
|
+
|
120
|
+
@keyframes float {
|
121
|
+
0% {
|
122
|
+
transform: translateY(0px) scale(1);
|
123
|
+
}
|
124
|
+
50% {
|
125
|
+
transform: translateY(-30px) scale(1.05);
|
126
|
+
}
|
127
|
+
100% {
|
128
|
+
transform: translateY(0px) scale(1);
|
129
|
+
}
|
130
|
+
}
|
131
|
+
|
132
|
+
.floating-shape {
|
133
|
+
position: absolute;
|
134
|
+
width: 60px;
|
135
|
+
height: 60px;
|
136
|
+
border-radius: 50%;
|
137
|
+
opacity: 0.2;
|
138
|
+
animation: float 6s ease-in-out infinite;
|
139
|
+
z-index: 0;
|
140
|
+
}
|
141
|
+
|
142
|
+
.floating-shape.one {
|
143
|
+
top: 20px;
|
144
|
+
left: 15%;
|
145
|
+
background: radial-gradient(circle at center, #00c6ff, #0072ff);
|
146
|
+
}
|
147
|
+
|
148
|
+
.floating-shape.two {
|
149
|
+
bottom: 30px;
|
150
|
+
right: 10%;
|
151
|
+
background: radial-gradient(circle at center, #ff6a00, #ee0979);
|
152
|
+
animation-delay: 3s;
|
153
|
+
}
|
154
|
+
|
155
|
+
@keyframes float {
|
156
|
+
0%,
|
157
|
+
100% {
|
158
|
+
transform: translateY(0px);
|
159
|
+
}
|
160
|
+
50% {
|
161
|
+
transform: translateY(-20px);
|
162
|
+
}
|
163
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
document.addEventListener("DOMContentLoaded", () => {
|
2
|
+
const counters = document.querySelectorAll(".counter");
|
3
|
+
counters.forEach(counter => {
|
4
|
+
const updateCount = () => {
|
5
|
+
const target = +counter.getAttribute("data-target");
|
6
|
+
const count = +counter.innerText;
|
7
|
+
const increment = target / 200; // smaller = slower
|
8
|
+
|
9
|
+
if (count < target) {
|
10
|
+
counter.innerText = Math.ceil(count + increment);
|
11
|
+
setTimeout(updateCount, 20);
|
12
|
+
} else {
|
13
|
+
counter.innerText = target;
|
14
|
+
}
|
15
|
+
};
|
16
|
+
updateCount();
|
17
|
+
});
|
18
|
+
});
|
19
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
document.addEventListener("DOMContentLoaded", () => {
|
2
|
+
const text = [
|
3
|
+
"Empowering Your Cloud Journey 🚀",
|
4
|
+
"Automate. Scale. Secure. 🔐",
|
5
|
+
"From Dev to Ops — Faster ⚙️",
|
6
|
+
];
|
7
|
+
let i = 0;
|
8
|
+
let j = 0;
|
9
|
+
let isDeleting = false;
|
10
|
+
const element = document.getElementById("dynamic-headline");
|
11
|
+
|
12
|
+
function typeEffect() {
|
13
|
+
const currentPhrase = text[i];
|
14
|
+
const fullLength = currentPhrase.length;
|
15
|
+
|
16
|
+
if (!isDeleting) {
|
17
|
+
j++;
|
18
|
+
} else {
|
19
|
+
j--;
|
20
|
+
}
|
21
|
+
|
22
|
+
element.innerText = currentPhrase.substring(0, j);
|
23
|
+
|
24
|
+
let delay = isDeleting ? 80 : 160; // base typing/deleting speed
|
25
|
+
|
26
|
+
if (!isDeleting && j === fullLength) {
|
27
|
+
isDeleting = true;
|
28
|
+
delay = 2000; // pause after typing
|
29
|
+
} else if (isDeleting && j === 0) {
|
30
|
+
isDeleting = false;
|
31
|
+
i = (i + 1) % text.length;
|
32
|
+
delay = 600; // pause before next phrase
|
33
|
+
}
|
34
|
+
|
35
|
+
setTimeout(typeEffect, delay);
|
36
|
+
}
|
37
|
+
|
38
|
+
typeEffect();
|
39
|
+
});
|
40
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{% extends "base.html" %} {% block main %}
|
2
|
+
<main class="container my-5">
|
3
|
+
<section class="about-hero">
|
4
|
+
<div class="about-container">
|
5
|
+
<h1>🚀 About CDC Firm</h1>
|
6
|
+
<p>
|
7
|
+
At CDC Firm, we are a passionate team of cloud and DevOps engineers
|
8
|
+
committed to helping businesses embrace modern, scalable, and secure
|
9
|
+
solutions.
|
10
|
+
</p>
|
11
|
+
<p>
|
12
|
+
Our expertise spans across cloud architecture, CI/CD automation,
|
13
|
+
Kubernetes deployments, infrastructure-as-code, and DevSecOps practices
|
14
|
+
— all tailored to accelerate your digital transformation.
|
15
|
+
</p>
|
16
|
+
|
17
|
+
{% if message %}
|
18
|
+
<p style="font-weight: bold; color: hotpink">{{ message }}</p>
|
19
|
+
{% endif %}
|
20
|
+
|
21
|
+
<form action="{{ url_for('about') }}" method="post">
|
22
|
+
<label for="mood">What's your mood?</label>
|
23
|
+
<input
|
24
|
+
type="text"
|
25
|
+
name="mood"
|
26
|
+
id="mood"
|
27
|
+
placeholder="excited / curious / other"
|
28
|
+
required
|
29
|
+
/>
|
30
|
+
<button type="submit">Submit</button>
|
31
|
+
</form>
|
32
|
+
</div>
|
33
|
+
</section>
|
34
|
+
</main>
|
35
|
+
{% endblock %}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{% extends "base.html" %} {% block main %}
|
2
|
+
<main class="container my-5">
|
3
|
+
<h1>Cloud Readiness Assessment</h1>
|
4
|
+
|
5
|
+
<form method="POST" class="mb-4">
|
6
|
+
<label for="client_name">Client Name:</label>
|
7
|
+
<input type="text" name="client_name" id="client_name" required />
|
8
|
+
|
9
|
+
<label for="score">Readiness Score (0–100):</label>
|
10
|
+
<input type="number" name="score" id="score" required />
|
11
|
+
|
12
|
+
<button type="submit">Assess</button>
|
13
|
+
</form>
|
14
|
+
|
15
|
+
{% if result %}
|
16
|
+
<div class="result">
|
17
|
+
<h2>Assessment Result:</h2>
|
18
|
+
<p>{{ result }}</p>
|
19
|
+
</div>
|
20
|
+
{% endif %}
|
21
|
+
</main>
|
22
|
+
{% endblock %}
|
@@ -14,7 +14,6 @@
|
|
14
14
|
referrerpolicy="no-referrer"
|
15
15
|
/>
|
16
16
|
|
17
|
-
<!-- ✅ Core CSS -->
|
18
17
|
<link
|
19
18
|
rel="stylesheet"
|
20
19
|
href="{{ url_for('static', filename='css/main.css') }}"
|
@@ -23,6 +22,8 @@
|
|
23
22
|
rel="stylesheet"
|
24
23
|
href="{{ url_for('static', filename='css/index.css') }}"
|
25
24
|
/>
|
25
|
+
<!-- ✅ AOS Animation Styles -->
|
26
|
+
<link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet" />
|
26
27
|
|
27
28
|
<!-- ✅ Load services.css only on /services route -->
|
28
29
|
{% if request.endpoint == 'services' %}
|
@@ -40,6 +41,14 @@
|
|
40
41
|
/>
|
41
42
|
{% endif %}
|
42
43
|
|
44
|
+
<!-- ✅ Load about.css only on /about route -->
|
45
|
+
{% if request.endpoint == 'about' %}
|
46
|
+
<link
|
47
|
+
rel="stylesheet"
|
48
|
+
href="{{ url_for('static', filename='css/about.css') }}"
|
49
|
+
/>
|
50
|
+
{% endif %}
|
51
|
+
|
43
52
|
<style>
|
44
53
|
/* CSS for Moving Image */
|
45
54
|
.moving-image-container {
|
@@ -213,6 +222,21 @@
|
|
213
222
|
></script>
|
214
223
|
<script src="{{ url_for('static', filename='js/main.js') }}"></script>
|
215
224
|
|
225
|
+
<!-- ✅ Load typing.js only on homepage -->
|
226
|
+
{% if request.endpoint == 'home' %}
|
227
|
+
<script src="{{ url_for('static', filename='js/typing.js') }}"></script>
|
228
|
+
<script src="{{ url_for('static', filename='js/counter.js') }}"></script>
|
229
|
+
{% endif %}
|
230
|
+
|
231
|
+
<!-- ✅ AOS Animation Script -->
|
232
|
+
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
|
233
|
+
<script>
|
234
|
+
AOS.init({
|
235
|
+
duration: 800,
|
236
|
+
once: true,
|
237
|
+
});
|
238
|
+
</script>
|
239
|
+
|
216
240
|
<!-- ✅ Tidio Live Chat Widget -->
|
217
241
|
<script
|
218
242
|
src="//code.tidio.co/nm9da68kwarxu4poexeqqsiblocw7heq.js"
|
@@ -2,15 +2,25 @@
|
|
2
2
|
|
3
3
|
<main>
|
4
4
|
<!-- Hero Section -->
|
5
|
-
<section class="hero">
|
6
|
-
|
7
|
-
<
|
5
|
+
<section class="hero-section" style="position: relative; text-align: center; padding: 60px 20px">
|
6
|
+
<!-- ✨ Floating Shapes -->
|
7
|
+
<div class="floating-shape one"></div>
|
8
|
+
<div class="floating-shape two"></div>
|
9
|
+
|
10
|
+
|
11
|
+
<h1 data-aos="fade-up" id="dynamic-headline"></h1>
|
12
|
+
<p data-aos="fade-up" data-aos-delay="200">
|
8
13
|
We specialize in delivering Cloud and DevOps consulting services tailored
|
9
|
-
to
|
14
|
+
to your unique business needs.
|
10
15
|
</p>
|
11
|
-
<
|
12
|
-
|
13
|
-
|
16
|
+
<a
|
17
|
+
href="{{ url_for('services') }}"
|
18
|
+
class="btn btn-primary mt-3"
|
19
|
+
data-aos="zoom-in"
|
20
|
+
data-aos-delay="400"
|
21
|
+
>
|
22
|
+
Explore Our Services
|
23
|
+
</a>
|
14
24
|
</section>
|
15
25
|
|
16
26
|
<!-- add demo -->
|
@@ -101,6 +111,57 @@
|
|
101
111
|
</div>
|
102
112
|
</div>
|
103
113
|
</section>
|
114
|
+
|
115
|
+
<!-- me added -->
|
116
|
+
<!-- Impact Stats Section -->
|
117
|
+
<section
|
118
|
+
class="stats-section"
|
119
|
+
style="background: #f9f9f9; padding: 60px 20px; text-align: center"
|
120
|
+
>
|
121
|
+
<h2 data-aos="fade-up">Our Impact in Numbers</h2>
|
122
|
+
<div
|
123
|
+
class="stats-grid"
|
124
|
+
style="
|
125
|
+
display: flex;
|
126
|
+
justify-content: center;
|
127
|
+
gap: 40px;
|
128
|
+
flex-wrap: wrap;
|
129
|
+
margin-top: 40px;
|
130
|
+
"
|
131
|
+
>
|
132
|
+
<div class="stat" data-aos="fade-up" data-aos-delay="100">
|
133
|
+
<div
|
134
|
+
class="counter"
|
135
|
+
data-target="150"
|
136
|
+
style="font-size: 48px; font-weight: bold"
|
137
|
+
>
|
138
|
+
0
|
139
|
+
</div>
|
140
|
+
<p>Projects Delivered</p>
|
141
|
+
</div>
|
142
|
+
<div class="stat" data-aos="fade-up" data-aos-delay="200">
|
143
|
+
<div
|
144
|
+
class="counter"
|
145
|
+
data-target="95"
|
146
|
+
style="font-size: 48px; font-weight: bold"
|
147
|
+
>
|
148
|
+
0
|
149
|
+
</div>
|
150
|
+
<p>Happy Clients</p>
|
151
|
+
</div>
|
152
|
+
<div class="stat" data-aos="fade-up" data-aos-delay="300">
|
153
|
+
<div
|
154
|
+
class="counter"
|
155
|
+
data-target="24"
|
156
|
+
style="font-size: 48px; font-weight: bold"
|
157
|
+
>
|
158
|
+
0
|
159
|
+
</div>
|
160
|
+
<p>Supported Regions</p>
|
161
|
+
</div>
|
162
|
+
</div>
|
163
|
+
</section>
|
164
|
+
|
104
165
|
<!--add testimony-->
|
105
166
|
<section class="testimonials-carousel">
|
106
167
|
<h3>What Our Clients Say</h3>
|
@@ -175,6 +236,7 @@
|
|
175
236
|
</button>
|
176
237
|
</form>
|
177
238
|
</section>
|
239
|
+
|
178
240
|
<!-- Subscription Section -->
|
179
241
|
</main>
|
180
242
|
|
@@ -0,0 +1,9 @@
|
|
1
|
+
def create_hero(name, power, city):
|
2
|
+
return f"Captain {name} has the {power} of fire and protects New {city}"
|
3
|
+
message = create_hero("Flames", "power","York")
|
4
|
+
print(message)
|
5
|
+
|
6
|
+
def hero_intro(hero_description):
|
7
|
+
return message
|
8
|
+
new_message = hero_intro(message)
|
9
|
+
print(new_message)
|
@@ -1,52 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8" />
|
5
|
-
<title>About Us - CDC Firm</title>
|
6
|
-
<link
|
7
|
-
rel="stylesheet"
|
8
|
-
href="{{ url_for('static', filename='css/main.css') }}"
|
9
|
-
/>
|
10
|
-
<link
|
11
|
-
rel="stylesheet"
|
12
|
-
href="{{ url_for('static', filename='css/about.css') }}"
|
13
|
-
/>
|
14
|
-
</head>
|
15
|
-
|
16
|
-
<body>
|
17
|
-
<section class="about-hero">
|
18
|
-
<div class="about-container">
|
19
|
-
<h1>🚀 About CDC Firm</h1>
|
20
|
-
<p>
|
21
|
-
At CDC Firm, we are a passionate team of cloud and DevOps engineers
|
22
|
-
committed to helping businesses embrace modern, scalable, and secure
|
23
|
-
solutions.
|
24
|
-
</p>
|
25
|
-
<p>
|
26
|
-
Our expertise spans across cloud architecture, CI/CD automation,
|
27
|
-
Kubernetes deployments, infrastructure-as-code, and DevSecOps
|
28
|
-
practices — all tailored to accelerate your digital transformation.
|
29
|
-
</p>
|
30
|
-
<p style="font-weight: bold; color: hotpink">{{ message }}</p>
|
31
|
-
|
32
|
-
<!-- templates/about.html -->
|
33
|
-
<form action="/about" method="post">
|
34
|
-
<label for="mood">What's your mood?</label>
|
35
|
-
<input
|
36
|
-
type="text"
|
37
|
-
name="mood"
|
38
|
-
placeholder="excited / curious / other"
|
39
|
-
required
|
40
|
-
/>
|
41
|
-
<button type="submit">Submit</button>
|
42
|
-
</form>
|
43
|
-
|
44
|
-
<hr />
|
45
|
-
|
46
|
-
{% if message %}
|
47
|
-
<p><strong>Message:</strong> {{ message }}</p>
|
48
|
-
{% endif %}
|
49
|
-
</div>
|
50
|
-
</section>
|
51
|
-
</body>
|
52
|
-
</html>
|
@@ -1,33 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8" />
|
5
|
-
<title>Client Cloud Readiness Assessment</title>
|
6
|
-
<link
|
7
|
-
rel="stylesheet"
|
8
|
-
href="{{ url_for('static', filename='css/assessment.css') }}"
|
9
|
-
/>
|
10
|
-
</head>
|
11
|
-
<body>
|
12
|
-
<div class="container">
|
13
|
-
<h1>Cloud Readiness Assessment</h1>
|
14
|
-
|
15
|
-
<form method="POST">
|
16
|
-
<label for="client_name">Client Name:</label>
|
17
|
-
<input type="text" name="client_name" id="client_name" required />
|
18
|
-
|
19
|
-
<label for="score">Readiness Score (0–100):</label>
|
20
|
-
<input type="number" name="score" id="score" required />
|
21
|
-
|
22
|
-
<button type="submit">Assess</button>
|
23
|
-
</form>
|
24
|
-
|
25
|
-
{% if result %}
|
26
|
-
<div class="result">
|
27
|
-
<h2>Assessment Result:</h2>
|
28
|
-
<p>{{ result }}</p>
|
29
|
-
</div>
|
30
|
-
{% endif %}
|
31
|
-
</div>
|
32
|
-
</body>
|
33
|
-
</html>
|
File without changes
|
File without changes
|
{my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/app.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{my-cloud-devops-consulting-1.1.202507022317 → my-cloud-devops-consulting-1.1.202507040019}/setup.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|