A production-ready Angular 20+ enterprise application template with OIDC authentication, role-based access control, and Material Design.
- ✅ Angular 20+ with standalone components
- ✅ ng-matero professional dashboard template
- ✅ OIDC Authentication (Duende IdentityServer ready)
- ✅ Role-Based Access Control with ngx-permissions
- ✅ Material Design 20+ UI components
- ✅ Clean Architecture API integration
- ✅ Reactive Forms with validation
- ✅ Server-Side Pagination support
- ✅ Internationalization (i18n) ready
- ✅ TypeScript 5.8 with strict mode
- ✅ ESLint + Stylelint configured
- ✅ JWT Token Viewer for development
# 1. Install dependencies
cd talent-management
npm install
# 2. Configure your environment
# Edit src/environments/environment.ts with your API and IdentityServer URLs
# 3. Run development server
npm start
# Navigate to http://localhost:4200- 📘 Complete Setup Guide - Comprehensive guide for customizing this template
- 🤖 CLAUDE.md - AI assistant guidance for working with the codebase
talent-management/
├── src/app/
│ ├── config/ # Authentication & app configuration
│ ├── core/ # Services, guards, interceptors
│ ├── models/ # TypeScript interfaces
│ ├── routes/ # Feature pages (CRUD components)
│ ├── services/api/ # API integration services
│ ├── shared/ # Shared components & directives
│ └── theme/ # Layout components
├── public/
│ ├── data/menu.json # Menu configuration
│ └── i18n/en-US.json # Translations
└── src/environments/ # Environment configs
| Category | Technology |
|---|---|
| Framework | Angular 20+ |
| UI Library | Angular Material 20+ |
| Template | ng-matero |
| Authentication | angular-oauth2-oidc |
| Authorization | ngx-permissions |
| Forms | Reactive Forms + Material |
| HTTP | HttpClient with interceptors |
| State | RxJS Observables |
| Styling | SCSS + Material Theming |
| Date | date-fns adapter |
| i18n | ngx-translate |
| Notifications | ngx-hot-toast |
Before using this template for a new project, update:
-
package.json- Project name and version -
angular.json- Project name -
src/environments/environment.ts- API URL, IdentityServer URL, Client ID, Scopes -
public/data/menu.json- Application menu structure -
public/i18n/en-US.json- Translation keys -
src/app/core/bootstrap/startup.service.ts- Roles and permissions -
CLAUDE.md- Project-specific documentation -
public/favicon.ico- Application icon -
src/styles.scss- Theme colors (optional)
See TEMPLATE_SETUP_GUIDE.md for detailed instructions.
npm start # Development server (http://localhost:4200)
npm run build # Development build
npm run build:prod # Production build
npm test # Run tests
npm run lint # Lint TypeScript and SCSS
npm run lint:ts # Lint TypeScript only
npm run lint:scss # Lint SCSS onlyThis template requires an OIDC-compliant identity provider (tested with Duende IdentityServer) configured with:
- Grant Type: Authorization Code + PKCE
- Required Scopes:
openid,profile,email, your API scopes - ID Token Claims:
sub,name,email,role(string or array) - CORS: Enable for your application URL
See TEMPLATE_SETUP_GUIDE.md#identityserver-setup for details.
- Create model in
src/app/models/ - Create service extending
BaseApiServiceinsrc/app/services/api/ - Copy and modify component files from
src/app/routes/departments/ - Add routes in
src/app/app.routes.ts - Update menu in
public/data/menu.json - Add translations in
public/i18n/en-US.json
See the complete guide for examples.
- OIDC Authorization Code + PKCE flow
- Automatic token refresh
- Reactive authentication state (
isAuthenticated$observable) - Permissions automatically update on login/logout
BaseApiService<T>for consistent CRUD operations- Automatic response unwrapping (handles wrapped API responses)
- HTTP interceptors for auth tokens and error handling
- Server-side pagination support
- Guard-based route protection (
roleGuard,managerGuard, etc.) - Directive-based UI control (
*appHasRole="['Role']") - Dynamic permission loading from ID token
- Reactive permission system
- List: Paginated tables with search and CRUD buttons
- Detail: Read-only view with edit/delete actions
- Form: Create/Edit mode detection with loading states
- Chrome (latest)
- Firefox (latest)
- Edge (latest)
- Safari (latest)
This is a template repository. Fork it and customize for your needs.
MIT License - Use freely in your projects.
For detailed setup instructions, see TEMPLATE_SETUP_GUIDE.md