Skip to content

Commit 65442bf

Browse files
committed
added documentation for the repo
1 parent de23a27 commit 65442bf

File tree

4 files changed

+278
-0
lines changed

4 files changed

+278
-0
lines changed

.github/workflows/jekyll.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Build and Deploy Documentation
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
paths:
7+
- 'docs/**'
8+
- '_config.yml'
9+
workflow_dispatch:
10+
11+
jobs:
12+
jekyll:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v3
16+
17+
- name: Setup Ruby
18+
uses: ruby/setup-ruby@v1
19+
with:
20+
ruby-version: '3.1'
21+
bundler-cache: true
22+
23+
- name: Setup Pages
24+
id: pages
25+
uses: actions/configure-pages@v3
26+
27+
- name: Build with Jekyll
28+
run: |
29+
gem install bundler
30+
bundle init
31+
bundle add jekyll github-pages webrick
32+
bundle exec jekyll build --destination _site
33+
env:
34+
JEKYLL_ENV: production
35+
36+
- name: Upload artifact
37+
uses: actions/upload-pages-artifact@v1
38+
39+
deploy:
40+
needs: jekyll
41+
permissions:
42+
pages: write
43+
id-token: write
44+
environment:
45+
name: github-pages
46+
url: ${{ steps.deployment.outputs.page_url }}
47+
runs-on: ubuntu-latest
48+
steps:
49+
- name: Deploy to GitHub Pages
50+
id: deployment
51+
uses: actions/deploy-pages@v2

_config.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
title: Clean Architecture Full-Stack
2+
description: A production-ready full-stack starter kit with .NET 9, Angular 19, and PostgreSQL using Clean Architecture principles.
3+
remote_theme: just-the-docs/just-the-docs
4+
5+
url: https://nitin27may.github.io/clean-architecture-docker-dotnet-angular
6+
7+
# Enable support for hyphenated search keywords
8+
search_tokenizer_separator: /[\s/]+/
9+
10+
# Aux links for the upper right navigation
11+
aux_links:
12+
"View on GitHub":
13+
- "//github.com/nitin27may/clean-architecture-docker-dotnet-angular"
14+
15+
# Footer content
16+
footer_content: "Copyright © 2025 Nitin Singh. Distributed by an MIT license."
17+
18+
# Color scheme supports "light" (default) and "dark"
19+
color_scheme: light
20+
21+
# Add spacing to fix title cropping issue
22+
heading_anchors: true
23+
24+
# Fixed spacing configuration
25+
callouts_level: quiet # or loud
26+
callouts:
27+
highlight:
28+
color: yellow
29+
important:
30+
color: blue
31+
new:
32+
color: green
33+
note:
34+
color: purple
35+
warning:
36+
color: red
37+
38+
# Set the proper spacing
39+
kramdown:
40+
syntax_highlighter_opts:
41+
block:
42+
line_numbers: false
43+
44+
# Add custom CSS for spacing
45+
gh_edit_link: true
46+
gh_edit_link_text: "Edit this page on GitHub"
47+
gh_edit_repository: "https://github.com/nitin27may/clean-architecture-docker-dotnet-angular"
48+
gh_edit_branch: "main"
49+
gh_edit_view_mode: "tree"
50+
51+
# Enable navigation structure
52+
nav_external_links:
53+
- title: Clean Architecture on GitHub
54+
url: https://github.com/nitin27may/clean-architecture-docker-dotnet-angular
55+
hide_icon: false
56+
57+
# Back to top link
58+
back_to_top: true
59+
back_to_top_text: "Back to top"
60+
61+
# Enable collapsible navigation
62+
collapse_inactive_chapters: true
63+
64+
# Enable copy code button
65+
enable_copy_code_button: true

docs/_sidebar.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Navigation
2+
3+
- [Home](/)
4+
- [Getting Started](development-guide.md)
5+
- [Architecture Overview](architecture-series.md)
6+
- [Clean Architecture Principles](CleanArchitecture.md)
7+
- [Container Architecture](architecture.md)
8+
- [Implementation Details](/)
9+
- [Frontend (Angular)](frontend.md)
10+
- [Backend (.NET)](backend.md)
11+
- [Features](features.md)
12+
- [Roadmap](roadmap.md)
13+
- [Visual Guide](visual-feature-guide.md)

