Skip to content

Commit 8371990

Browse files
authored
Merge pull request #124 from RealTeamRocket/115-legal-notice-and-privacy-policy
115 legal notice and privacy policy
2 parents b58fca9 + b54155b commit 8371990

File tree

15 files changed

+629
-70
lines changed

15 files changed

+629
-70
lines changed

website/index.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css"
88
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
99
crossorigin=""/>
10+
<link
11+
rel="stylesheet"
12+
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css"/>
1013
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1114
<meta name="description" content="Rocket App: Chat and collaboration platform.">
1215
<meta name="theme-color" content="#1976d2">
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
<template>
2+
<footer class="footer">
3+
<div class="footer-content">
4+
<div class="footer-section footer-address">
5+
<span class="footer-title">Address</span>
6+
<span>Hochschule für Technik Stuttgart</span>
7+
<span>Schellingstraße 24</span>
8+
<span>70174 Stuttgart</span>
9+
<span>Germany</span>
10+
</div>
11+
<div class="footer-section footer-legal">
12+
<span class="footer-title">Legal</span>
13+
<router-link to="/legal-notice">Legal Notice</router-link>
14+
<router-link to="/privacy-policy">Privacy Policy</router-link>
15+
<router-link to="/accessibility">Accessibility</router-link>
16+
</div>
17+
<div class="footer-section footer-contact">
18+
<span class="footer-title">Contact</span>
19+
<a href="mailto:[email protected]" id="footer-email">[email protected]</a>
20+
<a href="https://www.instagram.com/hft_stuttgart/" target="_blank" rel="noopener" aria-label="Instagram" class="footer-instagram">
21+
<i class="fab fa-instagram" style="font-size: 1.3em;"></i>
22+
</a>
23+
<a href="https://www.youtube.com/c/Hochschulef%C3%BCrTechnikStuttgart" target="_blank" rel="noopener" aria-label="YouTube" class="footer-youtube">
24+
<i class="fab fa-youtube" style="font-size: 1.3em;"></i>
25+
</a>
26+
</div>
27+
</div>
28+
</footer>
29+
</template>
30+
31+
<style scoped>
32+
.footer {
33+
width: 100%;
34+
background: linear-gradient(90deg, #1e3c72 0%, #2a5298 100%);
35+
color: #fff;
36+
border-top: 2px solid #1e3c72;
37+
padding: 1.2rem 0;
38+
font-size: 1rem;
39+
position: relative;
40+
left: 0;
41+
bottom: 0;
42+
}
43+
44+
.footer-content {
45+
max-width: 1100px;
46+
margin: 0 auto;
47+
display: flex;
48+
justify-content: space-between;
49+
align-items: flex-start;
50+
gap: 2rem;
51+
}
52+
53+
.footer-section {
54+
display: flex;
55+
flex-direction: column;
56+
gap: 0.3rem;
57+
min-width: 180px;
58+
}
59+
60+
.footer-title {
61+
font-weight: bold;
62+
font-size: x-large;
63+
margin-bottom: 0.2rem;
64+
letter-spacing: 0.02em;
65+
color: #ffd580;
66+
}
67+
68+
.footer-legal a,
69+
.footer-contact a {
70+
color: #e0e0e0;
71+
text-decoration: none;
72+
transition: color 0.2s;
73+
font-size: 1em;
74+
}
75+
76+
.footer-legal a:hover, #footer-email:hover {
77+
color: #ffd580;
78+
text-decoration: underline;
79+
}
80+
81+
.footer-instagram,
82+
.footer-youtube {
83+
display: inline-flex;
84+
align-items: center;
85+
margin-top: 0.1rem;
86+
margin-right: 0.6rem;
87+
}
88+
89+
.footer-instagram:hover i {
90+
color: #f8a8f4;
91+
}
92+
93+
.footer-youtube:hover i {
94+
color: #ff4c4c;
95+
}
96+
97+
@media (max-width: 900px) {
98+
.footer-content {
99+
flex-direction: column;
100+
align-items: flex-start;
101+
gap: 1.2rem;
102+
padding: 0 1rem;
103+
}
104+
.footer-section {
105+
width: 100%;
106+
min-width: unset;
107+
}
108+
}
109+
</style>
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
<template>
2+
<div class="page-wrapper">
3+
<Navbar />
4+
<main class="legal-content">
5+
<div class="legal-page">
6+
<h1>Accessibility</h1>
7+
8+
<section>
9+
<h2>Commitment to Accessibility</h2>
10+
<p>
11+
We are committed to making our website and application accessible to everyone, including people with disabilities.
12+
Our goal is to ensure a user-friendly experience for all users, regardless of their physical or technical limitations.
13+
</p>
14+
</section>
15+
16+
<section>
17+
<h2>Measures to Support Accessibility</h2>
18+
<ul>
19+
<li>Responsive design for different devices and screen readers</li>
20+
<li>Keyboard navigation and focus visibility</li>
21+
<li>Text alternatives for non-text content</li>
22+
<li>Consistent structure and headings</li>
23+
</ul>
24+
</section>
25+
26+
<section>
27+
<h2>Feedback and Contact</h2>
28+
<p>
29+
If you encounter accessibility issues or have suggestions for improvement, please contact us:
30+
<br />
31+
<strong>Email:</strong> [email protected]
32+
</p>
33+
</section>
34+
35+
<section>
36+
<h2>Enforcement Procedure</h2>
37+
<p>
38+
In the event of unsatisfactory responses to your accessibility inquiry, you may contact the responsible regulatory authority in your region to enforce your rights under applicable accessibility legislation.
39+
</p>
40+
</section>
41+
42+
<section>
43+
<h2>Last Updated</h2>
44+
<p>
45+
This statement was last updated on 17 June 2025.
46+
</p>
47+
</section>
48+
</div>
49+
</main>
50+
<Footer />
51+
</div>
52+
</template>
53+
54+
<script setup lang="ts">
55+
import Navbar from '@/components/Navbar.vue'
56+
import Footer from '@/components/footer/Footer.vue'
57+
</script>
58+
59+
<style scoped>
60+
.page-wrapper {
61+
min-height: 100vh;
62+
display: flex;
63+
flex-direction: column;
64+
}
65+
66+
.legal-content {
67+
flex: 1;
68+
display: flex;
69+
justify-content: center;
70+
align-items: flex-start;
71+
padding: 2rem 1rem;
72+
background: white; /* wichtig: Seitenhintergrund bleibt weiß */
73+
}
74+
75+
.legal-page {
76+
max-width: 900px;
77+
width: 100%;
78+
background: #f5f5f5; /* grau nur für die Box */
79+
padding: 2rem;
80+
border-radius: 8px;
81+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
82+
line-height: 1.7;
83+
color: #333;
84+
}
85+
86+
.legal-page h1 {
87+
text-align: center;
88+
margin-bottom: 2rem;
89+
color: #1e3c72;
90+
font-size: 2.5rem;
91+
}
92+
93+
.legal-page section {
94+
margin-bottom: 2rem;
95+
}
96+
97+
.legal-page h2 {
98+
color: #2a5298;
99+
font-size: 1.5rem;
100+
margin-bottom: 0.5rem;
101+
}
102+
103+
.legal-page ul {
104+
padding-left: 1.5rem;
105+
margin-top: 0.5rem;
106+
}
107+
108+
.legal-page li {
109+
margin-bottom: 0.4rem;
110+
}
111+
112+
.footer {
113+
margin-top: auto;
114+
}
115+
</style>

