Skip to content

Commit

Permalink
Add privacy page ; update About and ToS pages
Browse files Browse the repository at this point in the history
  • Loading branch information
aelassas committed Jan 18, 2025
1 parent 7d85bbe commit 40488f7
Show file tree
Hide file tree
Showing 11 changed files with 366 additions and 45 deletions.
2 changes: 2 additions & 0 deletions frontend/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ const Contact = lazy(() => import('@/pages/Contact'))
const NoMatch = lazy(() => import('@/pages/NoMatch'))
const Agencies = lazy(() => import('@/pages/Agencies'))
const Locations = lazy(() => import('@/pages/Locations'))
const Privacy = lazy(() => import('@/pages/Privacy'))

const App = () => (
<BrowserRouter>
Expand Down Expand Up @@ -67,6 +68,7 @@ const App = () => (
<Route path="/contact" element={<Contact />} />
<Route path="/agencies" element={<Agencies />} />
<Route path="/destinations" element={<Locations />} />
<Route path="/privacy" element={<Privacy />} />

<Route path="*" element={<NoMatch />} />
</Routes>
Expand Down
38 changes: 36 additions & 2 deletions frontend/src/assets/css/about.css
Original file line number Diff line number Diff line change
@@ -1,3 +1,37 @@
.about {
padding: 15px;
div.about {
display: flex;
flex-direction: column;
flex: 1 0 auto;
align-items: flex-start;
transform: translate3d(0, 0, 0);
white-space: pre-wrap;
padding: 50px 20% 120px 20%;
font-size: 15px;
color: #1a1a1a;
min-height: 100vh;
background-color: #FFF;
}

div.about h1 {
font-size: 36px;
color: #1a1a1a;
}

div.about h2 {
font-size: 24px;
font-weight: 500;
color: #1a1a1a;
}

div.about p {
font-size: 20px;
/* font-weight: 400; */
color: #000;
margin-bottom: 40px;
}

@media only screen and (width <=960px) {
div.about {
padding: 30px 20px 120px 20px;
}
}
18 changes: 18 additions & 0 deletions frontend/src/assets/css/privacy.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
div.privacy {
display: flex;
flex-direction: column;
flex: 1 0 auto;
align-items: center;
transform: translate3d(0, 0, 0);
white-space: pre-wrap;
padding: 50px 20%;
font-size: 15px;
color: #121212;
min-height: 100vh;
}

@media only screen and (width <=960px) {
div.privacy {
padding: 30px 20px;
}
}
10 changes: 10 additions & 0 deletions frontend/src/components/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import {
Business as AgencyIcon,
LocationOn as LocationIcon,
PersonOutline as SignUpIcon,
PrivacyTip as PrivacyIcon,
} from '@mui/icons-material'
import { toast } from 'react-toastify'
import { CircleFlag } from 'react-circle-flags'
Expand Down Expand Up @@ -449,6 +450,15 @@ const Header = ({
<ListItemIcon><AboutIcon /></ListItemIcon>
<ListItemText primary={strings.ABOUT} />
</ListItem>
<ListItem
onClick={() => {
navigate('/privacy')
handleSideMenuClose()
}}
>
<ListItemIcon><PrivacyIcon /></ListItemIcon>
<ListItemText primary={strings.PRIVACY_POLICY} />
</ListItem>
<ListItem
onClick={() => {
navigate('/tos')
Expand Down
27 changes: 27 additions & 0 deletions frontend/src/lang/about.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import LocalizedStrings from 'localized-strings'
import * as langHelper from '@/common/langHelper'
import env from '@/config/env.config'

const strings = new LocalizedStrings({
fr: {
TITLE1: `${env.WEBSITE_NAME} - Votre service de location de propriétés`,
SUBTITLE1: 'Votre partenaire de confiance pour la location de propriétés',
CONTENT1: `Chez ${env.WEBSITE_NAME}, nous comprenons que chaque voyage est unique. Nous nous engageons à fournir à nos clients une sélection diversifiée de propriétés qui répondent à tous les besoins de voyage. Que vous exploriez une ville, que vous vous déplaciez pour affaires ou que vous recherchiez l'aventure, nos services de location de propriétés fiables garantissent que votre aventure commence en toute transparence. Notre mission est de fournir un service client exceptionnel, rendant votre expérience agréable et sans stress. Avec des tarifs compétitifs, une variété de propriétés bien entretenus et une équipe dédiée prête à vous aider, nous nous efforçons d'être votre partenaire de confiance sur la route. Choisissez ${env.WEBSITE_NAME} pour tous vos besoins de location de propriété et découvrez la liberté d'explorer à votre rythme.`,
TITLE2: `Pourquoi choisir ${env.WEBSITE_NAME}`,
SUBTITLE2: "Découvrez l'excellence à chaque voyage",
CONTENT2: "Profitez d'une commodité, d'une fiabilité et d'une valeur inégalées avec notre service de location de propriétés. Des réservations sans effort aux propriétés de haute qualité, nous sommes votre partenaire de voyage de confiance.",
FIND_DEAL: 'Trouver une Offre',
},
en: {
TITLE1: `${env.WEBSITE_NAME} - Your Premier Property Rental Service`,
SUBTITLE1: 'Your Trusted Partner for Property Rentals',
CONTENT1: `At ${env.WEBSITE_NAME}, we understand that every journey is unique. We are committed to providing our customers with a diverse selection of properties that cater to every travel need. Whether you're exploring a city, commuting for business, or seeking adventure, our reliable property rental services ensure that your adventure begins seamlessly. Our mission is to deliver exceptional customer service, making your experience enjoyable and stress-free. With competitive rates, a variety of well-maintained properties, and a dedicated team ready to assist you, we strive to be your trusted partner on the road. Choose ${env.WEBSITE_NAME} for all your property rental needs and experience the freedom to explore at your own pace.`,
TITLE2: `Why Choose ${env.WEBSITE_NAME}`,
SUBTITLE2: 'Experience Excellence in Every Journey',
CONTENT2: "Enjoy unmatched convenience, reliability, and value with our premier property rental service. From effortless bookings to high-quality properties, we're your trusted travel partner.",
FIND_DEAL: 'Find Deal',
},
})

langHelper.setLanguage(strings)
export { strings }
2 changes: 2 additions & 0 deletions frontend/src/lang/header.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const strings = new LocalizedStrings({
SIGN_OUT: 'Déconnexion',
AGENCIES: 'Agences',
LOCATIONS: 'Destinations',
PRIVACY_POLICY: 'Politique de Confidentialité',
},
en: {
SIGN_IN: 'Sign in',
Expand All @@ -27,6 +28,7 @@ const strings = new LocalizedStrings({
SIGN_OUT: 'Sign out',
AGENCIES: 'Agencies',
LOCATIONS: 'Destinations',
PRIVACY_POLICY: 'Privacy Policy',
},
})

Expand Down
126 changes: 126 additions & 0 deletions frontend/src/lang/privacy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
import LocalizedStrings from 'localized-strings'
import * as langHelper from '@/common/langHelper'
import env from '@/config/env.config'

const strings = new LocalizedStrings({
fr: {
TITLE: 'Politique de Confidentialité',
PRIVACY_POLICY: `
Votre vie privée est importante pour nous chez ${env.WEBSITE_NAME}. Cette politique de confidentialité décrit comment nous collectons, utilisons et protégeons vos informations lorsque vous utilisez notre site Web et nos services. En accédant à nos services, vous consentez aux pratiques décrites dans cette politique.
1. Informations que nous collectons
Nous collectons des informations auprès de vous lorsque vous vous inscrivez sur notre site, passez une commande ou interagissez avec nos services. Les informations que nous pouvons collecter comprennent :
Nom
Adresse e-mail
Numéro de téléphone
Informations de paiement
Préférences de location
Vous pouvez visiter notre site de manière anonyme, mais certaines fonctionnalités peuvent être limitées.
2. Comment nous utilisons vos informations
Vos informations peuvent être utilisées des manières suivantes :
Pour traiter vos réservations et paiements
Pour améliorer le service client
Pour envoyer des e-mails périodiques concernant votre commande ou d'autres produits et services
Pour répondre aux demandes de renseignements et d'assistance
3. Comment nous protégeons vos informations
Nous mettons en œuvre diverses mesures de sécurité pour maintenir la sécurité de vos informations personnelles. Toutes les informations sensibles sont transmises via des serveurs sécurisés et ne sont accessibles qu'au personnel autorisé. Nous ne stockons pas vos informations de carte de crédit sur nos serveurs.
4. Partage de vos informations
Nous ne vendons, n'échangeons ni ne transférons vos informations personnelles identifiables à des tiers, sauf à des partenaires de confiance qui nous aident à exploiter notre site Web, à mener nos activités ou à vous fournir des services, tant que ces parties acceptent de garder ces informations confidentielles. Nous pouvons également divulguer vos informations lorsque nous pensons que cette divulgation est appropriée pour se conformer à la loi, appliquer les politiques de notre site ou protéger nos droits ou ceux d'autrui, notre propriété ou notre sécurité.
5. Confidentialité des enfants
Nous respectons la loi sur la protection de la vie privée des enfants en ligne (Children's Online Privacy Protection Act, COPPA). Nos services ne sont pas destinés aux enfants de moins de 13 ans et nous ne collectons pas sciemment d'informations personnelles auprès d'enfants de moins de 13 ans. Si nous apprenons que nous avons collecté des informations personnelles auprès d'un enfant de moins de 13 ans, nous prendrons des mesures pour supprimer ces informations.
6. Modifications de notre politique de confidentialité
Nous pouvons mettre à jour cette politique de confidentialité de temps à autre. Nous vous informerons de tout changement en publiant la nouvelle politique de confidentialité sur cette page. Il vous est conseillé de consulter régulièrement cette politique de confidentialité pour prendre connaissance de tout changement.
7. Vos droits
Vous avez le droit de demander l'accès aux informations personnelles que nous détenons à votre sujet, de demander la correction de toute inexactitude et de demander la suppression de vos informations personnelles, sous réserve de certaines exceptions. Pour exercer ces droits, veuillez nous contacter en utilisant les informations fournies ci-dessous.
8. Contactez-nous
Si vous avez des questions sur cette politique de confidentialité ou sur nos pratiques en matière de données, veuillez nous contacter à l'adresse ${env.CONTACT_EMAIL}. Nous nous engageons à répondre à vos préoccupations et à protéger votre vie privée.
9. Reconnaissance
En utilisant nos services, vous reconnaissez avoir lu et compris cette politique de confidentialité et acceptez ses conditions.
`,
},
en: {
TITLE: 'Privacy Policy',
PRIVACY_POLICY: `
Your privacy is important to us at ${env.WEBSITE_NAME}. This Privacy Policy outlines how we collect, use, and protect your information when you use our website and services. By accessing our services, you consent to the practices described in this policy.
1. Information We Collect
We collect information from you when you register on our site, place an order, or interact with our services. The information we may collect includes:
Name
Email address
Phone number
Payment information
Rental preferences
You may visit our site anonymously, but certain functionalities may be limited.
2. How We Use Your Information
Your information may be used in the following ways:
To process your reservations and payments
To improve customer service
To send periodic emails regarding your order or other products and services
To respond to inquiries and support requests
3. How We Protect Your Information
We implement a variety of security measures to maintain the safety of your personal information. All sensitive information is transmitted via secure servers and is only accessible by authorized personnel. We do not store your credit card information on our servers.
4. Sharing Your Information
We do not sell, trade, or otherwise transfer your personally identifiable information to outside parties, except to trusted partners who assist us in operating our website, conducting our business, or servicing you, as long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect our rights or others' rights, property, or safety.
5. Children's Privacy
We comply with the Children's Online Privacy Protection Act (COPPA). Our services are not directed to children under the age of 13, and we do not knowingly collect personal information from children under 13. If we become aware that we have collected personal information from a child under 13, we will take steps to delete such information.
6. Changes to Our Privacy Policy
We may update this Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page. You are advised to review this Privacy Policy periodically for any changes.
7. Your Rights
You have the right to request access to the personal information we hold about you, to request correction of any inaccuracies, and to request deletion of your personal information, subject to certain exceptions. To exercise these rights, please contact us using the information provided below.
8. Contact Us
If you have any questions about this Privacy Policy or our data practices, please contact us at ${env.CONTACT_EMAIL}. We are committed to addressing your concerns and protecting your privacy.
9. Acknowledgment
By using our services, you acknowledge that you have read and understood this Privacy Policy and agree to its terms.
`,
},
})

langHelper.setLanguage(strings)
export { strings }
Loading

0 comments on commit 40488f7

Please sign in to comment.