-
+
+
+
-
-
+
+
+
-
+
-
-
+
\ No newline at end of file
diff --git a/cerberus/src/app/applications/status/status.component.html b/cerberus/src/app/applications/status/status.component.html
new file mode 100644
index 0000000..538602b
--- /dev/null
+++ b/cerberus/src/app/applications/status/status.component.html
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/cerberus/src/app/applications/status/status.component.scss b/cerberus/src/app/applications/status/status.component.scss
new file mode 100644
index 0000000..9528d10
--- /dev/null
+++ b/cerberus/src/app/applications/status/status.component.scss
@@ -0,0 +1,6 @@
+.application-list {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ flex-wrap: wrap;
+}
\ No newline at end of file
diff --git a/cerberus/src/app/applications/status/status.component.ts b/cerberus/src/app/applications/status/status.component.ts
new file mode 100644
index 0000000..164a40c
--- /dev/null
+++ b/cerberus/src/app/applications/status/status.component.ts
@@ -0,0 +1,32 @@
+import { Component, OnInit } from '@angular/core';
+import { Application } from 'src/app/core/entities/Application';
+import { ApplicationService } from 'src/app/core/services/application.service';
+
+@Component({
+ selector: 'app-status',
+ templateUrl: './status.component.html',
+ styleUrls: ['./status.component.scss']
+})
+export class StatusComponent implements OnInit {
+ applications: Application[] = [];
+
+ constructor(
+ private _applicationService: ApplicationService
+ ) {}
+
+ ngOnInit(): void {
+ this.applications.push({
+ name: 'Codiki',
+ image: 'https://gitea.takiguchi.ovh/avatars/7639cce68867d968ec848e444d726c8b',
+ status: 'started'
+ } as Application, {
+ name: 'Minager',
+ image: 'https://gitea.takiguchi.ovh/avatars/2f5f6bc51f8e16f0467885d7bc0d1f8b',
+ status: 'stoped'
+ } as Application, {
+ name: 'Tamotsu',
+ image: 'https://gitea.takiguchi.ovh/avatars/6c339db7805f158c21b4eed47758dbb1',
+ status: 'started'
+ } as Application);
+ }
+}
diff --git a/cerberus/src/app/core/components/application-card/application-card.component.html b/cerberus/src/app/core/components/application-card/application-card.component.html
new file mode 100644
index 0000000..8cb0bd9
--- /dev/null
+++ b/cerberus/src/app/core/components/application-card/application-card.component.html
@@ -0,0 +1,7 @@
+
+
+
![]()
+
+
+
{{application?.name}}
+
\ No newline at end of file
diff --git a/cerberus/src/app/core/components/application-card/application-card.component.scss b/cerberus/src/app/core/components/application-card/application-card.component.scss
new file mode 100644
index 0000000..6cedab8
--- /dev/null
+++ b/cerberus/src/app/core/components/application-card/application-card.component.scss
@@ -0,0 +1,44 @@
+.application-card {
+ margin: 2rem;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+
+ .logo {
+ position: relative;
+
+ img {
+ width: 164px;
+ height: 164px;
+ background-color: #fff;
+ border-radius: 4px;
+ box-shadow: 0px 5px 10px 1px rgba(0,0,0,0.2);
+ }
+
+ .status {
+ width: 2rem;
+ height: 2rem;
+
+ border-radius: 10em;
+ position: absolute;
+ bottom: 10px;
+ right: 5px;
+
+ &.started {
+ background-image: linear-gradient(#5bc13e, #1fa200);
+ border: 2px solid #136900;
+ }
+ &.stoped {
+ background-image: linear-gradient(#c13e3e, #a20000);
+ border: 2px solid #770000;
+ }
+ }
+ }
+
+
+ .name {
+ margin: .5rem;
+ font-weight: 500;
+ }
+}
\ No newline at end of file
diff --git a/cerberus/src/app/core/components/application-card/application-card.component.ts b/cerberus/src/app/core/components/application-card/application-card.component.ts
new file mode 100644
index 0000000..f70d5fd
--- /dev/null
+++ b/cerberus/src/app/core/components/application-card/application-card.component.ts
@@ -0,0 +1,26 @@
+import { Component, Input, OnInit } from '@angular/core';
+import { Application } from '../../entities/Application';
+import { ApplicationService } from '../../services/application.service';
+
+interface AppDisplaying {
+ name: string,
+ image: string,
+ status: string
+}
+
+@Component({
+ selector: 'app-application-card',
+ templateUrl: './application-card.component.html',
+ styleUrls: ['./application-card.component.scss']
+})
+export class ApplicationCardComponent implements OnInit {
+ @Input() application: Application | undefined;
+
+ constructor(
+ private _applicationService: ApplicationService
+ ) {}
+
+ ngOnInit(): void {
+
+ }
+}
diff --git a/cerberus/src/app/core/entities/Application.ts b/cerberus/src/app/core/entities/Application.ts
index 2ba660a..038f029 100644
--- a/cerberus/src/app/core/entities/Application.ts
+++ b/cerberus/src/app/core/entities/Application.ts
@@ -3,4 +3,6 @@ export interface Application {
name: string;
serviceName: string;
serviceType: string;
+ image: string;
+ status: string;
}
diff --git a/cerberus/src/app/core/shared.module.ts b/cerberus/src/app/core/shared.module.ts
new file mode 100644
index 0000000..6587151
--- /dev/null
+++ b/cerberus/src/app/core/shared.module.ts
@@ -0,0 +1,35 @@
+import { HttpClientModule } from "@angular/common/http";
+import { NgModule } from "@angular/core";
+import { FormsModule, ReactiveFormsModule } from "@angular/forms";
+import { MatIconModule } from "@angular/material/icon";
+import { BrowserModule } from "@angular/platform-browser";
+import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
+import { RouterModule } from "@angular/router";
+import { AppRoutingModule } from "../app.routing";
+import { ApplicationCardComponent } from './components/application-card/application-card.component';
+
+@NgModule({
+ imports: [
+ BrowserModule,
+ AppRoutingModule,
+ BrowserAnimationsModule,
+ MatIconModule,
+ FormsModule,
+ ReactiveFormsModule,
+ HttpClientModule,
+ RouterModule,
+ ],
+ exports: [
+ BrowserModule,
+ AppRoutingModule,
+ BrowserAnimationsModule,
+ MatIconModule,
+ FormsModule,
+ ReactiveFormsModule,
+ HttpClientModule,
+ RouterModule,
+ ]
+})
+export class SharedModule {
+
+}
\ No newline at end of file
diff --git a/cerberus/src/app/header/header.component.html b/cerberus/src/app/header/header.component.html
new file mode 100644
index 0000000..09f94b4
--- /dev/null
+++ b/cerberus/src/app/header/header.component.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+ search
+
+
+
+
\ No newline at end of file
diff --git a/cerberus/src/app/header/header.component.scss b/cerberus/src/app/header/header.component.scss
new file mode 100644
index 0000000..fc45ec6
--- /dev/null
+++ b/cerberus/src/app/header/header.component.scss
@@ -0,0 +1,30 @@
+@import '../../colors.scss';
+
+header {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ background-image: linear-gradient($gray-top, $gray-bottom);
+ display: flex;
+ flex: 1 0;
+ height: 56px;
+ justify-content: center;
+ align-items: center;
+
+ img {
+ width: 42px;
+ height: 42px;
+ }
+
+ .actions {
+ display: flex;
+ flex-direction: row;
+ position: absolute;
+ right: 1rem;
+ }
+}
+
+mat-icon {
+ font-size: 18px;
+}
\ No newline at end of file
diff --git a/cerberus/src/app/header/header.component.ts b/cerberus/src/app/header/header.component.ts
new file mode 100644
index 0000000..9ace5f4
--- /dev/null
+++ b/cerberus/src/app/header/header.component.ts
@@ -0,0 +1,11 @@
+import { Component } from "@angular/core";
+
+
+@Component({
+ selector: 'app-header',
+ templateUrl: './header.component.html',
+ styleUrls: ['./header.component.scss']
+})
+export class HeaderComponent {
+
+}
\ No newline at end of file
diff --git a/cerberus/src/assets/images/logo.png b/cerberus/src/assets/images/logo.png
new file mode 100644
index 0000000..4107ad5
Binary files /dev/null and b/cerberus/src/assets/images/logo.png differ
diff --git a/cerberus/src/colors.scss b/cerberus/src/colors.scss
new file mode 100644
index 0000000..9187c0a
--- /dev/null
+++ b/cerberus/src/colors.scss
@@ -0,0 +1,18 @@
+$blue: #017aff;
+
+$btn-primary-border: #2f8df9;
+$btn-primary-background-top: #4ca4f6;
+$btn-primary-background-bottom: #0073f7;
+$btn-primary-active-border: #007cf8;
+$btn-primary-active-background-top: #0093f8;
+$btn-primary-active-background-bottom: #0064dd;
+
+$btn-secondary-border: #c3c5c6;
+$btn-secondary-background: #ffffff;
+$btn-secondary-active-border: #c8c8c8;
+$btn-secondary-active-background: #f0f0f0;
+
+$gray-top: #e6e6e6;
+$gray-bottom: #cfcfcf;
+
+$gray-icon-secondary: #777777;
\ No newline at end of file
diff --git a/cerberus/src/index.html b/cerberus/src/index.html
index a867573..6d11dbc 100644
--- a/cerberus/src/index.html
+++ b/cerberus/src/index.html
@@ -12,5 +12,9 @@
+
+