my-cloud-devops-consulting 1.1.202507170113__tar.gz → 1.1.202507211454__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.
Files changed (56) hide show
  1. {my-cloud-devops-consulting-1.1.202507170113/my_cloud_devops_consulting.egg-info → my-cloud-devops-consulting-1.1.202507211454}/PKG-INFO +1 -1
  2. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/app.py +53 -0
  3. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454/my_cloud_devops_consulting.egg-info}/PKG-INFO +1 -1
  4. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/my_cloud_devops_consulting.egg-info/SOURCES.txt +2 -0
  5. my-cloud-devops-consulting-1.1.202507211454/static/images/video-poster.jpg +0 -0
  6. my-cloud-devops-consulting-1.1.202507211454/static/video/Untitled_video.mp4 +0 -0
  7. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/base.html +8 -0
  8. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/index.html +80 -27
  9. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/MANIFEST.in +0 -0
  10. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/README.md +0 -0
  11. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/my_cloud_devops_consulting.egg-info/dependency_links.txt +0 -0
  12. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/my_cloud_devops_consulting.egg-info/requires.txt +0 -0
  13. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/my_cloud_devops_consulting.egg-info/top_level.txt +0 -0
  14. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/setup.cfg +0 -0
  15. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/setup.py +0 -0
  16. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/anifest.json +0 -0
  17. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/about.css +0 -0
  18. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/assessment.css +0 -0
  19. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/contact-form.css +0 -0
  20. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/index.css +0 -0
  21. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/login.css +0 -0
  22. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/main.css +0 -0
  23. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/register.css +0 -0
  24. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/css/services.css +0 -0
  25. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/facebook.png +0 -0
  26. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/favicon.svg +0 -0
  27. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/image.jpg +0 -0
  28. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/instagram.png +0 -0
  29. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/linkedin.png +0 -0
  30. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/pexels-divinetechygirl-1181341.jpg +0 -0
  31. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/pexels-divinetechygirl-1181472.jpg +0 -0
  32. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/pexels-fotios-photos-16129703.jpg +0 -0
  33. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/pexels-tiger-lily-7108466.jpg +0 -0
  34. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/whatsapp-navbar.png +0 -0
  35. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/images/worldmap.jpeg +0 -0
  36. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/counter.js +0 -0
  37. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/index.js +0 -0
  38. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/login.js +0 -0
  39. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/main.js +0 -0
  40. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/register.js +0 -0
  41. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/services.js +0 -0
  42. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/js/typing.js +0 -0
  43. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/robots.txt +0 -0
  44. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/sitemap.xml +0 -0
  45. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/video/7989443-hd_1920_1080_25fps.mp4 +0 -0
  46. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/static/video/myvideo.mp4.mp4 +0 -0
  47. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/about.html +0 -0
  48. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/assessment.html +0 -0
  49. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/contact-form.html +0 -0
  50. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/forgot-password.html +0 -0
  51. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/login.html +0 -0
  52. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/private-videos.html +0 -0
  53. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/register.html +0 -0
  54. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/reset-password.html +0 -0
  55. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/templates/services.html +0 -0
  56. {my-cloud-devops-consulting-1.1.202507170113 → my-cloud-devops-consulting-1.1.202507211454}/test/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: my-cloud-devops-consulting
3
- Version: 1.1.202507170113
3
+ Version: 1.1.202507211454
4
4
  Summary: This is my consulting website for Cloud & DevOps services.
5
5
  Home-page: https://github.com/Betrand1999/project-root
6
6
  Author: Betrand Mutagha
@@ -250,6 +250,59 @@ def reset_password(token):
250
250
  def cookie_policy():
251
251
  return render_template('cookie-policy.html')
252
252
 
