[frontend] Add faqs, text and footer

This commit is contained in:
Cathy Hu 2020-09-09 13:22:20 +02:00
parent e370270ed6
commit 9091654cc0
25 changed files with 337 additions and 65 deletions

View file

@ -2,3 +2,4 @@
<div class="content"> <div class="content">
<router-outlet></router-outlet> <router-outlet></router-outlet>
</div> </div>
<app-footer></app-footer>

View file

@ -26,6 +26,7 @@ import { ErrorInterceptor } from './core/auth/error.interceptor';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MarkdownModule } from 'ngx-markdown'; import { MarkdownModule } from 'ngx-markdown';
import { PlatformsModule } from './platforms/platforms.module'; import { PlatformsModule } from './platforms/platforms.module';
import { FaqComponent } from './homepage/faq/faq.component';
@NgModule({ @NgModule({
declarations: [ declarations: [
@ -37,6 +38,7 @@ import { PlatformsModule } from './platforms/platforms.module';
LoginComponent, LoginComponent,
RegisterComponent, RegisterComponent,
ConfirmComponent, ConfirmComponent,
FaqComponent,
], ],
imports: [ imports: [
BrowserModule, BrowserModule,

View file

@ -1,3 +1,19 @@
<div class="explanation">
<mat-accordion>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
<mat-icon class="info-button">info</mat-icon>
<div class="info-title">
How to use add platforms to distribute messages
</div>
</mat-panel-title>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
</mat-accordion>
</div>
<div class="platforms-container"> <div class="platforms-container">
<app-email-settings [hoodId]="hoodId"></app-email-settings> <app-email-settings [hoodId]="hoodId"></app-email-settings>
<app-twitter-settings [hoodId]="hoodId"></app-twitter-settings> <app-twitter-settings [hoodId]="hoodId"></app-twitter-settings>

View file

@ -9,3 +9,14 @@
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }
} }
.explanation {
margin: 1%;
margin-top: 20px;
margin-bottom: 20px;
}
.info-title {
margin-top: 2px;
margin-left: 10px;
}

View file

@ -14,6 +14,7 @@ import { HttpClient } from '@angular/common/http';
import { NewHoodDialogComponent } from './hoods/new-hood-dialog/new-hood-dialog.component'; import { NewHoodDialogComponent } from './hoods/new-hood-dialog/new-hood-dialog.component';
import { PlatformsModule } from '../platforms/platforms.module'; import { PlatformsModule } from '../platforms/platforms.module';
import { SettingsComponent } from './board/settings/settings.component'; import { SettingsComponent } from './board/settings/settings.component';
import { FaqComponent } from './hoods/faq/faq.component';
@NgModule({ @NgModule({
declarations: [ declarations: [
@ -27,6 +28,7 @@ import { SettingsComponent } from './board/settings/settings.component';
BadwordsComponent, BadwordsComponent,
NewHoodDialogComponent, NewHoodDialogComponent,
SettingsComponent, SettingsComponent,
FaqComponent,
], ],
imports: [ imports: [
DashboardRoutingModule, DashboardRoutingModule,

View file

@ -0,0 +1,35 @@
<div class="container">
<h2>FAQ</h2>
<mat-accordion>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title
>I just created an account. How do I proceed?</mat-panel-title
>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title
>My messages don't not get broadcasted, why?</mat-panel-title
>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title
>Someone is spamming my hood, how do I stop it?</mat-panel-title
>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>My hood page is empty, why?</mat-panel-title>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
</mat-accordion>
</div>

View file

@ -0,0 +1,17 @@
h2 {
font-weight: bold;
font-size: 1.6375rem;
}
.container {
padding: 5% 10% 5% 10%;
min-height: 300px;
gap: 50px;
height: 70%;
align-items: center;
@media (max-width: 600px) {
padding-top: 10%;
grid-template-columns: 1fr;
text-align: left;
}
}

View file

@ -0,0 +1,24 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { FaqComponent } from './faq.component';
describe('FaqComponent', () => {
let component: FaqComponent;
let fixture: ComponentFixture<FaqComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [FaqComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(FaqComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,12 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-faq',
templateUrl: './faq.component.html',
styleUrls: ['./faq.component.scss'],
})
export class FaqComponent implements OnInit {
constructor() {}
ngOnInit(): void {}
}

View file

@ -51,3 +51,7 @@
</div> </div>
<div class="banner"></div> <div class="banner"></div>
</div> </div>
<div class="container">
<div class="banner"></div>
<app-faq></app-faq>
</div>

View file

@ -0,0 +1,57 @@
<div class="container">
<h2>FAQ</h2>
<mat-accordion>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>What is a Kibicara hood?</mat-panel-title>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>What is a public hood page?</mat-panel-title>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>What is a hood admin?</mat-panel-title>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>How can I use Kibicara?</mat-panel-title>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title
>I want to be included in a Kibicara hood. How?</mat-panel-title
>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>I want to be a hood admin. How?</mat-panel-title>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>Are my messages anonymous?</mat-panel-title>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title
>What information do you save about me?</mat-panel-title
>
</mat-expansion-panel-header>
<p></p>
</mat-expansion-panel>
</mat-accordion>
</div>

View file

@ -0,0 +1,16 @@
h2 {
font-weight: bold;
font-size: 1.6375rem;
}
.container {
padding: 5% 10% 5% 10%;
gap: 50px;
height: 70%;
align-items: center;
@media (max-width: 600px) {
padding-top: 10%;
grid-template-columns: 1fr;
text-align: left;
}
}

View file

@ -0,0 +1,24 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { FaqComponent } from './faq.component';
describe('FaqComponent', () => {
let component: FaqComponent;
let fixture: ComponentFixture<FaqComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [FaqComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(FaqComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,12 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-faq',
templateUrl: './faq.component.html',
styleUrls: ['./faq.component.scss'],
})
export class FaqComponent implements OnInit {
constructor() {}
ngOnInit(): void {}
}

View file

@ -56,15 +56,16 @@
<div class="howto"> <div class="howto">
<h2>Gather a new hood!</h2> <h2>Gather a new hood!</h2>
If you want to create your own hood for your community, you can read our If you want to create your own hood for your community, you can read our
<a [routerLink]="['/organizers']">FAQ</a> for hood-admins. As a hood admin <a [routerLink]="['/organizers']">page</a> for hood-admins.
you can create a new real-life social network by sharing the
<a [routerLink]="['/hoods']">public page</a> of your hood and start
networking with your real life neighbors.
</div> </div>
<div class="howto"> <div class="howto">
<h2>Contribute!</h2> <h2>Contribute!</h2>
Kibicara is Free and Open Source software (FOSS). If you want to contribute Kibicara is Open Source software! If you want to contribute to the
to the development of Kibicara or report a bug check out our development of Kibicara check out our
<a href="https://github.com/acipm/kibicara">Github</a>. <a href="https://github.com/acipm/kibicara">Github</a>.
</div> </div>
</div> </div>
<div class="banner2"></div>
<app-faq></app-faq>

View file

@ -29,7 +29,7 @@
@media (max-width: 600px) { @media (max-width: 600px) {
padding-top: 10%; padding-top: 10%;
grid-template-columns: 1fr; grid-template-columns: 1fr;
text-align: center; text-align: left;
} }
} }
@ -50,10 +50,11 @@
display: grid; display: grid;
grid-template-columns: 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr;
gap: 5%; gap: 5%;
margin: 10%; margin: 5% 10% 5% 10%;
@media (max-width: 600px) { @media (max-width: 800px) {
grid-template-columns: 1fr; grid-template-columns: 1fr;
gap: 1%; margin-bottom: 200px;
margin-top: 100px;
} }
} }
@ -61,10 +62,12 @@
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
gap: 5%; gap: 5%;
margin: 10%; margin: 5% 10% 5% 10%;
@media (max-width: 600px) { @media (max-width: 800px) {
grid-template-columns: 1fr; grid-template-columns: 1fr;
gap: 1%; gap: 10%;
margin-top: 100px;
margin-bottom: 200px;
} }
} }

View file

@ -11,7 +11,6 @@
.page { .page {
padding-left: 10%; padding-left: 10%;
padding-right: 10%; padding-right: 10%;
margin-bottom: 3%;
} }
.list { .list {
@ -46,16 +45,15 @@ h1 {
} }
.text { .text {
padding-top: 40px; padding-top: 15%;
padding-bottom: 30px; padding-bottom: 15%;
color: gray; color: gray;
font-size: 1.4375rem; font-size: 1.4375rem;
line-height: 1.875rem; line-height: 1.875rem;
@media (max-width: 600px) { @media (max-width: 600px) {
grid-template-columns: 1fr; grid-template-columns: 1fr;
padding-top: 0px;
padding-bottom: 0px;
text-align: center; text-align: center;
padding-bottom: 3%;
} }
} }

View file

@ -2,55 +2,41 @@
<div class="howto-container"> <div class="howto-container">
<div class="howto"> <div class="howto">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod <h2>Build your community</h2>
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, Hood admins build a real life community by creating a network of people - be
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo it neighborhood communities, interest-based groups or any other squads!
consequat.
</div> </div>
<div class="howto"> <div class="howto">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod <h2>Customize your hood</h2>
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, Kibicara provides the technology for hood admins to connect people over
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo different messaging platforms. Hood admins customize their Kibicara hood to
consequat. fit their community's needs.
</div> </div>
<div class="howto"> <div class="howto">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod <h2>Share the information</h2>
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, Hood admins share the platform-specific broadcasting endpoints with their
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo community and provide the information and technology to its members. This is
consequat. done by providing a <a [routerLink]="['/hoods']">public hood page</a>.
</div> </div>
</div> </div>
<div class="container"> <div class="container">
<p class="text"> <div class="text">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod <h2>How does it work?</h2>
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, <ol>
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo <li>
consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do Create a Kibicara
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim <a class="white-a" [routerLink]="['/register']">hood admin account</a>.
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea </li>
commodo consequat. <li>
</p> <a class="white-a" [routerLink]="['/register']">Log in</a> to your
account and create a hood.
</li>
<li>Add platform connections to your hood.</li>
<li>Provide a description for your hood page.</li>
<li>(Optional) Create custom filters for messages.</li>
<li>Share your public hood page with your community's members!</li>
</ol>
</div>
<a mat-raised-button [routerLink]="['/register']">Register as hood admin!</a> <a mat-raised-button [routerLink]="['/register']">Register as hood admin!</a>
</div> </div>
<div class="howto-container">
<div class="howto">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</div>
<div class="howto">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</div>
<div class="howto">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</div>
</div>

View file

@ -3,9 +3,9 @@
grid-template-columns: 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr;
gap: 5%; gap: 5%;
margin: 5% 10% 5% 10%; margin: 5% 10% 5% 10%;
@media (max-width: 600px) { @media (max-width: 800px) {
grid-template-columns: 1fr; grid-template-columns: 1fr;
gap: 1%; margin-bottom: 100px;
} }
} }
@ -27,7 +27,8 @@
@media (max-width: 600px) { @media (max-width: 600px) {
padding-top: 10%; padding-top: 10%;
grid-template-columns: 1fr; grid-template-columns: 1fr;
text-align: center; gap: 0px;
text-align: left;
} }
} }
@ -38,3 +39,13 @@
font-size: 1.4375rem; font-size: 1.4375rem;
line-height: 1.875rem; line-height: 1.875rem;
} }
h2 {
font-weight: bold;
font-size: 1.6375rem;
}
.white-a {
color: white;
text-decoration: underline;
}

View file

@ -6,7 +6,7 @@
Twitter Twitter
<button mat-icon-button aria-label="How to use"> <button mat-icon-button aria-label="How to use">
<mat-icon <mat-icon
matTooltip="How to send and receive hood broadcast messages with twitteu" matTooltip="How to send and receive hood broadcast messages with twitter"
class="info-button" class="info-button"
(click)="onInfoClick()" (click)="onInfoClick()"
>info</mat-icon >info</mat-icon

View file

@ -0,0 +1 @@
<mat-toolbar color="primary"> </mat-toolbar>

View file

@ -0,0 +1,24 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { FooterComponent } from './footer.component';
describe('FooterComponent', () => {
let component: FooterComponent;
let fixture: ComponentFixture<FooterComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [FooterComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(FooterComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,12 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-footer',
templateUrl: './footer.component.html',
styleUrls: ['./footer.component.scss'],
})
export class FooterComponent implements OnInit {
constructor() {}
ngOnInit(): void {}
}

View file

@ -9,6 +9,7 @@ import { Ng2SearchPipeModule } from 'ng2-search-filter';
import { YesNoDialogComponent } from './yes-no-dialog/yes-no-dialog.component'; import { YesNoDialogComponent } from './yes-no-dialog/yes-no-dialog.component';
import { OverlayComponent } from './overlay/overlay.component'; import { OverlayComponent } from './overlay/overlay.component';
import { HeadingOneComponent } from './heading-one/heading-one.component'; import { HeadingOneComponent } from './heading-one/heading-one.component';
import { FooterComponent } from './footer/footer.component';
@NgModule({ @NgModule({
declarations: [ declarations: [
@ -17,6 +18,7 @@ import { HeadingOneComponent } from './heading-one/heading-one.component';
YesNoDialogComponent, YesNoDialogComponent,
OverlayComponent, OverlayComponent,
HeadingOneComponent, HeadingOneComponent,
FooterComponent,
], ],
imports: [ imports: [
MaterialModule, MaterialModule,
@ -30,6 +32,7 @@ import { HeadingOneComponent } from './heading-one/heading-one.component';
ToolbarComponent, ToolbarComponent,
NotFoundComponent, NotFoundComponent,
HeadingOneComponent, HeadingOneComponent,
FooterComponent,
MaterialModule, MaterialModule,
ReactiveFormsModule, ReactiveFormsModule,
FormsModule, FormsModule,