MeteoApp is a weather forecast web app. MeteoApp is built with JavaScript over AngularJS framework along some libraries like uiRouter or Redux and API services from geoNames and openWeatherMaps.
There is a demo of the application hosted on Netlify with continuous deploys on the following link:
- Introduction
- Local Deploy
- E2E Testing
- Dependencies
- Known Issues
- Contributing and Support
- Special Thanks
- License
MeteoApp is an application developed entirely during my 3 month FCT internship on GBtec Software.
The main purpose of the application is learning about web development. The use of Javascript ES6+, modern framework like AngularJS, useful libraries used on big applications like uiRouter or Redux and handling geoNames and openWeatherMaps API calls for filtering the data retrieved by them. With all these new concepts and technologies learnt I was able to create and deploy a standard modern weather web application.
If you want to deploy this application locally on your computer you will need Node.js and npm which comes along with the Node installation.
Download this repository and after the download you need to add an .env file on the root folder of the application with the following API keys you can get for free:
OPENWEATHERMAP_API_KEY=(openWeatherMaps API Key)
GEONAMES_API_KEY=(geoNames API Key)
EMAILJS_API_KEY=(emailJS API Key)
EMAILJS_SERVICE=(emailJS mailing service)
EMAILJS_TEMPLATE=(emailJS template)
After this you are almost ready to go, just open a terminal on the repository folder, install all the dependencies and finally run the following commands:
- dev -> Runs server locally on port 9000.
- build -> Generates a build of the web on the dist folder.
npm i
npm run (command)Meteoapp comes packed with some E2E tests made with Protractor. To run them, you need to open the local development server on a terminal:
npm i
npm run devAlso, you will need to open another terminal to open an Selenium server with Webdriver Manager, to achieve this, first assure we are up to date and then open the server:
webdriver-manager update
webdriver-manager startYou are ready to go and run the Protactor tests with the following command on a terminal:
npm run protractor- angular: Framework used for the dynamic build of the application.
- angular-material: Used for implementing UI components into the application.
- angular-translate: Used for making the app translations.
- angular-animate: Allow material components animations.
- angular-aria: Allows material components accesibility.
- angular-messages: Allows material components messages content display.
- material-icons: Used for displaying material design icons.
- flag-icon-css: Used for taking country flags for language selection.
- redux: Library used to work with the state of the application.
- ng-redux: Implementation of redux to AngularJS.
- uiRouter: Manage of the application screens and routing.
- emailjs-com: Sending contact mails to myself.
- protractor: E2E tests.
Known issues of the application are opened on the issues section of this repository. All of them are labeled and every new issue will be evaluated and solved so feel free to open a new issue if you find a problem or if you have any suggestion for the application.
Same as the known issues. Contributing is free and always welcome. I'm accepting every kind of contributions, going from little updates like typo corrections to big updates like new screens of the application and functionallities so feel free to make a new Pull Request!
If you find any trouble or problem with the app just let me know opening a new issue on this repo or contact me on [email protected]
- GBtec software, Cibrán Ledo for applying me for the FCT internship and giving me the oportunity to learn and work with new and modern web applications.
- Jorge Villar, Diego Pascual and Eloy Castelo for taking time to explain new concepts and technologies used on this application. And of course, for taking time to review all the Pull Requests on this project along it's usual job tasks.
- Samuel Figueirido for spending and sharing the time of the FCT internship with me, we, the both, have learnt a lot on these 3 months and we could know more about the eachother on that time.
- Nuria Oujo for helping me with the design of the application despite I didn't pay too much attention because the quantity of tasks I had to do in the internship time.
MeteoApp, Weather Web Application
Copyright (C) 2019 Julio Lagos Carrera
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.