253
+
254
+
255
+
256
+ # Cognito OIDC setup
257
+ # Add and configure the authlib OAuth component.
258
+ from flask import Flask, redirect, url_for, session
259
+ from authlib.integrations.flask_client import OAuth
260
+ import os
261
+
262
+
263
+
264
+ oauth = OAuth(app)
265
+
266
+ oauth.register(
267
+ name='oidc',
268
+ authority='https://cognito-idp.us-east-1.amazonaws.com/us-east-1_TZVykdVvG',
269
+ client_id='1lc7qso1g3lr9kqbr0nb0jktbs',
270
+ client_secret='1f1qa6rf66549cta1uqpamjpjqt06ne3agvlgou638e56kmt8dve',
271
+ server_metadata_url='https://cognito-idp.us-east-1.amazonaws.com/us-east-1_TZVykdVvG/.well-known/openid-configuration',
272
+ client_kwargs={'scope': 'phone openid email'}
273
+ )
274
+ ################################################
275
+
276
+ # Configure a login route to direct to Amazon Cognito managed login for authentication with a redirect to an authorize route.
277
+ @app.route('/login/cognito')
278
+ def login_cognito():
279
+ session.pop('user', None)
280
+ redirect_uri = url_for('authorize', _external=True)
281
+ return oauth.oidc.authorize_redirect(
282
+ redirect_uri,
283
+ prompt='login' # 🔄 Forces re-authentication from Cognito
284
+ )
285
+
286
+
287
+
288
+
289
+ # The OAuth module collects the access token and retrieves user data from the Amazon Cognito userInfo endpoint. Configure an authorize route to handle the access token and user data after authentication.
290
+ @app.route('/authorize')
291
+ def authorize():
292
+ token = oauth.oidc.authorize_access_token()
293
+ user = token['userinfo']
294
+ session['user'] = user
295
+ return redirect(url_for('home')) # ✅ Fixed: 'home' matches your defined route
296
+
297
+
298
+ # Configure a logout route that erases user session data.
299
+ @app.route('/logout/cognito')
300
+ def logout_cognito(): # ✅ Renamed to avoid conflict
301
+ session.pop('user', None)
302
+ return redirect(url_for('home')) # 🔁 Also change to 'home' if 'index' doesn't exist
303
+
304
+
305
+
253
306
  if __name__ == '__main__':
254
307
  app.run(debug=True, host='0.0.0.0', port=50)
255
308
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: my-cloud-devops-consulting
3
- Version: 1.1.202507170113
3
+ Version: 1.1.202507211454
4
4
  Summary: This is my consulting website for Cloud & DevOps services.
5
5
  Home-page: https://github.com/Betrand1999/project-root
6
6
  Author: Betrand Mutagha
@@ -27,6 +27,7 @@ static/images/pexels-divinetechygirl-1181341.jpg
27
27
  static/images/pexels-divinetechygirl-1181472.jpg
28
28
  static/images/pexels-fotios-photos-16129703.jpg
29
29
  static/images/pexels-tiger-lily-7108466.jpg
30
+ static/images/video-poster.jpg
30
31
  static/images/whatsapp-navbar.png
31
32
  static/images/worldmap.jpeg
32
33
  static/js/counter.js
@@ -37,6 +38,7 @@ static/js/register.js
37
38
  static/js/services.js
38
39
  static/js/typing.js
39
40
  static/video/7989443-hd_1920_1080_25fps.mp4
41
+ static/video/Untitled_video.mp4
40
42
  static/video/myvideo.mp4.mp4
41
43
  templates/about.html
42
44
  templates/assessment.html
@@ -208,6 +208,14 @@
208
208
  ><i class="fas fa-sign-in-alt"></i> Login</a
209
209
  >
210
210
  </li>
211
+ <!-- add cognito login -->
212
+ <li>
213
+ <a href="{{ url_for('login_cognito') }}">
214
+ <i class="fas fa-user-lock"></i> Login with Cognito
215
+ </a>
216
+ </li>
217
+ <!-- add cognito login -->
218
+
211
219
  <li
212
220
  style="
213
221
  display: flex;
@@ -1,42 +1,93 @@
1
1
  {% extends "base.html" %} {% block main %}
2
2
 
3
+ <!-- Hero Section -->
4
+ <!-- Hero Section -->
3
5
  <!-- Hero Section -->
4
6
  <section
5
7
  class="hero-section"
6
- style="position: relative; text-align: center; padding: 60px 20px"
8
+ style="padding: 60px 40px; background-color: #ffffff"
7
9
  >
