From 6b77268e4d3a134763c5e2f7cc02636cc8ae037e Mon Sep 17 00:00:00 2001 From: Jobit Jose Date: Fri, 10 Oct 2025 00:07:13 +0100 Subject: [PATCH 1/8] added home page design with proposed UI --- apps/fakeoverflow-angular/angular.json | 3 + .../home/Screenshot 2025-10-09 234054.png | Bin 0 -> 43867 bytes .../src/app/pages/home/home/home.html | 385 ++++++++++++++++++ 3 files changed, 388 insertions(+) create mode 100644 apps/fakeoverflow-angular/src/app/pages/home/home/Screenshot 2025-10-09 234054.png diff --git a/apps/fakeoverflow-angular/angular.json b/apps/fakeoverflow-angular/angular.json index f5c00c2..f6de551 100644 --- a/apps/fakeoverflow-angular/angular.json +++ b/apps/fakeoverflow-angular/angular.json @@ -112,5 +112,8 @@ } } } + }, + "cli": { + "analytics": false } } diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/Screenshot 2025-10-09 234054.png b/apps/fakeoverflow-angular/src/app/pages/home/home/Screenshot 2025-10-09 234054.png new file mode 100644 index 0000000000000000000000000000000000000000..e356d4b8ece4d91ba9df83e880aae8aa93ae6dbd GIT binary patch literal 43867 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 +
+
+
+
+
+
+
+

Newest Questions

+

24,197,586 questions

+
+
+ + +
+
+
+
+
+
+
+
+
+
0
+
votes
+
+
+
0
+
answers
+
+
+
0
+
views
+
+
+
+

+ How do I implement authentication in Angular with JWT tokens and refresh token rotation? +

+

+ I'm trying to build a secure authentication system with Angular 17. Looking for best practices and patterns for handling JWT tokens, refresh token rotation, and secure storage... +

+
+ angular + authentication + typescript + jwt +
+
+
+
+ JD +
+ John Doe +
+ asked 2 mins ago +
+
+
+
+
+
+
+
+
+
+
0
+
votes
+
+
+
0
+
answers
+
+
+
0
+
views
+
+
+
+

+ What's the best way to handle state management in large Angular applications? +

+

+ Working on a complex enterprise application with multiple modules. Should I use NgRx, Akita, or stick with services and RxJS? Need advice on scalability... +

+
+ state-management + ngrx + rxjs +
+
+
+
+ SM +
+ Sarah Miller +
+ asked 15 mins ago +
+
+
+
+
+
+
+
+
+
+
0
+
votes
+
+
+
0
+
answers
+
+
+
0
+
views
+
+
+
+

+ How to optimize Angular performance for large datasets with virtual scrolling? +

+

+ Need to display 10,000+ rows in a table. Performance is really slow with current implementation. What are the best techniques for handling large datasets efficiently? +

+
+ performance + virtual-scrolling + angular +
+
+
+
+ AK +
+ Alex Kumar +
+ asked 32 mins ago +
+
+
+
+
+
+
+
+
+
+
0
+
votes
+
+
+
0
+
answers
+
+
+
0
+
views
+
+
+
+

+ Understanding Angular dependency injection and providers hierarchy +

+

+ Confused about the difference between providedIn: 'root', module providers, and component providers. When should I use each approach for services? +

+
+ dependency-injection + services + angular +
+
+
+
+ MJ +
+ Maria Johnson +
+ asked 1 hour ago +
+
+
+
+
+
+
+
+
+
+
0
+
votes
+
+
+
0
+
answers
+
+
+
0
+
views
+
+
+
+

+ Best practices for Angular routing and lazy loading modules in 2025 +

+

+ What are the current best practices for structuring routes and implementing lazy loading? Should I use standalone components or traditional modules? +

+
+ routing + lazy-loading + best-practices +
+
+
+
+ RL +
+ Robert Lee +
+ asked 2 hours ago +
+
+
+
+
+
+
+
+
+
+
0
+
votes
+
+
+
0
+
answers
+
+
+
0
+
views
+
+
+
+

+ How to properly implement HttpInterceptor for error handling? +

+

+ Need to implement global error handling for HTTP requests. Should I use HttpInterceptor or is there a better approach with Angular 17? +

+
+ http + interceptor + error-handling +
+
+
+
+ EP +
+ Emily Parker +
+ asked 3 hours ago +
+
+
+
+
+
+
+
+
+
+
0
+
votes
+
+
+
0
+
answers
+
+
+
0
+
views
+
+
+
+

