Clone this repository and run npm install
and then ng serve
to use.
title: Portfolio Application Technical Design Document created at: Thu Aug 08 2024 13:14:42 GMT+0000 (Coordinated Universal Time) updated at: Thu Aug 08 2024 13:16:02 GMT+0000 (Coordinated Universal Time)
Product Name: Portfolio
Version: 1.0.0 Phase: Ready for deploy **Date: **
Portfolio is a web application is intended to give information to employers or clients about myself. It is a simple web page created with Angular to develop further
Objective of Portfolio is give information to employers or clients about myself. It is consist of details of myself, background, technical skills, contact information.
Application can be viewed in English and Turkish for now. Langauge can be changed if requested.
Application is responsive, and as the number of visitors to the application increases, its "responsive" structure will be constantly improved.
Description
Description
Application is created by using Angular 17 and uses dependency injection architecture on base. This allows me to build more modular and organized codebase to decrease complexity of app. Also in order to make application more "reactive", it uses Event-driven pattern for allowing to dynamically control and monitor the application.
Base Module
This module is entry point of application. It is consist of page section components, Data service which is controls static data, Store module for managing the state of application, pipes for transforming data and Translation module for managing the application language. Rest modules is necessary for bootstrapping the application
const components = [
SectionHeadingComponent,
AppComponent,
LandingComponent,
NavigationBar,
AboutComponent,
ContactComponent,
];
const directives = [DropdownDirective];
const pipes = [LevelPipe];
@NgModule({
declarations: [...components, ...directives, ...pipes],
imports: [
CommonModule,
ReactiveFormsModule,
CommonModule,
BrowserModule,
HttpClientModule,
StoreModule.forRoot({
languagex: LanguageReducers,
}),
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (http: HttpClient) => new TranslateHttpLoader(http),
deps: [HttpClient],
},
}),
],
providers: [DataService],
bootstrap: [AppComponent],
})
export class PortfolioApp {}
Style Module
To style the pages, SCSS pre-processor is used for modularity. It allows to create spearate layer for modularize the stylesheets and easy maintenance. There is mainly 5 style modules:
- Typography
- Button
- Input
- Responsive
- Root
Application will be developed further when a server for this application is available.