Giter VIP home page Giter VIP logo

weather.github.io's Introduction

weather.github.io

  • This project was generated with Angular CLI version 16.x
  • Typescript 5.1
  • Ngrx && Rxjs
  • Styling with Angular Material based on SCSS
  • Testing with Jasmin + Karma + jasmine-marbles

Built With

Angular TypeScript ESLint RxJS Jasmine

Features

*All functionality

Function Description Implemention
Weather API Integration Integrate with a weather API of your choice to fetch weather data.(openweather,...) Use RxJS Observables and operators to handle asynchronous data fetching. -Login to openweathermap ref site and get an API KEY for getting data you pass it as params with url e.g. /data/2.5/weather?q={city}&&appid={API key}&units=metric
Caching static files and data and Offline as well Implement caching mechanisms to reduce API requests and improve performance. Support offline functionality by caching previously fetched weather data. - Using Interceptor and capture request, ShareReplay rxjs , Servive Worker, pwa , and configure Production Build with http-server Help ref
Display Weather Data Display the current weather information, including temperature, humidity, and weather condition.
Search Functionality Implement an input field with a search button. Fetch and display the weather data for the searched city.
ErrorHandling and Logging Handle errors that may occur during API requests. Display appropriate error messages to the user. Integrate a logging service (e.g., Sentry) to log errors and exceptions. - Create account and login to Sentry ref site - # Using npm (Angular 12+) npm install --save @sentry/angular-ivy - setting the sentry dsn , init the sentry in project , and register the sentry sonfig in provider of the module - Using Toast notify
StateManagement with NgRx Use NgRx to manage the application state. Define actions, reducers, and effects to handle fetching weather data and updating the state accordingly. Use selectors to retrieve specific weather data from the state. NgRx ref
UnitTesting and TestCoverage Write unit tests using Angular's testing frameworks (e.g., Jasmine, Karma). Aim for a high level of test coverage to ensure code reliability and maintainability. testing-code-coverage ref
Performance Optimization Optimize the application's performance by lazy-loading modules, using code splitting, and optimizing network requests. Implement memoization techniques to cache expensive calculations and computations
Internationalization and Localization Implement internationalization (i18n) and localization (l10n) support to provide multi-language support in the application. ngx-translate ref
Responsive Design Design and layout the application with a responsive and mobile-friendly interface. Ensure the application is visually appealing and usable on different screen sizes.
Continuous Integration and Deployment Deploy the application to a hosting platform on Netlify View Site - Ref - Netlify

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The application will automatically reload if you change any of the source files.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory.

Running unit tests and test-coverage

  npm run test
  npm run test test-coverage

Further help

Analyze statically the code to quickly find problems.

  npm run lint
  npm run lint:fix

Format the code with Prettier

  npm run prettier

configure Production Build with http-server and run /dist/ on a server throght cli ( Testing offline mode)

  npm run start-pwa

View(Demo) of project

img img

weather.github.io's People

Contributors

sarlakzm avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.