+ What's the difference between ViewChild and ContentChild in Angular? +

+

+ I'm confused about when to use ViewChild vs ContentChild decorators. Can someone explain with practical examples? +

+
+ angular + decorators + component +
+
+
+
+ DW +
+ David Wilson +
+ asked 4 hours ago +
+
+
+
+
+
+
+ +
+
+ +
+
+
From 765e13d265f302bc0bf519accda06aef18a0c5fb Mon Sep 17 00:00:00 2001 From: Jobit Jose Date: Fri, 10 Oct 2025 12:26:05 +0100 Subject: [PATCH 2/8] removed screenshot --- .../home/home/Screenshot 2025-10-09 234054.png | Bin 43867 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/fakeoverflow-angular/src/app/pages/home/home/Screenshot 2025-10-09 234054.png diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/Screenshot 2025-10-09 234054.png b/apps/fakeoverflow-angular/src/app/pages/home/home/Screenshot 2025-10-09 234054.png deleted file mode 100644 index e356d4b8ece4d91ba9df83e880aae8aa93ae6dbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43867 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 Date: Thu, 13 Nov 2025 00:36:32 +0000 Subject: [PATCH 3/8] home page design has been updated --- .../app/pages/home/home/CreatePost/post.html | 4 +- .../src/app/pages/home/home/home.html | 400 ++++++++++++++---- 2 files changed, 310 insertions(+), 94 deletions(-) diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html b/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html index 4d470df..ab80e3f 100644 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html @@ -15,12 +15,12 @@

Ask question

Enter at least 20 characters
- +
Submitted
diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/home.html b/apps/fakeoverflow-angular/src/app/pages/home/home/home.html index f15a7d0..74e76cf 100644 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/home.html +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/home.html @@ -1,17 +1,22 @@
-
-
+
+
- -
-
+ +
+
+
-

Questions

-

Updated just now

+

All Questions

+
+

4,234,567 questions

+ • +

Updated just now

+
-
+ +
+ + +
+ + +
- -
-
-

- European Inflation Eases as Energy Prices Drop + +
+ +
+
+ 0 + votes +
+
+ 0 + answers +
+
+ 1,234 + views +
+
+ + +
+

+ How do I calculate the complexity of a recursive algorithm with multiple branches?

-

- Inflation across the Eurozone eased to 2.7% in October, driven by falling energy costs and improved supply chains, according to Eurostat’s preliminary data... +

+ I'm trying to understand how to analyze the time complexity of a recursive function that has multiple recursive calls. For example, if I have a function that calls itself twice...

- Economy - Europe - Finance + algorithms + recursion + time-complexity
-
-
-
AM
- Anna Müller +
+ asked 10 mins ago +
+
AM
+ Anna Müller
- Posted 10 mins ago + 123 reputation
- -
-
-

- Ireland Announces New Climate Investment Plan for 2026 + +
+ +
+
+ 15 + votes +
+
+ 3 + answers +
+
+ 5,789 + views +
+
+ + +
+

+ What's the best way to implement state management in Angular 18+?

-

- The Irish government unveiled a €2.4 billion plan focused on renewable energy infrastructure, electric transport, and green housing to meet 2030 emissions targets... +

+ I'm building a medium-sized Angular application and I'm wondering what the current best practices are for state management. Should I use NgRx, Signals, or something else...

- Environment - Ireland - Sustainability + angular + state-management + ngrx
-
-
-
RL
- Robert Lynch +
+ asked 45 mins ago +
+
RL
+ Robert Lynch
- Posted 45 mins ago + 4,521 reputation
- -
-
-

- Apple Reports Record Profits Amid Global Slowdown + +
+ +
+
+ 42 + votes +
+
+ 8 + answers +
+
+ 12.5k + views +
+
+ + +
+

+ Why does my TypeScript interface allow extra properties?

-

- Despite a global drop in consumer electronics demand, Apple’s quarterly revenue surpassed $120 billion, boosted by strong iPhone sales in Asia... +

+ I've defined an interface in TypeScript with specific properties, but when I create an object that implements this interface, TypeScript allows me to add extra properties that aren't defined...

- Technology - Business + typescript + interfaces + type-checking
-
-
-
EP
- Emma Parker +
+ asked 2 hours ago +
+
EP
+ Emma Parker
- Posted 2 hours ago + 8,932 reputation
- -
-
-