docs/index.md

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
---
2+
layout: home
3+
title: Home
4+
nav_order: 1
5+
permalink: /
6+
---
7+
8+
# Clean Architecture Full-Stack Starter
9+
{: .fs-9 }
10+
11+
A production-ready full-stack application with Angular 19, .NET 9, and PostgreSQL using Clean Architecture principles.
12+
{: .fs-6 .fw-300 }
13+
14+
[Get Started](#-quick-start-in-60-seconds){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 }
15+
[View on GitHub](https://github.com/nitin27may/clean-architecture-docker-dotnet-angular){: .btn .fs-5 .mb-4 .mb-md-0 }
16+
17+
---
18+
19+
<p align="center">
20+
<img src="clean-architecture-demo.gif" alt="Application Demo" width="700">
21+
</p>
22+
23+
A modern, full-stack contact management system built with Angular 19, .NET 9, and PostgreSQL following Clean Architecture principles. This project demonstrates how to structure enterprise applications for maintainability, testability, and scalability while providing a complete development workflow with Docker containerization.
24+
25+
## 🌟 What You'll Learn
26+
27+
- **Clean Architecture** principles and implementation
28+
- **Angular 19** with signals, standalone components, and Material Design
29+
- **.NET 9** with dependency injection and repository pattern
30+
- **PostgreSQL** with Dapper for efficient data access
31+
- **JWT Authentication** with role-based permissions
32+
- **Docker** containerization for development and production
33+
- **NGINX** as a reverse proxy and API gateway
34+
- **CI/CD** with GitHub Actions
35+
36+
## 🚀 Quick Start in 60 Seconds
37+
38+
### Prerequisites
39+
40+
- [Docker](https://www.docker.com/products/docker-desktop){:target="_blank"} and Docker Compose
41+
- [Git](https://git-scm.com/downloads){:target="_blank"}
42+
43+
### Launch Commands
44+
45+
Clone the repository:
46+
```bash
47+
git clone https://github.com/nitin27may/clean-architecture-docker-dotnet-angular.git clean-app
48+
cd clean-app
49+
```
50+
51+
Create environment file:
52+
```bash
53+
cp .env.example .env
54+
```
55+
56+
Start the application:
57+
```bash
58+
docker-compose up
59+
```
60+
61+
That's it! Visit [http://localhost](http://localhost) in your browser.
62+
63+
## 👤 Default Users
64+
65+
| Username | Password | Role |
66+
|----------|----------|------|
67+
| [email protected] | P@ssword#321 | Admin |
68+
| [email protected] | P@ssword#321 | Editor |
69+
| [email protected] | P@ssword#321 | Reader |
70+
71+
## 🏗️ System Architecture
72+
73+
<p align="center">
74+
<img src="architecture.png" alt="Architecture Diagram" width="700">
75+
</p>
76+
77+
### Container Architecture
78+
79+
The application is structured into multiple containers that work together:
80+
81+
- **Frontend Container**: Angular 19 with Material Design and TailwindCSS
82+
- **API Container**: .NET 9 RESTful API built with Clean Architecture
83+
- **Database Container**: PostgreSQL for data persistence
84+
- **NGINX Container**: Reverse proxy that routes requests to the appropriate service
85+
86+
## 📐 Clean Architecture Explained
87+
88+
<p align="center">
89+
<img src="CleanArchitecture.png" alt="Clean Architecture Diagram" width="500">
90+
</p>
91+
92+
### Why Choose Clean Architecture?
93+
94+
Clean Architecture provides **significant benefits** for your application:
95+
96+
-**Maintainability**: Separate concerns to make your code easier to understand and modify
97+
-**Testability**: Independent components that can be tested in isolation
98+
-**Flexibility**: Swap frameworks or technologies without rewriting your core business logic
99+
-**Scalability**: Grow your application with a clear structure that new team members can quickly understand
100+
101+
### Core Principles
102+
103+
- **Separation of concerns**: Each layer has a specific responsibility
104+
- **Dependency rule**: Dependencies point inward, with inner circles having no knowledge of outer circles
105+
- **Abstraction**: Business rules are independent of UI, database, and external services
106+
- **Testability**: Core business logic can be tested without dependencies on external systems
107+
108+
## 💻 Key Features
109+
110+
### Modern Angular Frontend
111+
112+
- **Signals-based state management**
113+
- **Material Design with TailwindCSS** for responsive UI
114+
- **Role-based routing and permissions**
115+
- **Dark/light theme support**
116+
117+
### Secure .NET Backend
118+
119+
- **Clean Architecture implementation**
120+
- **Generic Repository pattern**
121+
- **JWT authentication**
122+
- **Global exception handling**
123+
124+
### Contact Management
125+
126+
- **CRUD operations** for contacts
127+
- **Role-based access control**
128+
- **Search, sort, and filter functionality**
129+
- **Form validation**
130+
131+
## 📚 Documentation
132+
133+
For more detailed information, explore these documentation pages:
134+
135+
- [Development Guide](development-guide.md)
136+
- [Clean Architecture Series](architecture-series.md)
137+
- [Frontend Documentation](frontend.md)
138+
- [Backend Documentation](backend.md)
139+
- [Feature List](features.md)
140+
- [Roadmap](roadmap.md)
141+
- [Visual Feature Guide](visual-feature-guide.md)
142+
143+
## 🤝 Contributing
144+
145+
We welcome contributions! Please check our [contributing guide](https://github.com/nitin27may/clean-architecture-docker-dotnet-angular/blob/main/CONTRIBUTING.md){:target="_blank"} for details on how to get involved.
146+
147+
## 📄 License
148+
149+
This project is licensed under the MIT License - see the [LICENSE](https://github.com/nitin27may/clean-architecture-docker-dotnet-angular/blob/main/LICENSE){:target="_blank"} file for details.

0 commit comments

Comments
 (0)