├── src
├── assets
│ ├── .gitkeep
│ ├── logo.png
│ ├── icons
│ │ ├── icon-72x72.png
│ │ ├── icon-96x96.png
│ │ ├── icon-128x128.png
│ │ ├── icon-144x144.png
│ │ ├── icon-152x152.png
│ │ ├── icon-192x192.png
│ │ ├── icon-384x384.png
│ │ └── icon-512x512.png
│ ├── fonts
│ │ └── google-sans.woff2
│ └── user.svg
├── app
│ ├── app.component.scss
│ ├── layout
│ │ ├── fez
│ │ │ ├── fez.component.scss
│ │ │ ├── fez.component.ts
│ │ │ ├── fez.component.html
│ │ │ └── fez.component.spec.ts
│ │ ├── agadir
│ │ │ ├── agadir.component.scss
│ │ │ ├── agadir.component.ts
│ │ │ ├── agadir.component.html
│ │ │ └── agadir.component.spec.ts
│ │ ├── chat
│ │ │ ├── chat.component.scss
│ │ │ ├── chat.component.spec.ts
│ │ │ ├── chat.component.html
│ │ │ └── chat.component.ts
│ │ ├── city
│ │ │ ├── city.component.scss
│ │ │ ├── city.component.ts
│ │ │ ├── city.component.spec.ts
│ │ │ └── city.component.html
│ │ ├── item
│ │ │ ├── item.component.scss
│ │ │ ├── item.component.spec.ts
│ │ │ ├── item.component.ts
│ │ │ └── item.component.html
│ │ ├── login
│ │ │ ├── login.component.scss
│ │ │ ├── login.component.spec.ts
│ │ │ ├── login.component.ts
│ │ │ └── login.component.html
│ │ ├── main
│ │ │ ├── main.component.scss
│ │ │ ├── main.component.ts
│ │ │ ├── main.component.spec.ts
│ │ │ └── main.component.html
│ │ ├── rabat
│ │ │ ├── rabat.component.scss
│ │ │ ├── rabat.component.ts
│ │ │ ├── rabat.component.html
│ │ │ └── rabat.component.spec.ts
│ │ ├── discover
│ │ │ ├── discover.component.scss
│ │ │ ├── discover.component.spec.ts
│ │ │ ├── discover.component.html
│ │ │ └── discover.component.ts
│ │ ├── products
│ │ │ ├── products.component.scss
│ │ │ ├── products.component.spec.ts
│ │ │ ├── products.component.html
│ │ │ └── products.component.ts
│ │ ├── sign-up
│ │ │ ├── sign-up.component.scss
│ │ │ ├── sign-up.component.spec.ts
│ │ │ ├── sign-up.component.ts
│ │ │ └── sign-up.component.html
│ │ ├── tangier
│ │ │ ├── tangier.component.scss
│ │ │ ├── tangier.component.ts
│ │ │ ├── tangier.component.html
│ │ │ └── tangier.component.spec.ts
│ │ ├── casablanca
│ │ │ ├── casablanca.component.scss
│ │ │ ├── casablanca.component.ts
│ │ │ ├── casablanca.component.html
│ │ │ └── casablanca.component.spec.ts
│ │ ├── marrakech
│ │ │ ├── marrakech.component.scss
│ │ │ ├── marrakech.component.ts
│ │ │ ├── marrakech.component.html
│ │ │ └── marrakech.component.spec.ts
│ │ └── explore
│ │ │ ├── explore.component.scss
│ │ │ ├── explore.component.spec.ts
│ │ │ ├── explore.component.html
│ │ │ └── explore.component.ts
│ ├── shared
│ │ ├── footer
│ │ │ ├── footer.component.scss
│ │ │ ├── footer.component.ts
│ │ │ ├── footer.component.spec.ts
│ │ │ └── footer.component.html
│ │ ├── header
│ │ │ ├── header.component.scss
│ │ │ ├── header.component.spec.ts
│ │ │ ├── header.component.ts
│ │ │ └── header.component.html
│ │ ├── item
│ │ │ ├── item.component.scss
│ │ │ ├── item.component.html
│ │ │ ├── item.component.ts
│ │ │ └── item.component.spec.ts
│ │ ├── not-found
│ │ │ ├── not-found.component.scss
│ │ │ ├── not-found.component.ts
│ │ │ ├── not-found.component.spec.ts
│ │ │ └── not-found.component.html
│ │ ├── user-avatar
│ │ │ ├── user-avatar.component.scss
│ │ │ ├── user-avatar.component.html
│ │ │ ├── user-avatar.component.ts
│ │ │ └── user-avatar.component.spec.ts
│ │ └── sign-in-google
│ │ │ ├── sign-in-google.component.scss
│ │ │ ├── sign-in-google.component.spec.ts
│ │ │ ├── sign-in-google.component.html
│ │ │ └── sign-in-google.component.ts
│ ├── app.component.html
│ ├── components
│ │ ├── card-event
│ │ │ ├── card-event.component.scss
│ │ │ ├── card-event.component.ts
│ │ │ ├── card-event.component.html
│ │ │ └── card-event.component.spec.ts
│ │ ├── no-data
│ │ │ ├── no-data.component.html
│ │ │ └── no-data.component.ts
│ │ ├── button
│ │ │ ├── button.component.html
│ │ │ ├── button.component.ts
│ │ │ └── button.properties.ts
│ │ ├── loading
│ │ │ ├── loading.component.ts
│ │ │ └── loading.component.html
│ │ ├── input
│ │ │ ├── input.properties.ts
│ │ │ ├── input.component.html
│ │ │ └── input.component.ts
│ │ ├── tags-input
│ │ │ ├── tags-input.component.html
│ │ │ └── tags-input.component.ts
│ │ ├── file-input
│ │ │ ├── file-input.component.ts
│ │ │ └── file-input.component.html
│ │ └── choice
│ │ │ ├── choice.component.html
│ │ │ └── choice.component.ts
│ ├── core
│ │ ├── models
│ │ │ ├── message.ts
│ │ │ ├── item.ts
│ │ │ └── user.ts
│ │ ├── services
│ │ │ ├── chat.service.spec.ts
│ │ │ ├── data.service.spec.ts
│ │ │ ├── authentification.service.spec.ts
│ │ │ ├── chat.service.ts
│ │ │ ├── data.service.ts
│ │ │ └── authentification.service.ts
│ │ └── data
│ │ │ ├── storage.service.spec.ts
│ │ │ └── storage.service.ts
│ ├── app.config.server.ts
│ ├── app.component.spec.ts
│ ├── app.component.ts
│ ├── app.config.ts
│ └── app.routes.ts
├── favicon.ico
├── main.ts
├── main.server.ts
├── styles.scss
├── environments
│ ├── environment.ts
│ └── environment.development.ts
├── index.html
└── manifest.webmanifest
├── firestores.indexes.json
├── gitImage
├── main.jpeg
├── discover.jpeg
└── architecture.png
├── database.rules.json
├── .vscode
├── extensions.json
├── launch.json
└── tasks.json
├── .firebaserc
├── firebase.json
├── tsconfig.spec.json
├── .editorconfig
├── tsconfig.app.json
├── tailwind.config.js
├── .github
└── workflows
│ ├── firebase-hosting-merge.yml
│ └── firebase-hosting-pull-request.yml
├── firestore.rules
├── ngsw-config.json
├── .gitignore
├── storage.rules
├── tsconfig.json
├── package.json
├── server.ts
├── README.md
└── angular.json
/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/app.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/layout/fez/fez.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/layout/agadir/agadir.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/layout/chat/chat.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/layout/city/city.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/layout/item/item.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/layout/login/login.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/layout/main/main.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/layout/rabat/rabat.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/shared/footer/footer.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/shared/header/header.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/shared/item/item.component.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
item works!
2 | -------------------------------------------------------------------------------- /src/app/shared/sign-in-google/sign-in-google.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /firestores.indexes.json: -------------------------------------------------------------------------------- 1 | { 2 | "indexes": [], 3 | "fieldOverrides": [] 4 | } 5 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/favicon.ico -------------------------------------------------------------------------------- /gitImage/main.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/gitImage/main.jpeg -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /database.rules.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | ".read": false, 4 | ".write": false 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /gitImage/discover.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/gitImage/discover.jpeg -------------------------------------------------------------------------------- /gitImage/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/gitImage/architecture.png -------------------------------------------------------------------------------- /src/assets/icons/icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/assets/icons/icon-72x72.png -------------------------------------------------------------------------------- /src/assets/icons/icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/assets/icons/icon-96x96.png -------------------------------------------------------------------------------- /src/assets/fonts/google-sans.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/assets/fonts/google-sans.woff2 -------------------------------------------------------------------------------- /src/assets/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/assets/icons/icon-128x128.png -------------------------------------------------------------------------------- /src/assets/icons/icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/assets/icons/icon-144x144.png -------------------------------------------------------------------------------- /src/assets/icons/icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/assets/icons/icon-152x152.png -------------------------------------------------------------------------------- /src/assets/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/assets/icons/icon-192x192.png -------------------------------------------------------------------------------- /src/assets/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/assets/icons/icon-384x384.png -------------------------------------------------------------------------------- /src/assets/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AhmedHoussamBouzine/safeguide/HEAD/src/assets/icons/icon-512x512.png -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 3 | "recommendations": ["angular.ng-template"] 4 | } 5 | -------------------------------------------------------------------------------- /src/app/core/models/message.ts: -------------------------------------------------------------------------------- 1 | import { Timestamp } from "@angular/fire/firestore"; 2 | export interface Message { 3 | content: string; 4 | sender: string; 5 | timestamp: Timestamp; 6 | } 7 | -------------------------------------------------------------------------------- /src/app/components/no-data/no-data.component.html: -------------------------------------------------------------------------------- 1 |{{ message }}
4 |{{ event.content }}
9 | 10 | 11 | More info 12 | 13 |8 | Where history meets modernity, a vibrant tapestry of culture, colors, and warm hospitality. 9 |
10 | Discover 12 |6 | 20 |
21 |23 | The page you are looking for doesn't exist. Here are some helpful links: 24 |
25 | 26 |19 | {{ content }} 20 |
21 |{{product.minprice}} DH < Normal Price 21 | < {{product.maxprice}} DH
22 |{{product.category}} . {{product.city}}
23 |Feel free to share information or answer other users.
13 |21 | {{ msg.sender}} {{ time(msg.timestamp.toDate()) }} 22 |
23 |{{msg.content}}
25 |0.3km
27 |2 hours
31 |{{ city.desc }}
34 |{{ city.stadiumDesc }}
40 | 41 | 42 |
27 |
28 |
9 | {{ product.desc }} 10 |
11 | 28 |57 | Please note that the displayed prices are for reference only and represent averages, not final or actual costs. 58 |
59 | 60 | Terms of use 61 | 62 |