- Global Markets Rebound as Investors Anticipate Fed Rate Cut + +
+ +
+
+ 7 + votes +
+
+ 1 + answer +
+
+ 892 + views +
+
+ + +
+

+ How to properly handle async/await in .NET Core with Entity Framework?

-

- Stock markets across the globe rallied after signals from the U.S. Federal Reserve suggested a possible interest rate cut in December... +

+ I'm working on a .NET Core API and I'm trying to understand the best practices for using async/await with Entity Framework Core. Should I always use async methods, or are there cases...

- Markets - US - Finance + c# + async-await + entity-framework
-
-
-
DK
- David Keane +
+ asked 3 hours ago +
+
DK
+ David Keane +
+ 2,134 reputation +
+
+
+ + +
+ +
+
+ 23 + votes +
+
+ 5 + answers +
+
+ 3,421 + views +
+
+ + +
+

+ Best practices for deploying Docker containers in production? +

+

+ I'm preparing to deploy my first containerized application to production. What are the essential best practices I should follow for security, monitoring, and scaling Docker containers... +

+
+ docker + deployment + kubernetes +
+
+ asked 5 hours ago +
+
JS
+ John Smith
- Posted 3 hours ago + 12,567 reputation
+
- +
-

- +
From 5b9e8f944ae5a89660650241b99baf2ceff08692 Mon Sep 17 00:00:00 2001 From: Jobit Jose <79743389+jobitjose@users.noreply.github.com> Date: Thu, 13 Nov 2025 00:51:03 +0000 Subject: [PATCH 4/8] create new post page, maintained home page design consistancy --- .../app/pages/home/home/CreatePost/post.html | 231 ++++++++++++++++-- .../app/pages/home/home/CreatePost/post.ts | 3 +- 2 files changed, 207 insertions(+), 27 deletions(-) diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html b/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html index ab80e3f..009279b 100644 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html @@ -1,30 +1,209 @@
-
-

Ask question

- -
-
- - -
Enter at least 10 characters
-
- -
- - -
Enter at least 20 characters
-
- -
- - -
- -
- -
Submitted
-
-
+
+
+ + +
+ + + + +
+
+
+

Ask a Question

+

Get help from the community

+
+
+ + +
+
+ +
+ +
+ +

Be specific and imagine you're asking a question to another person.

+ +
+ Title must be at least 10 characters +
+
+ + +
+ +

Introduce the problem and expand on what you put in the title. Minimum 20 characters.

+ +
+ Body must be at least 20 characters +
+
+ + +
+ +

Add up to 5 tags to describe what your question is about. Separate with commas.

