my-cloud-devops-consulting 1.1.202507060227__tar.gz → 1.1.202507061218__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.202507060227/my_cloud_devops_consulting.egg-info → my-cloud-devops-consulting-1.1.202507061218}/PKG-INFO +1 -1
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218/my_cloud_devops_consulting.egg-info}/PKG-INFO +1 -1
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/css/index.css +0 -19
- my-cloud-devops-consulting-1.1.202507061218/static/js/main.js +179 -0
- my-cloud-devops-consulting-1.1.202507060227/static/js/main.js +0 -91
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/MANIFEST.in +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/README.md +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/app.py +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/my_cloud_devops_consulting.egg-info/SOURCES.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/my_cloud_devops_consulting.egg-info/dependency_links.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/my_cloud_devops_consulting.egg-info/requires.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/my_cloud_devops_consulting.egg-info/top_level.txt +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/setup.cfg +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/setup.py +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/css/about.css +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/css/assessment.css +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/css/contact-form.css +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/css/login.css +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/css/main.css +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/css/register.css +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/css/services.css +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/images/image.jpg +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/images/whatspp.jpeg +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/js/counter.js +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/js/index.js +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/js/login.js +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/js/register.js +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/js/services.js +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/static/js/typing.js +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/templates/about.html +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/templates/assessment.html +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/templates/base.html +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/templates/contact-form.html +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/templates/index.html +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/templates/login.html +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/templates/private-videos.html +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/templates/register.html +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/templates/services.html +0 -0
- {my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/test/test.py +0 -0
@@ -177,25 +177,6 @@ footer {
|
|
177
177
|
box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.1);
|
178
178
|
}
|
179
179
|
|
180
|
-
/* Responsive Design */
|
181
|
-
/* @media (max-width: 768px) {
|
182
|
-
.services-highlight .service-cards {
|
183
|
-
flex-direction: column;
|
184
|
-
}
|
185
|
-
|
186
|
-
.header-container {
|
187
|
-
flex-direction: column;
|
188
|
-
align-items: center;
|
189
|
-
}
|
190
|
-
|
191
|
-
nav ul {
|
192
|
-
flex-direction: column;
|
193
|
-
}
|
194
|
-
|
195
|
-
.logo {
|
196
|
-
margin-bottom: 15px;
|
197
|
-
}
|
198
|
-
} */
|
199
180
|
|
200
181
|
@media (max-width: 768px) {
|
201
182
|
/* 🔧 Fix navigation links hidden on mobile */
|
@@ -0,0 +1,179 @@
|
|
1
|
+
// document.addEventListener("DOMContentLoaded", () => {
|
2
|
+
// // Smooth scrolling for all internal links
|
3
|
+
// const smoothScrollLinks = document.querySelectorAll("a[href^='#']");
|
4
|
+
// smoothScrollLinks.forEach(link => {
|
5
|
+
// link.addEventListener("click", (event) => {
|
6
|
+
// event.preventDefault();
|
7
|
+
// const targetId = link.getAttribute("href").substring(1);
|
8
|
+
// const targetElement = document.getElementById(targetId);
|
9
|
+
// if (targetElement) {
|
10
|
+
// targetElement.scrollIntoView({ behavior: "smooth" });
|
11
|
+
// }
|
12
|
+
// });
|
13
|
+
// });
|
14
|
+
|
15
|
+
// // Back to top button functionality
|
16
|
+
// const backToTopButton = document.createElement("button");
|
17
|
+
// backToTopButton.innerText = "↑ Top";
|
18
|
+
// backToTopButton.className = "scroll-to-top";
|
19
|
+
// document.body.appendChild(backToTopButton);
|
20
|
+
|
21
|
+
// backToTopButton.style.display = "none";
|
22
|
+
// backToTopButton.addEventListener("click", () => {
|
23
|
+
// window.scrollTo({ top: 0, behavior: "smooth" });
|
24
|
+
// });
|
25
|
+
|
26
|
+
// window.addEventListener("scroll", () => {
|
27
|
+
// backToTopButton.style.display = window.pageYOffset > 300 ? "block" : "none";
|
28
|
+
// });
|
29
|
+
|
30
|
+
// // Modular function to reveal elements on scroll
|
31
|
+
// const revealOnScroll = () => {
|
32
|
+
// const sections = document.querySelectorAll("section");
|
33
|
+
// const viewportHeight = window.innerHeight;
|
34
|
+
// sections.forEach(section => {
|
35
|
+
// const sectionTop = section.getBoundingClientRect().top;
|
36
|
+
// if (sectionTop < viewportHeight - 100) {
|
37
|
+
// section.classList.add("visible");
|
38
|
+
// }
|
39
|
+
// });
|
40
|
+
// };
|
41
|
+
// window.addEventListener("scroll", revealOnScroll);
|
42
|
+
// revealOnScroll(); // ✅ <-- this line fixes the issue
|
43
|
+
|
44
|
+
// // Inject dynamic styles for section reveal effect
|
45
|
+
// const styleSheet = document.createElement("style");
|
46
|
+
// // styleSheet.type = "text/css"; // Deprecated, no longer needed
|
47
|
+
// styleSheet.innerText = `
|
48
|
+
// section {
|
49
|
+
// opacity: 0;
|
50
|
+
// transform: translateY(20px);
|
51
|
+
// transition: opacity 0.5s ease, transform 0.5s ease;
|
52
|
+
// }
|
53
|
+
// section.visible {
|
54
|
+
// opacity: 1;
|
55
|
+
// transform: translateY(0);
|
56
|
+
// }
|
57
|
+
// .scroll-to-top {
|
58
|
+
// position: fixed;
|
59
|
+
// bottom: 20px;
|
60
|
+
// right: 20px;
|
61
|
+
// padding: 10px 15px;
|
62
|
+
// background: #007bff;
|
63
|
+
// color: white;
|
64
|
+
// border: none;
|
65
|
+
// border-radius: 5px;
|
66
|
+
// display: none;
|
67
|
+
// cursor: pointer;
|
68
|
+
// }
|
69
|
+
// .scroll-to-top:hover {
|
70
|
+
// background: #0056b3;
|
71
|
+
// }
|
72
|
+
// `;
|
73
|
+
// document.head.appendChild(styleSheet);
|
74
|
+
// });
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
// document.addEventListener("DOMContentLoaded", () => {
|
79
|
+
// const testimonials = document.querySelectorAll(".testimonial");
|
80
|
+
// let index = 0;
|
81
|
+
|
82
|
+
// function rotateTestimonials() {
|
83
|
+
// testimonials[index].classList.remove("active");
|
84
|
+
// index = (index + 1) % testimonials.length;
|
85
|
+
// testimonials[index].classList.add("active");
|
86
|
+
// }
|
87
|
+
|
88
|
+
// if (testimonials.length > 1) {
|
89
|
+
// setInterval(rotateTestimonials, 2000);
|
90
|
+
// }
|
91
|
+
// });
|
92
|
+
|
93
|
+
document.addEventListener("DOMContentLoaded", () => {
|
94
|
+
// Smooth scrolling for all internal links
|
95
|
+
const smoothScrollLinks = document.querySelectorAll("a[href^='#']");
|
96
|
+
smoothScrollLinks.forEach(link => {
|
97
|
+
link.addEventListener("click", (event) => {
|
98
|
+
event.preventDefault();
|
99
|
+
const targetId = link.getAttribute("href").substring(1);
|
100
|
+
const targetElement = document.getElementById(targetId);
|
101
|
+
if (targetElement) {
|
102
|
+
targetElement.scrollIntoView({ behavior: "smooth" });
|
103
|
+
}
|
104
|
+
});
|
105
|
+
});
|
106
|
+
|
107
|
+
// Back to top button functionality
|
108
|
+
const backToTopButton = document.createElement("button");
|
109
|
+
backToTopButton.innerText = "↑ Top";
|
110
|
+
backToTopButton.className = "scroll-to-top";
|
111
|
+
document.body.appendChild(backToTopButton);
|
112
|
+
|
113
|
+
backToTopButton.style.display = "none";
|
114
|
+
backToTopButton.addEventListener("click", () => {
|
115
|
+
window.scrollTo({ top: 0, behavior: "smooth" });
|
116
|
+
});
|
117
|
+
|
118
|
+
window.addEventListener("scroll", () => {
|
119
|
+
backToTopButton.style.display = window.pageYOffset > 300 ? "block" : "none";
|
120
|
+
});
|
121
|
+
|
122
|
+
// Modular function to reveal elements on scroll
|
123
|
+
const revealOnScroll = () => {
|
124
|
+
const sections = document.querySelectorAll("section");
|
125
|
+
const viewportHeight = window.innerHeight;
|
126
|
+
sections.forEach(section => {
|
127
|
+
const sectionTop = section.getBoundingClientRect().top;
|
128
|
+
if (sectionTop < viewportHeight - 100) {
|
129
|
+
section.classList.add("visible");
|
130
|
+
}
|
131
|
+
});
|
132
|
+
};
|
133
|
+
window.addEventListener("scroll", revealOnScroll);
|
134
|
+
revealOnScroll(); // ✅ Reveal sections immediately on page load
|
135
|
+
|
136
|
+
// Inject dynamic styles for section reveal effect
|
137
|
+
const styleSheet = document.createElement("style");
|
138
|
+
styleSheet.innerText = `
|
139
|
+
section {
|
140
|
+
opacity: 0;
|
141
|
+
transform: translateY(20px);
|
142
|
+
transition: opacity 0.5s ease, transform 0.5s ease;
|
143
|
+
}
|
144
|
+
section.visible {
|
145
|
+
opacity: 1;
|
146
|
+
transform: translateY(0);
|
147
|
+
}
|
148
|
+
.scroll-to-top {
|
149
|
+
position: fixed;
|
150
|
+
bottom: 20px;
|
151
|
+
right: 20px;
|
152
|
+
padding: 10px 15px;
|
153
|
+
background: #007bff;
|
154
|
+
color: white;
|
155
|
+
border: none;
|
156
|
+
border-radius: 5px;
|
157
|
+
display: none;
|
158
|
+
cursor: pointer;
|
159
|
+
}
|
160
|
+
.scroll-to-top:hover {
|
161
|
+
background: #0056b3;
|
162
|
+
}
|
163
|
+
`;
|
164
|
+
document.head.appendChild(styleSheet);
|
165
|
+
|
166
|
+
// Testimonials auto-rotation
|
167
|
+
const testimonials = document.querySelectorAll(".testimonial");
|
168
|
+
let index = 0;
|
169
|
+
|
170
|
+
function rotateTestimonials() {
|
171
|
+
testimonials[index].classList.remove("active");
|
172
|
+
index = (index + 1) % testimonials.length;
|
173
|
+
testimonials[index].classList.add("active");
|
174
|
+
}
|
175
|
+
|
176
|
+
if (testimonials.length > 1) {
|
177
|
+
setInterval(rotateTestimonials, 2000);
|
178
|
+
}
|
179
|
+
});
|
@@ -1,91 +0,0 @@
|
|
1
|
-
document.addEventListener("DOMContentLoaded", () => {
|
2
|
-
// Smooth scrolling for all internal links
|
3
|
-
const smoothScrollLinks = document.querySelectorAll("a[href^='#']");
|
4
|
-
smoothScrollLinks.forEach(link => {
|
5
|
-
link.addEventListener("click", (event) => {
|
6
|
-
event.preventDefault();
|
7
|
-
const targetId = link.getAttribute("href").substring(1);
|
8
|
-
const targetElement = document.getElementById(targetId);
|
9
|
-
if (targetElement) {
|
10
|
-
targetElement.scrollIntoView({ behavior: "smooth" });
|
11
|
-
}
|
12
|
-
});
|
13
|
-
});
|
14
|
-
|
15
|
-
// Back to top button functionality
|
16
|
-
const backToTopButton = document.createElement("button");
|
17
|
-
backToTopButton.innerText = "↑ Top";
|
18
|
-
backToTopButton.className = "scroll-to-top";
|
19
|
-
document.body.appendChild(backToTopButton);
|
20
|
-
|
21
|
-
backToTopButton.style.display = "none";
|
22
|
-
backToTopButton.addEventListener("click", () => {
|
23
|
-
window.scrollTo({ top: 0, behavior: "smooth" });
|
24
|
-
});
|
25
|
-
|
26
|
-
window.addEventListener("scroll", () => {
|
27
|
-
backToTopButton.style.display = window.pageYOffset > 300 ? "block" : "none";
|
28
|
-
});
|
29
|
-
|
30
|
-
// Modular function to reveal elements on scroll
|
31
|
-
const revealOnScroll = () => {
|
32
|
-
const sections = document.querySelectorAll("section");
|
33
|
-
const viewportHeight = window.innerHeight;
|
34
|
-
sections.forEach(section => {
|
35
|
-
const sectionTop = section.getBoundingClientRect().top;
|
36
|
-
if (sectionTop < viewportHeight - 100) {
|
37
|
-
section.classList.add("visible");
|
38
|
-
}
|
39
|
-
});
|
40
|
-
};
|
41
|
-
window.addEventListener("scroll", revealOnScroll);
|
42
|
-
|
43
|
-
// Inject dynamic styles for section reveal effect
|
44
|
-
const styleSheet = document.createElement("style");
|
45
|
-
// styleSheet.type = "text/css"; // Deprecated, no longer needed
|
46
|
-
styleSheet.innerText = `
|
47
|
-
section {
|
48
|
-
opacity: 0;
|
49
|
-
transform: translateY(20px);
|
50
|
-
transition: opacity 0.5s ease, transform 0.5s ease;
|
51
|
-
}
|
52
|
-
section.visible {
|
53
|
-
opacity: 1;
|
54
|
-
transform: translateY(0);
|
55
|
-
}
|
56
|
-
.scroll-to-top {
|
57
|
-
position: fixed;
|
58
|
-
bottom: 20px;
|
59
|
-
right: 20px;
|
60
|
-
padding: 10px 15px;
|
61
|
-
background: #007bff;
|
62
|
-
color: white;
|
63
|
-
border: none;
|
64
|
-
border-radius: 5px;
|
65
|
-
display: none;
|
66
|
-
cursor: pointer;
|
67
|
-
}
|
68
|
-
.scroll-to-top:hover {
|
69
|
-
background: #0056b3;
|
70
|
-
}
|
71
|
-
`;
|
72
|
-
document.head.appendChild(styleSheet);
|
73
|
-
});
|
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
|
-
|
File without changes
|
File without changes
|
{my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/app.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{my-cloud-devops-consulting-1.1.202507060227 → my-cloud-devops-consulting-1.1.202507061218}/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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|