Shop Flow App is an ongoing, scalable, and interactive web application built with Angular 20.3, designed for browsing and managing products. The project demonstrates modern Angular best practices with a strong focus on clean architecture, performance, testability, and long-term maintainability. It is developed as a production-like application and continues to evolve with new features and architectural improvements.
- User authentication: Register, Login, Forgot Password, and Email OTP verification
- Secure routing using route guards
- Reactive state management with NgRx, Angular Signals, and RxJS
- Fully responsive UI built with Tailwind CSS
- Modular, lazy-loaded feature-based architecture
- Framework: Angular 21
- Languages: TypeScript, JavaScript (ES6+)
- State Management: NgRx, Signals, RxJS
- Unit Testing: Jasmine
- Styling: Tailwind CSS
- Architecture: Modular, lazy-loaded structure following Clean Architecture principles
The application follows a modular and lazy-loaded architecture inspired by clean architecture principles. Responsibilities are clearly separated between presentation components, business logic services, state management using NgRx and routing with guards. This structure improves scalability, maintainability, and testability.
The application includes comprehensive unit tests covering components, services, and NgRx state management. Unit tests are written following the AAA (Arrange, Act, Assert) pattern, ensuring a clear separation of setup, action, and assertion for improved readability and maintainability.
Testing focuses on:
- Component behavior and template interactions
- NgRx actions, reducers and selectors