A web app that uses Graphqlzero to show blog posts
- ⚡️ Angular 15
- ⛑ TypeScript
- 📪 NgRX
- 🚧 Apollo GraphQL
- 📝 Reactive Forms
- 📏 ESLint — To find and fix problems in the code
- 💖 Prettier — Code Formatter for consistent style
https://blog-posts-eight.vercel.app/feed
- The project has been built following the LIFT (Locate, Identify, Flattest, and Try to be DRY) architecture and industry-standard best practices. The LIFT architecture facilitates code scalability, maintainability, and testability, enabling it to handle large-scale projects with ease.
- The project features a responsive UI design that showcases my prowess in vanilla CSS without relying on external CSS libraries.
- The codebase is adherent to the ESLint and Prettier guidelines, ensuring code consistency, maintainability, and readability.
- Reactive Programming: Reactive programming, as facilitated by
ngrx/store
andngrx/effects
, is employed in the project, offering an efficient way of managing state and enabling more predictable and maintainable code. - OnPush Change Detection Strategy: The
ChangeDetectionStrategy.OnPush
technique enhances the app's performance by having Angular check only the inputs, outputs, or event handlers that have changed, significantly reducing the time spent on checking every aspect of the component. - Separation of Concerns: The component class focuses on the component's view logic, while the state management logic is delegated to ngrx/store. Such a separation fosters code understandability and maintainability, reducing code complexity and redundancy.
- Unit Tests and e2e Tests: The lack of testing is regrettable, but it does not detract from the project's core functionality.
- Alert/Error: The use of browser alert/error is not recommended, and I recognize that a custom alert/modal would be a more suitable replacement.
- UI/UX and Edge Cases: The project's user interface and user experience, including edge case handling, require further refinement to enhance their quality and accessibility.
- More meaningful comments
Clone the project
git clone https://github.com/biagruot/blog-posts.git
Go to the project directory
cd blog-posts
Install dependencies
yarn install
Start the server
ng serve
👤 Biagio Ruotolo
- Github: @biagruot
- LinkedIn: @biagioruotolo
This project is licensed under the MIT License - see the LICENSE.md file for more information.
Made with ❤️ in 🇮🇹