website/src/pages/ChallengesView.vue

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
<template>
2-
<Navbar />
3-
<div class="challenges-view">
4-
<h1>Challenges</h1>
5-
<ChallengeList :challenges="challenges"
6-
@complete="handleCompleteChallenge"
2+
<div class="page-wrapper">
3+
<Navbar />
4+
<div class="challenges-view">
5+
<h1>Challenges</h1>
6+
<ChallengeList :challenges="challenges"
7+
@complete="handleCompleteChallenge"
78
@invite="handleInvite"/>
89
<FriendInvitePopup
910
v-if="showInvitePopup"
1011
:challenge-id="inviteChallengeId!"
11-
@close="showInvitePopup = false"/>
12+
@close="showInvitePopup = false"/>
1213
</div>
14+
<Footer />
1315
<DailyChallengeProgress :completed="completedCount" :total="totalCount" />
16+
</div>
1417
</template>
1518

1619
<script setup lang="ts">
@@ -20,6 +23,7 @@ import ChallengeList from '@/components/challenges/ChallengeList.vue';
2023
import DailyChallengeProgress from '@/components/challenges/DailyChallengeProgress.vue';
2124
import FriendInvitePopup from '@/components/challenges/FriendInvitePopup.vue';
2225
import backendApi from '@/api/backend-api';
26+
import Footer from '@/components/footer/Footer.vue'
2327
2428
const challenges = ref<{ id: string; text: string; points: number }[]>([]);
2529
const completedCount = ref(0);
@@ -76,10 +80,23 @@ onMounted(async () => {
7680
</script>
7781

7882
<style scoped>
83+
.page-wrapper {
84+
min-height: 100vh;
85+
display: flex;
86+
flex-direction: column;
87+
/* Make space for the fixed progress bar */
88+
padding-bottom: 3.5rem;
89+
}
7990
.challenges-view {
91+
flex: 1;
8092
padding: 2rem;
8193
}
8294
.challenges-view h1 {
8395
text-align: center;
8496
}
97+
.footer {
98+
margin-top: auto;
99+
/* Add extra bottom padding so it's scrollable above the progress bar */
100+
padding-bottom: 2.5rem;
101+
}
85102
</style>

website/src/pages/ChatView.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
<div class="chatview-wrapper d-flex flex-column align-items-center justify-content-center">
44
<ChatRoom :user="user"/>
55
</div>
6+
<Footer />
67
</template>
78

89
<script setup lang="ts">
910
import Navbar from '@/components/Navbar.vue'
1011
import ChatRoom from '@/components/chat/ChatRoom.vue'
12+
import Footer from '@/components/footer/Footer.vue'
1113
import { ref, onMounted } from 'vue'
1214
import api from '@/api/backend-api'
1315

website/src/pages/DownloadView.vue

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,34 @@
11
<template>
2-
<Navbar />
3-
<div class="download-view">
4-
<h1>Download the Rocket App</h1>
5-
<p>You can download the latest version of the Rocket App for Android below:</p>
6-
<a
7-
class="download-btn"
8-
:href="apkUrl"
9-
download
10-
>
11-
Download APK
12-
</a>
13-
<p class="note">If you have trouble installing, make sure to allow installation from unknown sources in your device settings.</p>
2+
<div class="page-wrapper">
3+
<Navbar />
4+
<div class="download-view">
5+
<h1>Download the Rocket App</h1>
6+
<p>You can download the latest version of the Rocket App for Android below:</p>
7+
<a
8+
class="download-btn"
9+
:href="apkUrl"
10+
download
11+
>
12+
Download APK
13+
</a>
14+
<p class="note">If you have trouble installing, make sure to allow installation from unknown sources in your device settings.</p>
15+
</div>
16+
<Footer />
1417
</div>
1518
</template>
1619

1720
<script setup lang="ts">
1821
import Navbar from '@/components/Navbar.vue'
22+
import Footer from '@/components/footer/Footer.vue'
1923
const apkUrl = '/apk/rocket-app-latest.apk'
2024
</script>
2125

2226
<style scoped>
27+
.page-wrapper {
28+
min-height: 100vh;
29+
display: flex;
30+
flex-direction: column;
31+
}
2332
.download-view {
2433
max-width: 500px;
2534
margin: 2rem auto;
@@ -49,4 +58,7 @@ const apkUrl = '/apk/rocket-app-latest.apk'
4958
font-size: 0.95rem;
5059
margin-top: 1.2rem;
5160
}
61+
.footer {
62+
margin-top: auto;
63+
}
5264
</style>

0 commit comments

Comments
 (0)