Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Modern Angular application to showcase stand-alone components, typed forms, signals and newer features

License

NotificationsYou must be signed in to change notification settings

loiane/modern-angular

Repository files navigation

Angular BuildAngular VersionNode VersionTest Framework

A modern Angular sample project showcasing the latest features and best practices, built as an interactive coffee shop application.

🎯 Featured Angular Technologies

  • Angular v20 (Release Candidate) - Latest Angular features
  • Standalone Components (v14+) - No NgModule dependencies
  • Angular Signals (v16+) - Modern reactive primitives
  • New Control Flow (v17+) - @if, @for, @switch syntax
  • Modern inject() function - Dependency injection
  • Angular Material - UI component library
  • Jest Testing - Modern testing framework

🛠️ Development Tools & Extensions

Recommended IDE Setup

  • Visual Studio Code - Primary development environment
  • Angular Language Service - Essential for Angular development
  • Angular Essentials Extension Pack by Loiane -Install here

Key Extensions Included:

  • Angular Language Service
  • Angular Snippets
  • TypeScript Hero
  • GitLens
  • Prettier
  • ESLint
  • Material Icon Theme

📚 Learning Resources

This project includes comprehensive documentation in the/docs folder:

🧪 Testing Strategy

The project usesJest instead of Karma for faster test execution:

  • Unit Tests: Component and service testing
  • Coverage Reports: Available in/coverage directory
  • CI/CD Integration: GitHub Actions automated testing
  • Test-Driven Development: Comprehensive test suites

Test Coverage

Current test coverage includes:

  • ✅ All services (Cart, Products, Form Utils)
  • ✅ All components (Cart, Products, Shared)
  • ✅ Route configuration
  • ✅ Application bootstrap

🔧 Technical Details

Zoneless Change Detection (Angular v20)

This project runs Angular inzoneless mode using the built-inprovideZonelessChangeDetection() API.

Benefits:

  • ⚡ Fewer unnecessary change detection cycles
  • 🧪 Faster and more predictable unit tests (no async Zone stabilization overhead)
  • 🧼 Smaller runtime surface (Zone.js removed)

Implementation details:

  • provideZonelessChangeDetection() is configured inapp.config.ts.
  • zone.js dependency has been removed frompackage.json.
  • Jest test environment usessetupZonelessTestEnv() fromjest-preset-angular (seesetup-jest.ts).

If you need to temporarily re-enable Zone.js (e.g. for a library that still relies on it), reinstallzone.js and switch the test setup back tosetupZoneTestEnv().

Project Structure

src/├── app/│   ├── cart/              # Shopping cart feature│   ├── products/          # Product catalog feature│   ├── components/        # Shared components│   ├── app.routes.ts      # Route configuration│   └── app.component.ts   # Root component├── public/                # Static assets└── styles.scss            # Global styles

Modern Angular Patterns Used

  1. Standalone Components: No NgModule dependencies

    @Component({standalone:true,imports:[CommonModule,MatButtonModule],// ...})
  2. Signal-based State Management:

    cartItems=signal<CartItem[]>([]);cartCount=computed(()=>this.cartItems().length);
  3. Modern Dependency Injection:

    privatecartService=inject(CartService);privaterouter=inject(Router);

🚀 Deployment

The project includes GitHub Actions for:

  • Continuous Integration - Automated testing
  • Build Verification - Ensure production builds work
  • Dependency Updates - Automated dependency management

Production Build

npm run build# Outputs to dist/ directory

🤝 Contributing

This is a demonstration project showcasing modern Angular features. Feel free to:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add/update tests
  5. Submit a pull request

📄 License

This project is licensed under the MIT License - see theLICENSE file for details.

👩‍💻 Author

Loiane Groner


Star this repository if you found it helpful!

📸 Application Screenshots

Products List Page

Modern product listing with Material Design components and shopping cart integration:

Products Page - Coffee Shop Main Page

Shopping Cart Page

Interactive cart with quantity management and total calculations:

Shopping Cart Page

🏗️ Project Architecture

This application demonstrates modern Angular architecture patterns:

  • Feature-based structure with lazy-loaded routes
  • Standalone components eliminating NgModule complexity
  • Signal-based state management for cart functionality
  • Reactive forms with typed validators
  • Service-based architecture with dependency injection
  • Material Design for consistent UI/UX

Key Features Implemented

  • 🛍️Product Catalog - Browse coffee products with filtering
  • 🛒Shopping Cart - Add/remove items with real-time updates
  • 📱Responsive Design - Mobile-first Material Design
  • 🧪Comprehensive Testing - Jest unit tests with coverage

🚀 Quick Start Guide

Prerequisites

  • Node.js 22+ -Download here
  • npm (comes with Node.js)
  • Git (optional, for cloning)

Installation & Running

  1. Install dependencies:

    npm install
  2. Start the development server:

    npm run start

    The application will automatically open athttp://localhost:4200

  3. Run tests:

    npm runtest# Run all testsnpm run test:watch# Watch modenpm run test:coverage# Generate coverage report
  4. Build for production:

    npm run build

Available NPM Scripts

CommandDescription
npm run startStart dev server with auto-reload
npm run buildProduction build
npm run testRun Jest tests once
npm run test:watchRun tests in watch mode
npm run test:coverageGenerate test coverage report
npm run watchBuild in watch mode

About

Modern Angular application to showcase stand-alone components, typed forms, signals and newer features

Topics

Resources

License

Stars

Watchers

Forks


[8]ページ先頭

©2009-2025 Movatter.jp