π https://alobuuls.github.io/angular-jsonplaceholder-client/
Note
Angular application that consumes the JSONPlaceholder API to display posts using a modular, scalable, and maintainable architecture.
The project demonstrates API consumption with HttpClient, lazy-loaded modules, HTTP interceptors, custom pipes, routing organization, and reusable Angular modules following enterprise-level development practices.
Before running the project, make sure you have installed:
- π¦ Node.js:
v12.14.x β v14.x(recommended: v14.21.3 LTS) - π¦ npm:
v6+ π °οΈ Angular CLI:v12.x
Run the following commands in your terminal:
node -v
npm -v
ng versiongit clone git@github.com:alobuuls/angular-jsonplaceholder-client.git
cd angular-jsonplaceholder-clientnpm installStart the development server:
ng serveThen open:
http://localhost:4200
The application follows a modular architecture focused on scalability and maintainability.
Responsible for:
- Global application configuration
- Singleton services
- Shared infrastructure
- Application-level dependencies
Responsible for:
- Reusable pipes
- Shared utilities
- Common functionality
- Cross-module resources
Responsible for:
- Post management
- API integration
- Feature-specific routing
- Lazy-loaded functionality
Responsible for:
- HTTP communication
- API abstraction
- Data retrieval
- Observable management
Responsible for:
- HTTP request customization
- Header injection
- Request preprocessing
- Cross-cutting concerns
- π° JSONPlaceholder posts visualization
- π‘ REST API consumption
- β‘ Lazy loading modules
- π HTTP interceptors
- π§ͺ Custom Angular pipe
- π§ Modular routing
- π― Strong typing with TypeScript
- π Reactive programming with RxJS
- π§© Reusable modules
- π Scalable architecture
| Technology | Purpose |
|---|---|
| Angular 12 | Front-End Framework |
| TypeScript | Application Logic |
| RxJS | Reactive Programming |
| HttpClient | API Communication |
| JSONPlaceholder API | Data Source |
| HTML5 | Structure |
| CSS3 | Styling |
src/
βββ app/
β βββ core/
β β
β βββ interceptor/
β β βββ auth.interceptor.ts
β β βββ general-headers.interceptor.ts
β β
β βββ interfaces/
β β βββ api-jsonplaceholder.interface.ts
β β
β βββ pages/
β β βββ posts/
β β
β βββ pipes/
β β βββ day.pipe.ts
β β
β βββ services/
β β βββ api-json-placeholder.service.ts
β β
β βββ shared/
β βββ app.routes.ts
β βββ app.module.ts
β
βββ environments/
βββ main.ts
βββ README.md
- Modular architecture
- Lazy loading by feature
- Separation of concerns
- Reusable shared modules
- HTTP interceptor pattern
- Service abstraction layer
- Strong typing with interfaces
- RxJS observable patterns
- Scalable project organization
- Enterprise-oriented structure
Practice and strengthen Angular architecture concepts through the implementation of a client application consuming a REST API:
- API Consumption
- Angular Modules
- Lazy Loading
- HTTP Interceptors
- Routing Architecture
- RxJS Fundamentals
- Reusable Components
- TypeScript Interfaces
- Scalable Front-End Development
This project is intended for educational and portfolio purposes.
Created by Alondra Francisco.