diff --git a/projects/account/src/app/app.module.ts b/projects/account/src/app/app.module.ts index 4b43503..f5f6afe 100644 --- a/projects/account/src/app/app.module.ts +++ b/projects/account/src/app/app.module.ts @@ -30,6 +30,7 @@ import { ProfileModule } from './modules/profile/profile.module'; import { SharedModule as SharedLibModule } from 'shared'; import { SharedModule } from 'shared'; import { SkillModule } from './modules/skill/skill.module'; +import { PersonalDataModule } from './modules/personal-data/personal-data.module'; @NgModule( { @@ -41,6 +42,7 @@ import { SkillModule } from './modules/skill/skill.module'; GlobalnavModule, HttpClientModule, DeviceModule, + PersonalDataModule, ProfileModule, SharedLibModule, SharedModule, diff --git a/projects/account/src/app/modules/personal-data/personal-data-routing.module.ts b/projects/account/src/app/modules/personal-data/personal-data-routing.module.ts new file mode 100644 index 0000000..a9635b0 --- /dev/null +++ b/projects/account/src/app/modules/personal-data/personal-data-routing.module.ts @@ -0,0 +1,36 @@ +/*! ***************************************************************************** +SPDX-License-Identifier: Apache-2.0 + + +Copyright (c) Mycroft AI Inc. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { PersonalDataComponent } from './personal-data.component'; + +const personalDataRoutes: Routes = [ + {path: 'personal-data', component: PersonalDataComponent}, +]; + +@NgModule({ + imports: [ + RouterModule.forChild(personalDataRoutes) + ], + exports: [ + RouterModule + ] +}) +export class PersonalDataRoutingModule { } diff --git a/projects/account/src/app/modules/personal-data/personal-data.component.html b/projects/account/src/app/modules/personal-data/personal-data.component.html new file mode 100644 index 0000000..8ad5a85 --- /dev/null +++ b/projects/account/src/app/modules/personal-data/personal-data.component.html @@ -0,0 +1,90 @@ +

Data Mycroft Collects

+
+ + + + Email Address + + +

+ When you created this account, you provided your email address. It is the method we + use to identify users. It is also used to send you confirmation messages when + actions are taken against your account. For example, a password reset request is + sent to this email address. +

+ We do not use your email address for marketing purposes, unless you used the same + email address to sign up for our newsletter or other such mailing list. Your email + address is never shared with third parties. +

+
+
+ + + + + Geographical Location + + +

+ When you register a device with Mycroft, the Add Device screen asks for the + geographical location of yor device. This data is synchronized to your device when + it is registered and when it is changed via the Edit Device screen. Your device + uses this data for location-specific services such as date, time and weather. +

+
+
+ + + + + Data Presentation + + +

+ When you register your first device, you are asked for your preferred date format, + time format, and measurement system. This data is synchronized to each of your + devices when they are registered. If the values of these preferences change, the + new values are synchronized to all your devices. Your device uses this data for + when formatting data for presentation such as date, time and weather. +

+
+
+
+ +

Data Sent to Third Parties

+
+ + + + Speech Transcription + + +

+ When you issue a command or request to your voice assistant, the audio data is + transcribed into text. The transcription can be performed on your device, but + on-device transcription software does not provide the best user experience. + Transcriptions are more accurate when sent to a third party service provider + over the internet. +

+ Mycroft has partnered with Assembly AI to provide a privacy focused solution for + speech transcription. Your voice request will be sent for transcription, but will + not be saved. +

+
+
+ + + + + Answering Queries + + +

+ When you ask the Mycroft voice assistant a question that cannot be answered by one + of the installed skills, a textual representation of the question is sent to + services like Wolfram Alpha, Duck Duck Go and Wikipedia in an attempt to find the + answer. +

+
+
+
diff --git a/projects/account/src/app/modules/personal-data/personal-data.component.scss b/projects/account/src/app/modules/personal-data/personal-data.component.scss new file mode 100644 index 0000000..2f2a966 --- /dev/null +++ b/projects/account/src/app/modules/personal-data/personal-data.component.scss @@ -0,0 +1,42 @@ +@import "@angular/material/theming"; +@import "mycroft-colors"; +@import "components/buttons"; + +.personal-data-page { + max-width: 1200px; + margin-left: auto; + margin-right: auto; +} + +.mat-h1 { + color: mat-color($mycroft-accent); + font-size: 32px; + margin-top: 32px; +} + +mat-card { + border-radius: 12px; + margin: 16px; + max-width: 500px; + min-width: 300px; + + mat-card-header { + fa-icon { + font-size: 32px; + color: mat-color($mycroft-primary); + padding-left: 16px; + padding-top: 8px; + } + + mat-card-title { + font-weight: bold; + padding-top: 16px; + } + } + + mat-card-content { + padding: 16px; + + } + +} diff --git a/projects/account/src/app/modules/personal-data/personal-data.component.ts b/projects/account/src/app/modules/personal-data/personal-data.component.ts new file mode 100644 index 0000000..0847064 --- /dev/null +++ b/projects/account/src/app/modules/personal-data/personal-data.component.ts @@ -0,0 +1,22 @@ +import { Component, OnInit } from '@angular/core'; + +import { faComments, faEarthAmericas, faEnvelope, faGauge, faQuestionCircle } from '@fortawesome/free-solid-svg-icons'; + +@Component({ + selector: 'account-personal-data', + templateUrl: './personal-data.component.html', + styleUrls: ['./personal-data.component.scss'] +}) +export class PersonalDataComponent implements OnInit { + public dataPresentationIcon = faGauge; + public emailAddressIcon = faEnvelope; + public locationIcon = faEarthAmericas; + public queryIcon = faQuestionCircle; + public voiceIcon = faComments; + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/projects/account/src/app/modules/personal-data/personal-data.module.ts b/projects/account/src/app/modules/personal-data/personal-data.module.ts new file mode 100644 index 0000000..1a84e9d --- /dev/null +++ b/projects/account/src/app/modules/personal-data/personal-data.module.ts @@ -0,0 +1,43 @@ +/*! ***************************************************************************** +SPDX-License-Identifier: Apache-2.0 + + +Copyright (c) Mycroft AI Inc. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FlexLayoutModule } from '@angular/flex-layout'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; + +import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; + +import { PersonalDataComponent } from './personal-data.component'; +import { PersonalDataRoutingModule } from './personal-data-routing.module'; + +@NgModule({ + declarations: [ + PersonalDataComponent + ], + imports: [ + CommonModule, + FlexLayoutModule, + FontAwesomeModule, + MatButtonModule, + MatCardModule, + PersonalDataRoutingModule + ] +}) +export class PersonalDataModule { }