my-cloud-devops-consulting 1.1.202506162331__tar.gz → 1.1.202506182347__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.202506162331/my_cloud_devops_consulting.egg-info → my-cloud-devops-consulting-1.1.202506182347}/PKG-INFO +1 -1
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/app.py +12 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347/my_cloud_devops_consulting.egg-info}/PKG-INFO +1 -1
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/my_cloud_devops_consulting.egg-info/SOURCES.txt +2 -0
- my-cloud-devops-consulting-1.1.202506182347/static/css/assessment.css +129 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/css/index.css +17 -0
- my-cloud-devops-consulting-1.1.202506182347/static/css/main.css +93 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/js/main.js +17 -0
- my-cloud-devops-consulting-1.1.202506182347/templates/assessment.html +33 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/templates/base.html +1 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/templates/index.html +18 -0
- my-cloud-devops-consulting-1.1.202506182347/test/test.py +3 -0
- my-cloud-devops-consulting-1.1.202506162331/static/css/main.css +0 -41
- my-cloud-devops-consulting-1.1.202506162331/test/test.py +0 -16
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/MANIFEST.in +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/README.md +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/my_cloud_devops_consulting.egg-info/dependency_links.txt +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/my_cloud_devops_consulting.egg-info/requires.txt +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/my_cloud_devops_consulting.egg-info/top_level.txt +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/setup.cfg +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/setup.py +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/css/about.css +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/css/contact-form.css +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/css/login.css +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/css/register.css +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/css/services.css +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/images/image.jpg +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/images/whatspp.jpeg +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/js/index.js +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/js/login.js +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/js/register.js +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/static/js/services.js +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/templates/about.html +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/templates/contact-form.html +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/templates/login.html +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/templates/private-videos.html +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/templates/register.html +0 -0
- {my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/templates/services.html +0 -0
{my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/app.py
RENAMED
@@ -159,6 +159,18 @@ def about():
|
|
159
159
|
return render_template('about.html', message=message)
|
160
160
|
|
161
161
|
|
162
|
+
@app.route('/assessment', methods=['GET', 'POST'])
|
163
|
+
def assessment():
|
164
|
+
result = None
|
165
|
+
if request.method == 'POST':
|
166
|
+
name = request.form['client_name']
|
167
|
+
score = int(request.form['score'])
|
168
|
+
if score >= 70:
|
169
|
+
result = f"{name} is Cloud Ready ✅"
|
170
|
+
else:
|
171
|
+
result = f"{name} needs more preparation ❌"
|
172
|
+
return render_template('assessment.html', result=result)
|
173
|
+
|
162
174
|
|
163
175
|
if __name__ == '__main__':
|
164
176
|
app.run(debug=True, host='0.0.0.0', port=50)
|
@@ -8,6 +8,7 @@ my_cloud_devops_consulting.egg-info/dependency_links.txt
|
|
8
8
|
my_cloud_devops_consulting.egg-info/requires.txt
|
9
9
|
my_cloud_devops_consulting.egg-info/top_level.txt
|
10
10
|
static/css/about.css
|
11
|
+
static/css/assessment.css
|
11
12
|
static/css/contact-form.css
|
12
13
|
static/css/index.css
|
13
14
|
static/css/login.css
|
@@ -22,6 +23,7 @@ static/js/main.js
|
|
22
23
|
static/js/register.js
|
23
24
|
static/js/services.js
|
24
25
|
templates/about.html
|
26
|
+
templates/assessment.html
|
25
27
|
templates/base.html
|
26
28
|
templates/contact-form.html
|
27
29
|
templates/index.html
|
@@ -0,0 +1,129 @@
|
|
1
|
+
/* body {
|
2
|
+
font-family: Arial, sans-serif;
|
3
|
+
background-color: #f8f9fa;
|
4
|
+
color: #333;
|
5
|
+
}
|
6
|
+
|
7
|
+
.container {
|
8
|
+
width: 60%;
|
9
|
+
margin: 50px auto;
|
10
|
+
background: white;
|
11
|
+
padding: 30px;
|
12
|
+
border-radius: 8px;
|
13
|
+
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
14
|
+
}
|
15
|
+
|
16
|
+
label {
|
17
|
+
display: block;
|
18
|
+
margin-top: 20px;
|
19
|
+
}
|
20
|
+
|
21
|
+
input[type="text"],
|
22
|
+
input[type="number"] {
|
23
|
+
width: 100%;
|
24
|
+
padding: 8px;
|
25
|
+
margin-top: 5px;
|
26
|
+
}
|
27
|
+
|
28
|
+
button {
|
29
|
+
margin-top: 20px;
|
30
|
+
padding: 10px 20px;
|
31
|
+
background-color: #0077cc;
|
32
|
+
color: white;
|
33
|
+
border: none;
|
34
|
+
border-radius: 5px;
|
35
|
+
cursor: pointer;
|
36
|
+
}
|
37
|
+
|
38
|
+
.result {
|
39
|
+
margin-top: 30px;
|
40
|
+
padding: 20px;
|
41
|
+
background-color: #eef;
|
42
|
+
border-left: 5px solid #0077cc;
|
43
|
+
} */
|
44
|
+
body {
|
45
|
+
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
|
46
|
+
background-color: #f0f4f8;
|
47
|
+
color: #333;
|
48
|
+
margin: 0;
|
49
|
+
padding: 0;
|
50
|
+
}
|
51
|
+
|
52
|
+
.container {
|
53
|
+
max-width: 600px;
|
54
|
+
margin: 60px auto;
|
55
|
+
padding: 40px;
|
56
|
+
background: #fff;
|
57
|
+
border-radius: 12px;
|
58
|
+
box-shadow: 0 4px 25px rgba(0, 0, 0, 0.1);
|
59
|
+
}
|
60
|
+
|
61
|
+
h1 {
|
62
|
+
text-align: center;
|
63
|
+
color: #0077cc;
|
64
|
+
margin-bottom: 30px;
|
65
|
+
}
|
66
|
+
|
67
|
+
form label {
|
68
|
+
font-weight: 600;
|
69
|
+
display: block;
|
70
|
+
margin-top: 20px;
|
71
|
+
margin-bottom: 8px;
|
72
|
+
}
|
73
|
+
|
74
|
+
input[type="text"],
|
75
|
+
input[type="number"] {
|
76
|
+
width: 100%;
|
77
|
+
padding: 12px;
|
78
|
+
border: 1px solid #ccc;
|
79
|
+
border-radius: 6px;
|
80
|
+
font-size: 16px;
|
81
|
+
box-sizing: border-box;
|
82
|
+
}
|
83
|
+
|
84
|
+
button {
|
85
|
+
display: block;
|
86
|
+
width: 100%;
|
87
|
+
margin-top: 30px;
|
88
|
+
background-color: #0077cc;
|
89
|
+
color: white;
|
90
|
+
font-size: 16px;
|
91
|
+
padding: 14px 0;
|
92
|
+
border: none;
|
93
|
+
border-radius: 6px;
|
94
|
+
cursor: pointer;
|
95
|
+
transition: background-color 0.3s ease;
|
96
|
+
}
|
97
|
+
|
98
|
+
button:hover {
|
99
|
+
background-color: #005fa3;
|
100
|
+
}
|
101
|
+
|
102
|
+
.result {
|
103
|
+
margin-top: 40px;
|
104
|
+
padding: 25px;
|
105
|
+
background-color: #eaf2ff;
|
106
|
+
border-left: 5px solid #0077cc;
|
107
|
+
border-radius: 6px;
|
108
|
+
font-size: 18px;
|
109
|
+
}
|
110
|
+
|
111
|
+
.result h2 {
|
112
|
+
margin-top: 0;
|
113
|
+
color: #333;
|
114
|
+
}
|
115
|
+
|
116
|
+
@media (max-width: 600px) {
|
117
|
+
.container {
|
118
|
+
padding: 25px;
|
119
|
+
margin: 20px;
|
120
|
+
}
|
121
|
+
|
122
|
+
h1 {
|
123
|
+
font-size: 24px;
|
124
|
+
}
|
125
|
+
|
126
|
+
.result {
|
127
|
+
font-size: 16px;
|
128
|
+
}
|
129
|
+
}
|
@@ -259,3 +259,20 @@ nav ul.visible {
|
|
259
259
|
.scroll-to-top:hover {
|
260
260
|
background: #e07a35;
|
261
261
|
}
|
262
|
+
|
263
|
+
@media (max-width: 768px) {
|
264
|
+
.testimonials-carousel h3 {
|
265
|
+
font-size: 1.5rem;
|
266
|
+
padding: 0 15px;
|
267
|
+
}
|
268
|
+
|
269
|
+
.testimonial {
|
270
|
+
font-size: 1rem;
|
271
|
+
padding: 20px;
|
272
|
+
margin: 0 10px;
|
273
|
+
}
|
274
|
+
|
275
|
+
.carousel {
|
276
|
+
min-height: 180px;
|
277
|
+
}
|
278
|
+
}
|
@@ -0,0 +1,93 @@
|
|
1
|
+
.card {
|
2
|
+
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
|
3
|
+
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
4
|
+
}
|
5
|
+
.card:hover {
|
6
|
+
transform: translateY(-5px);
|
7
|
+
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
|
8
|
+
}
|
9
|
+
html {
|
10
|
+
scroll-behavior: smooth;
|
11
|
+
}
|
12
|
+
.container {
|
13
|
+
display: flex;
|
14
|
+
flex-wrap: wrap;
|
15
|
+
gap: 20px;
|
16
|
+
margin: 0 auto;
|
17
|
+
max-width: 1200px;
|
18
|
+
}
|
19
|
+
button,
|
20
|
+
.btn {
|
21
|
+
background: #17a2b8;
|
22
|
+
color: #fff;
|
23
|
+
border: none;
|
24
|
+
padding: 10px 20px;
|
25
|
+
border-radius: 5px;
|
26
|
+
cursor: pointer;
|
27
|
+
transition: background 0.3s ease, transform 0.3s ease;
|
28
|
+
}
|
29
|
+
button:hover,
|
30
|
+
.btn:hover {
|
31
|
+
background: #138496;
|
32
|
+
transform: translateY(-3px);
|
33
|
+
}
|
34
|
+
a {
|
35
|
+
color: #17a2b8;
|
36
|
+
text-decoration: none;
|
37
|
+
transition: color 0.3s ease;
|
38
|
+
}
|
39
|
+
a:hover {
|
40
|
+
color: #138496;
|
41
|
+
}
|
42
|
+
|
43
|
+
.testimonials-carousel {
|
44
|
+
background: linear-gradient(to right, #eaf4f4, #fefefe);
|
45
|
+
padding: 60px 20px;
|
46
|
+
text-align: center;
|
47
|
+
}
|
48
|
+
|
49
|
+
.testimonials-carousel h3 {
|
50
|
+
font-size: 2.2rem;
|
51
|
+
margin-bottom: 40px;
|
52
|
+
color: #05445e;
|
53
|
+
font-weight: 600;
|
54
|
+
}
|
55
|
+
|
56
|
+
.carousel {
|
57
|
+
position: relative;
|
58
|
+
max-width: 700px;
|
59
|
+
margin: auto;
|
60
|
+
overflow: hidden;
|
61
|
+
min-height: 160px;
|
62
|
+
}
|
63
|
+
|
64
|
+
.testimonial {
|
65
|
+
position: absolute;
|
66
|
+
opacity: 0;
|
67
|
+
transition: opacity 1s ease-in-out;
|
68
|
+
background-color: white;
|
69
|
+
padding: 25px 30px;
|
70
|
+
margin: 0 auto;
|
71
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
72
|
+
border-left: 5px solid #189ab4;
|
73
|
+
border-radius: 12px;
|
74
|
+
width: 100%;
|
75
|
+
}
|
76
|
+
|
77
|
+
.testimonial.active {
|
78
|
+
opacity: 1;
|
79
|
+
position: relative;
|
80
|
+
}
|
81
|
+
|
82
|
+
.testimonial p {
|
83
|
+
font-size: 1.2rem;
|
84
|
+
font-style: italic;
|
85
|
+
color: #333;
|
86
|
+
}
|
87
|
+
|
88
|
+
.testimonial span {
|
89
|
+
display: block;
|
90
|
+
margin-top: 10px;
|
91
|
+
font-weight: bold;
|
92
|
+
color: #189ab4;
|
93
|
+
}
|
@@ -72,3 +72,20 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
72
72
|
document.head.appendChild(styleSheet);
|
73
73
|
});
|
74
74
|
|
75
|
+
|
76
|
+
|
77
|
+
document.addEventListener("DOMContentLoaded", () => {
|
78
|
+
const testimonials = document.querySelectorAll(".testimonial");
|
79
|
+
let index = 0;
|
80
|
+
|
81
|
+
function rotateTestimonials() {
|
82
|
+
testimonials[index].classList.remove("active");
|
83
|
+
index = (index + 1) % testimonials.length;
|
84
|
+
testimonials[index].classList.add("active");
|
85
|
+
}
|
86
|
+
|
87
|
+
if (testimonials.length > 1) {
|
88
|
+
setInterval(rotateTestimonials, 2000);
|
89
|
+
}
|
90
|
+
});
|
91
|
+
|
@@ -0,0 +1,33 @@
|
|
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>
|
@@ -62,6 +62,7 @@
|
|
62
62
|
<ul>
|
63
63
|
<li><a href="{{ url_for('home') }}">Home</a></li>
|
64
64
|
<li><a href="{{ url_for('about') }}">About</a></li>
|
65
|
+
<li><a href="{{ url_for('assessment') }}">Assessment</a></li>
|
65
66
|
<li><a href="{{ url_for('services') }}">Services</a></li>
|
66
67
|
<li><a href="{{ url_for('contact_form') }}">Contact Form</a></li>
|
67
68
|
{% if current_user.is_authenticated %}
|
@@ -51,6 +51,24 @@
|
|
51
51
|
</div>
|
52
52
|
</div>
|
53
53
|
</section>
|
54
|
+
<!--add testimony-->
|
55
|
+
<section class="testimonials-carousel">
|
56
|
+
<h3>What Our Clients Say</h3>
|
57
|
+
<div class="carousel">
|
58
|
+
<div class="testimonial active">
|
59
|
+
<p>"CDC helped us streamline our cloud migration. Highly recommend!"</p>
|
60
|
+
<span>– <strong>Jane D.</strong></span>
|
61
|
+
</div>
|
62
|
+
<div class="testimonial">
|
63
|
+
<p>"Professional, reliable, and skilled team."</p>
|
64
|
+
<span>– <strong>TechCorp Inc.</strong></span>
|
65
|
+
</div>
|
66
|
+
<div class="testimonial">
|
67
|
+
<p>"Their DevOps support transformed our infrastructure!"</p>
|
68
|
+
<span>– <strong>DevOps Solutions</strong></span>
|
69
|
+
</div>
|
70
|
+
</div>
|
71
|
+
</section>
|
54
72
|
|
55
73
|
<!-- Quick Links Section -->
|
56
74
|
<section class="quick-links">
|
@@ -1,41 +0,0 @@
|
|
1
|
-
.card {
|
2
|
-
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
|
3
|
-
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
4
|
-
}
|
5
|
-
.card:hover {
|
6
|
-
transform: translateY(-5px);
|
7
|
-
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
|
8
|
-
}
|
9
|
-
html {
|
10
|
-
scroll-behavior: smooth;
|
11
|
-
}
|
12
|
-
.container {
|
13
|
-
display: flex;
|
14
|
-
flex-wrap: wrap;
|
15
|
-
gap: 20px;
|
16
|
-
margin: 0 auto;
|
17
|
-
max-width: 1200px;
|
18
|
-
}
|
19
|
-
button,
|
20
|
-
.btn {
|
21
|
-
background: #17a2b8;
|
22
|
-
color: #fff;
|
23
|
-
border: none;
|
24
|
-
padding: 10px 20px;
|
25
|
-
border-radius: 5px;
|
26
|
-
cursor: pointer;
|
27
|
-
transition: background 0.3s ease, transform 0.3s ease;
|
28
|
-
}
|
29
|
-
button:hover,
|
30
|
-
.btn:hover {
|
31
|
-
background: #138496;
|
32
|
-
transform: translateY(-3px);
|
33
|
-
}
|
34
|
-
a {
|
35
|
-
color: #17a2b8;
|
36
|
-
text-decoration: none;
|
37
|
-
transition: color 0.3s ease;
|
38
|
-
}
|
39
|
-
a:hover {
|
40
|
-
color: #138496;
|
41
|
-
}
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# grocery_list =["milk", "bread", "eggs", "cheese", "apples"]
|
2
|
-
# print(grocery_list)
|
3
|
-
# grocery_list.append("chocolate")
|
4
|
-
# print(grocery_list)
|
5
|
-
# del(grocery_list[1])
|
6
|
-
# print(grocery_list)
|
7
|
-
# print(len(grocery_list))
|
8
|
-
# grocery_list.sort()
|
9
|
-
# print(grocery_list)
|
10
|
-
# print(grocery_list[0])
|
11
|
-
# print(grocery_list[4])
|
12
|
-
# print(grocery_list[-1]) # last item
|
13
|
-
list_numbers =[10,2,45,1,2,4,5,7,9,2,4,790]
|
14
|
-
list_numbers.sort()
|
15
|
-
list_numbers.reverse()
|
16
|
-
print(list_numbers)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{my-cloud-devops-consulting-1.1.202506162331 → my-cloud-devops-consulting-1.1.202506182347}/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
|