+ +
+ + +
+ +
+ + + + Question Posted! +
+
+
+
+
+ + + + +
diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.ts b/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.ts index 7ccc366..c571a09 100644 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.ts +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.ts @@ -1,12 +1,13 @@ import { Component } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule, NgForm } from '@angular/forms'; +import { RouterLink } from '@angular/router'; import {Navbar} from '@shared/navbar/navbar'; @Component({ selector: 'app-post', standalone: true, - imports: [Navbar, CommonModule, FormsModule], + imports: [Navbar, CommonModule, FormsModule, RouterLink], templateUrl: './post.html', styleUrl: './post.scss' }) From f02dfd5ff11074754824791e1c15c102378a1870 Mon Sep 17 00:00:00 2001 From: Jobit Jose <79743389+jobitjose@users.noreply.github.com> Date: Thu, 13 Nov 2025 01:03:10 +0000 Subject: [PATCH 5/8] created my questions section to manage the users questions --- .../src/app/app.routes.ts | 2 +- .../home/home/MyQuestions/myQuestions.html | 245 +++++++++++++++++ .../myQuestions.scss} | 0 .../myQuestions.ts} | 8 +- .../PersonalQuestionsHome/personalHome.html | 252 ------------------ .../src/app/pages/home/home/home.html | 2 +- 6 files changed, 251 insertions(+), 258 deletions(-) create mode 100644 apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.html rename apps/fakeoverflow-angular/src/app/pages/home/home/{PersonalQuestionsHome/personalHome.scss => MyQuestions/myQuestions.scss} (100%) rename apps/fakeoverflow-angular/src/app/pages/home/home/{PersonalQuestionsHome/personalHome.ts => MyQuestions/myQuestions.ts} (60%) delete mode 100644 apps/fakeoverflow-angular/src/app/pages/home/home/PersonalQuestionsHome/personalHome.html diff --git a/apps/fakeoverflow-angular/src/app/app.routes.ts b/apps/fakeoverflow-angular/src/app/app.routes.ts index ce9f0d7..a103433 100644 --- a/apps/fakeoverflow-angular/src/app/app.routes.ts +++ b/apps/fakeoverflow-angular/src/app/app.routes.ts @@ -30,7 +30,7 @@ export const routes: Routes = [ { path: 'post', loadComponent: () => import('./pages/home/home/CreatePost/post').then(m => m.PostComponent) }, { path: 'update', loadComponent: () => import('./pages/home/home/UpdatePost/update').then(m => m.UpdateComponent) }, { path: 'detail', loadComponent: () => import('./pages/home/home/PostDetails/details').then(m => m.DetailsComponent) }, - { path: 'personalhome', loadComponent: () => import('./pages/home/home/PersonalQuestionsHome/personalHome').then(m => m.PersonalHome) }, + { path: 'my-questions', loadComponent: () => import('./pages/home/home/MyQuestions/myQuestions').then(m => m.MyQuestions) }, { path: '', redirectTo: 'home', pathMatch: 'full' }, { path: '**', redirectTo: 'home' } diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.html b/apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.html new file mode 100644 index 0000000..847922e --- /dev/null +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.html @@ -0,0 +1,245 @@ + +
+
+
+
+ + + + +
+
+
+
+

My Questions

+

7 questions posted

+
+ +
+
+ + +
+ + + +
+ + +
+ + +
+ +
+
+ 12 + votes +
+
+ 3 + answers +
+
+ 245 + views +
+
+ + +
+

+ Global Markets Rebound as Investors Anticipate Fed Rate Cut +

+

+ Stock markets across the globe rallied after signals from the U.S. Federal Reserve suggested a possible interest rate cut in December... +

+
+ Markets + Finance + Technology +
+
+ Posted 2 days ago +
+ + + + + + View + + +
+
+
+
+ + +
+
+
+ 8 + votes +
+
+ 2 + answers +
+
+ 156 + views +
+
+
+

+ How to implement state management in Angular 18? +

+

+ I'm building a medium-sized Angular application and wondering about best practices for state management... +

+
+ angular + state-management +
+
+ Posted 3 days ago +
+ + + + + + View + + +
+
+
+
+ +
+ + +
+ +
+
+ + + + +
+
+
\ No newline at end of file diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/PersonalQuestionsHome/personalHome.scss b/apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.scss similarity index 100% rename from apps/fakeoverflow-angular/src/app/pages/home/home/PersonalQuestionsHome/personalHome.scss rename to apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.scss diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/PersonalQuestionsHome/personalHome.ts b/apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.ts similarity index 60% rename from apps/fakeoverflow-angular/src/app/pages/home/home/PersonalQuestionsHome/personalHome.ts rename to apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.ts index d5539f1..e97063a 100644 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/PersonalQuestionsHome/personalHome.ts +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.ts @@ -3,13 +3,13 @@ import {Navbar} from '@shared/navbar/navbar'; import { RouterLink } from '@angular/router'; @Component({ - selector: 'app-home', + selector: 'app-my-questions', imports: [ Navbar, RouterLink ], - templateUrl: './personalHome.html', - styleUrl: './PersonalHome.scss' + templateUrl: './myQuestions.html', + styleUrl: './myQuestions.scss' }) -export class PersonalHome { +export class MyQuestions { } diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/PersonalQuestionsHome/personalHome.html b/apps/fakeoverflow-angular/src/app/pages/home/home/PersonalQuestionsHome/personalHome.html deleted file mode 100644 index 4a460a3..0000000 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/PersonalQuestionsHome/personalHome.html +++ /dev/null @@ -1,252 +0,0 @@ - -
-
-
-
-
-
-
-

Manage Your Posts

-

7 questions posted

-
- -
- -
- - -
-
- -
-
-
-
-
-
-
12
-
votes
-
-
-
3
-
answers
-
-
-
245
-
views
-
-
-
-
-

- Global Markets Rebound as Investors Anticipate Fed Rate Cut -

- -
-

- Stock markets across the globe rallied after signals from the U.S. Federal Reserve suggested a possible interest rate cut in December... -

-
- Markets - Finance - Technology -
-
- Posted 2 days ago -
- - - - - - - View - - - - -
-
-
-
-
-
- -
-
-
-
-
-
8
-
votes
-
-
-
2
-
answers
-
-
-
156
-
views
-
-
-
-
-

- Global Markets Rebound as Investors Anticipate Fed Rate Cut -

- -
-

- Stock markets across the globe rallied after signals from the U.S. Federal Reserve suggested a possible interest rate cut in December -

-
- Markets - Finance - Technology -
-
- Posted 3 days ago -
- - - - - - - View - - - - -
-
-
-
-
-
-
- -
-
-
-
-
-
8
-
votes
-
-
-
2
-
answers
-
-
-
156
-
views
-
-
-
-
-

- Global Markets Rebound as Investors Anticipate Fed Rate Cut -

- -
-

- Stock markets across the globe rallied after signals from the U.S. Federal Reserve suggested a possible interest rate cut in December -

-
- Markets - Finance - Technology -
-
- Posted 3 days ago -
- - - - - - - View - - - - -
-
-
-
-
-
- - -
- -
-
- - - - - -
-
-
\ No newline at end of file diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/home.html b/apps/fakeoverflow-angular/src/app/pages/home/home/home.html index 74e76cf..a107797 100644 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/home.html +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/home.html @@ -24,7 +24,7 @@

All Questions

Ask Question - + My Questions
From 118af1231a40d08acf8b4f100512145d87e94d5b Mon Sep 17 00:00:00 2001 From: Jobit Jose <79743389+jobitjose@users.noreply.github.com> Date: Thu, 13 Nov 2025 01:13:58 +0000 Subject: [PATCH 6/8] created community stats component and trending-tags component --- .../app/pages/home/home/CreatePost/post.html | 103 +----------------- .../app/pages/home/home/CreatePost/post.ts | 4 +- .../home/home/MyQuestions/myQuestions.html | 79 +------------- .../home/home/MyQuestions/myQuestions.ts | 4 +- .../src/app/pages/home/home/home.html | 103 +----------------- .../src/app/pages/home/home/home.ts | 4 +- .../community-stats/community-stats.html | 32 ++++++ .../community-stats/community-stats.scss | 1 + .../shared/community-stats/community-stats.ts | 10 ++ .../shared/trending-tags/trending-tags.html | 66 +++++++++++ .../shared/trending-tags/trending-tags.scss | 1 + .../app/shared/trending-tags/trending-tags.ts | 10 ++ 12 files changed, 135 insertions(+), 282 deletions(-) create mode 100644 apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.html create mode 100644 apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.scss create mode 100644 apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.ts create mode 100644 apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.html create mode 100644 apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.scss create mode 100644 apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.ts diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html b/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html index 009279b..bccbc30 100644 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.html @@ -100,107 +100,8 @@

Ask a Question

diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.ts b/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.ts index c571a09..e428ebe 100644 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.ts +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/CreatePost/post.ts @@ -3,11 +3,13 @@ import { CommonModule } from '@angular/common'; import { FormsModule, NgForm } from '@angular/forms'; import { RouterLink } from '@angular/router'; import {Navbar} from '@shared/navbar/navbar'; +import { CommunityStats } from '@shared/community-stats/community-stats'; +import { TrendingTags } from '@shared/trending-tags/trending-tags'; @Component({ selector: 'app-post', standalone: true, - imports: [Navbar, CommonModule, FormsModule, RouterLink], + imports: [Navbar, CommonModule, FormsModule, RouterLink, CommunityStats, TrendingTags], templateUrl: './post.html', styleUrl: './post.scss' }) diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.html b/apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.html index 847922e..c3fd73a 100644 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.html +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/MyQuestions/myQuestions.html @@ -160,83 +160,8 @@
diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/home.ts b/apps/fakeoverflow-angular/src/app/pages/home/home/home.ts index e2e30ba..dfc653d 100644 --- a/apps/fakeoverflow-angular/src/app/pages/home/home/home.ts +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/home.ts @@ -1,11 +1,13 @@ import { Component } from '@angular/core'; import {Navbar} from '@shared/navbar/navbar'; import { RouterLink } from '@angular/router'; +import { CommunityStats } from '@shared/community-stats/community-stats'; +import { TrendingTags } from '@shared/trending-tags/trending-tags'; @Component({ selector: 'app-home', imports: [ - Navbar, RouterLink + Navbar, RouterLink, CommunityStats, TrendingTags ], templateUrl: './home.html', styleUrl: './home.scss' diff --git a/apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.html b/apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.html new file mode 100644 index 0000000..6a00810 --- /dev/null +++ b/apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.html @@ -0,0 +1,32 @@ + +
+
+
+
+ + + +

Community Stats

+
+
+
+
+ 4.2M + questions +
+
+
+
+ 8.9M + answers +
+
+
+
+ 95% + answered +
+
+
+
+
diff --git a/apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.scss b/apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.scss new file mode 100644 index 0000000..dc6b76a --- /dev/null +++ b/apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.scss @@ -0,0 +1 @@ +// Community Stats Component Styles diff --git a/apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.ts b/apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.ts new file mode 100644 index 0000000..7a03781 --- /dev/null +++ b/apps/fakeoverflow-angular/src/app/shared/community-stats/community-stats.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-community-stats', + standalone: true, + templateUrl: './community-stats.html', + styleUrl: './community-stats.scss' +}) +export class CommunityStats { +} diff --git a/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.html b/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.html new file mode 100644 index 0000000..c06c6ae --- /dev/null +++ b/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.html @@ -0,0 +1,66 @@ + + diff --git a/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.scss b/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.scss new file mode 100644 index 0000000..e516cb6 --- /dev/null +++ b/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.scss @@ -0,0 +1 @@ +// Trending Tags Component Styles diff --git a/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.ts b/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.ts new file mode 100644 index 0000000..a828e55 --- /dev/null +++ b/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-trending-tags', + standalone: true, + templateUrl: './trending-tags.html', + styleUrl: './trending-tags.scss' +}) +export class TrendingTags { +} From 7c02dc2d309f9ac0eaa7793514448340d8e72671 Mon Sep 17 00:00:00 2001 From: Jobit Jose <79743389+jobitjose@users.noreply.github.com> Date: Thu, 13 Nov 2025 22:47:27 +0000 Subject: [PATCH 7/8] updated the trending tags css file, corrected the alighment --- .../src/app/shared/trending-tags/trending-tags.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.scss b/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.scss index e516cb6..75d925c 100644 --- a/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.scss +++ b/apps/fakeoverflow-angular/src/app/shared/trending-tags/trending-tags.scss @@ -1 +1,6 @@ // Trending Tags Component Styles + +:host { + display: block; + margin-top: 1.5rem; +} \ No newline at end of file From d992664324b84a5cd7a8545932fdd3dd0226c55e Mon Sep 17 00:00:00 2001 From: Jobit Jose <79743389+jobitjose@users.noreply.github.com> Date: Thu, 13 Nov 2025 23:18:26 +0000 Subject: [PATCH 8/8] Created profile page --- .../src/app/app.routes.ts | 1 + .../app/pages/home/home/Profile/profile.html | 212 ++++++++++++++++++ .../app/pages/home/home/Profile/profile.scss | 69 ++++++ .../app/pages/home/home/Profile/profile.ts | 43 ++++ .../src/app/shared/navbar/navbar.html | 4 +- 5 files changed, 327 insertions(+), 2 deletions(-) create mode 100644 apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.html create mode 100644 apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.scss create mode 100644 apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.ts diff --git a/apps/fakeoverflow-angular/src/app/app.routes.ts b/apps/fakeoverflow-angular/src/app/app.routes.ts index a103433..a716e31 100644 --- a/apps/fakeoverflow-angular/src/app/app.routes.ts +++ b/apps/fakeoverflow-angular/src/app/app.routes.ts @@ -31,6 +31,7 @@ export const routes: Routes = [ { path: 'update', loadComponent: () => import('./pages/home/home/UpdatePost/update').then(m => m.UpdateComponent) }, { path: 'detail', loadComponent: () => import('./pages/home/home/PostDetails/details').then(m => m.DetailsComponent) }, { path: 'my-questions', loadComponent: () => import('./pages/home/home/MyQuestions/myQuestions').then(m => m.MyQuestions) }, + { path: 'profile', loadComponent: () => import('./pages/home/home/Profile/profile').then(m => m.Profile) }, { path: '', redirectTo: 'home', pathMatch: 'full' }, { path: '**', redirectTo: 'home' } diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.html b/apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.html new file mode 100644 index 0000000..fe9b5be --- /dev/null +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.html @@ -0,0 +1,212 @@ + + +
+
+ + +
+ +
+
+ +
+ @if ((identity$ | async)?.avatarUrl; as avatarUrl) { + Profile picture + } @else { +
+ +
+ } +
+ + +
+

{{ (identity$ | async)?.name || profileData.name }}

+

@{{ profileData.username }}

+ + +
+
+
{{ profileData.stats.questions }}
+
Questions
+
+
+
{{ profileData.stats.answers }}
+
Answers
+
+
+ + +
+

+ {{ profileData.bio }} +

+
+
+ + + +
+
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+

Recent Activity

+ + +
+
+
+
+ + + +
+
+
+

+ Answered: How to implement authentication in Angular? +

+

2 hours ago

+
+
+ +15 +
+
+ +
+
+
+ + + +
+
+ +
+ 3 answers +
+
+ +
+
+
+ + + +
+
+
+

+ Earned badge: Great Answer +

+

3 days ago

+
+
+
+
+ + +
+

Top Questions

+ +
+
+
+
+ + + + 45 +
+
+ + + + 12 +
+
+ +
+ +
+
+
+ + + + 32 +
+
+ + + + 8 +
+
+ +
+
+
+
+ + +
+ + + +
+
+
+
diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.scss b/apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.scss new file mode 100644 index 0000000..c526e61 --- /dev/null +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.scss @@ -0,0 +1,69 @@ +// Profile Page Styles + +// Smooth transitions for all interactive elements +button, a { + transition: all 0.2s ease-in-out; +} + +// Custom scrollbar +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-track { + background: #f1f1f1; +} + +::-webkit-scrollbar-thumb { + background: #888; + border-radius: 4px; + + &:hover { + background: #555; + } +} + +// Dark mode scrollbar +:host-context(.dark) { + ::-webkit-scrollbar-track { + background: #1f2937; + } + + ::-webkit-scrollbar-thumb { + background: #4b5563; + + &:hover { + background: #6b7280; + } + } +} + +// Tab animation +nav button { + position: relative; + + &::after { + content: ''; + position: absolute; + bottom: -2px; + left: 0; + right: 0; + height: 2px; + background: currentColor; + transform: scaleX(0); + transition: transform 0.3s ease-in-out; + } + + &:hover::after { + transform: scaleX(1); + } +} + +// Badge hover effect +.space-y-3 > div { + transition: transform 0.2s ease-in-out; + + &:hover { + transform: translateX(4px); + } +} diff --git a/apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.ts b/apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.ts new file mode 100644 index 0000000..6dfd3e6 --- /dev/null +++ b/apps/fakeoverflow-angular/src/app/pages/home/home/Profile/profile.ts @@ -0,0 +1,43 @@ +import { Component, inject, OnInit } from '@angular/core'; +import { Navbar } from '@shared/navbar/navbar'; +import { RouterLink } from '@angular/router'; +import { CommunityStats } from '@shared/community-stats/community-stats'; +import { TrendingTags } from '@shared/trending-tags/trending-tags'; +import { Authentication } from '@services/authentication'; +import { AsyncPipe, CommonModule } from '@angular/common'; +import { AvvvatarsComponent } from '@ngxpert/avvvatars'; + +@Component({ + selector: 'app-profile', + standalone: true, + imports: [ + CommonModule, + Navbar, + RouterLink, + CommunityStats, + TrendingTags, + AsyncPipe, + AvvvatarsComponent + ], + templateUrl: './profile.html', + styleUrl: './profile.scss' +}) +export class Profile implements OnInit { + private readonly authentication = inject(Authentication); + protected readonly identity$ = this.authentication.currentIdentity; + + // Profile data structure (placeholder) + profileData = { + name: 'John Doe', + username: 'johndoe', + bio: 'Full-stack developer passionate about building scalable web applications. Love solving complex problems and helping others in the community.', + stats: { + questions: 42, + answers: 128 + } + }; + + ngOnInit(): void { + // Initialize profile data + } +} diff --git a/apps/fakeoverflow-angular/src/app/shared/navbar/navbar.html b/apps/fakeoverflow-angular/src/app/shared/navbar/navbar.html index 7a0f4f0..90e0c35 100644 --- a/apps/fakeoverflow-angular/src/app/shared/navbar/navbar.html +++ b/apps/fakeoverflow-angular/src/app/shared/navbar/navbar.html @@ -50,7 +50,7 @@ @if (identity$ | async; as identity) { - @if (identity.avatarUrl) { avatarFor Teams
@if (identity$ | async; as identity) { - + {{ identity.name }} } @else {