8
- <!-- ✨ Floating Shapes -->
9
- <div class="floating-shape one"></div>
10
- <div class="floating-shape two"></div>
11
-
12
- <h1 data-aos="fade-up" id="dynamic-headline"></h1>
13
-
14
- <p
10
+ <div
15
11
  style="
16
- font-size: 1.4rem;
17
- max-width: 900px;
12
+ display: flex;
13
+ flex-wrap: wrap;
14
+ align-items: center;
15
+ justify-content: space-between;
16
+ gap: 40px;
17
+ max-width: 1400px;
18
18
  margin: 0 auto;
19
- color: #007bff;
20
- font-weight: 600;
21
- line-height: 1.6;
22
19
  "
23
- data-aos="fade-up"
24
- data-aos-delay="200"
25
20
  >
26
- We specialize in delivering Cloud and DevOps consulting services tailored to
27
- your unique business needs.
28
- </p>
21
+ <!-- 🎥 Left: Full-width Video -->
22
+ <div style="flex: 1 1 700px; min-width: 400px">
29
23
 
30
- <a
31
- href="{{ url_for('services') }}"
32
- class="btn btn-primary mt-3"
33
- data-aos="zoom-in"
34
- data-aos-delay="400"
35
- >
36
- Explore Our Services
37
- </a>
24
+ <video
25
+ controls
26
+ poster="{{ url_for('static', filename='images/video-poster.jpg') }}"
27
+ style="
28
+ width: 100%;
29
+ height: auto;
30
+ border-radius: 12px;
31
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
32
+ "
33
+ >
34
+ <source
35
+ src="{{ url_for('static', filename='video/Untitled_video.mp4') }}"
36
+ type="video/mp4"
37
+ />
38
+ Your browser does not support the video tag.
39
+ </video>
40
+ </div>
41
+
42
+ <!-- 📝 Right: Hero Text, also expanded -->
43
+ <div style="flex: 1 1 600px; min-width: 350px">
44
+ <h1
45
+ id="dynamic-headline"
46
+ data-aos="fade-up"
47
+ style="
48
+ font-size: 2.5rem;
49
+ color: #007bff;
50
+ font-weight: 700;
51
+ margin-bottom: 20px;
52
+ "
53
+ >
54
+ From Dev to Ops — Faster
55
+ </h1>
56
+ <p
57
+ style="
58
+ font-size: 1.25rem;
59
+ line-height: 1.8;
60
+ color: #333;
61
+ font-weight: 500;
62
+ margin-bottom: 30px;
63
+ "
64
+ data-aos="fade-up"
65
+ data-aos-delay="200"
66
+ >
67
+ We specialize in delivering Cloud and DevOps consulting services
68
+ tailored to your unique business needs.
69
+ </p>
70
+
71
+ <a
72
+ href="{{ url_for('services') }}"
73
+ class="btn btn-primary"
74
+ data-aos="zoom-in"
75
+ data-aos-delay="400"
76
+ style="
77
+ padding: 14px 28px;
78
+ font-weight: 600;
79
+ font-size: 16px;
80
+ border-radius: 8px;
81
+ "
82
+ >
83
+ Explore Our Services
84
+ </a>
85
+ </div>
86
+ </div>
38
87
  </section>
39
88
 
89
+ <!-- 🔥 Background Video Section -->
90
+
40
91
  <!-- 🔥 Background Video Section -->
41
92
  <section
42
93
  class="video-hero-section"
@@ -278,7 +329,7 @@
278
329
  display: grid;
279
330
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
280
331
  gap: 40px;
281
- max-width: 1200px;
332
+ max-width: 4000px;
282
333
  margin: 0 auto;
283
334
  padding: 0 20px;
284
335
  "
@@ -318,6 +369,8 @@
318
369
  </div>
319
370
  </section>
320
371
 
372
+ <!-- 🔥 Intro Video with Narration -->
373
+
321
374
  <!-- Quick Links Section -->
322
375
  <section class="quick-links">
323
376
  <h3>Quick Links for more</h3>