Simply said: the project represents a single-page weather App. It derives data via the OpenWeatherApi for a small sample of 11 cities, which the user can get basic current weather Data for. The app includes a customized sign-in and log-in logic, which is handled via Firebase behind the scenes. Once logged in, the user can choose cities to add to her overview, for which an interactive CSS card displays the common weather app information.
Please refrain from using the API calls exessively. OpenWeatherApi's free plan stops at a pre-defined number of calls per hour, after which it just throws errors for the queries. Thanks in advance for acting responsively.
This toy project is a practice project to combine building Material themed Apps in Angular with a conclusive backend integration. It builds on most of the frameworks core features, such as (nested) Components, rxjs-based Subscriptions, State management via Services, and http request to a Firebase backend via Services. Basic authentification is provided via an Auth Service.
To work on this App yourself, you just need to get your own (free) API key from OpenWeatherApi. This key then needs to be inserted in an Angular environment.ts file under: src/environments/environment.ts and accessed (as in the code) via 'environment.api'. For question, do not hesitate to contact me here.
This project was generated with Angular CLI version 11.0.2.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
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
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.