A simple responsive weather app for displaying weather data for various locations in the form of cards. The design of the app tries to be as minimalistic as possible, keeping out the clutter from the main view. Cards can be expanded so as to show the hourly and daily weather data.
These instructions will get you a copy of the project up and running on your local machine for development.
You will need the following, before running the project:
- Node v10.10.0
- Yarn v1.12.1
- Dark Sky API key
- Here Maps API key and App code
The version numbers for Node
and Yarn
are important as they ensure that the
changes due to node/yarn updates do not break the app. You can use NVM
to install multiple versions of Node.
Once you have installed and obtained all the prerequisites, now it's time to set up your local development environment.
First, clone the project.
$ git clone https://github.com/iammohitsakhuja/weather-app.git
Cloning into 'weather-app'...
Now, go into the server
directory and create a file named .env.development.local
with the following content:
HERE_MAPS_API_ID="YOUR HERE MAPS API ID"
HERE_MAPS_APP_CODE="YOUR HERE MAPS APP CODE"
DARKSKY_API_KEY="YOUR DARK SKY API KEY"
Do not forget to substitute the appropriate values into that file.
Once done, come back into the root directory for the project and run:
$ yarn install
...
This will install all of the dependencies for the project, and might take a while. After it is complete, run the project by executing the following in the project root:
$ yarn start:dev
yarn run v1.12.1
...
This will start the development server. You can open the app in your browser by
visiting http://localhost:3000
. And the API server will be running on port 3001
if no other port was specified in the environment.
- React - Client side rendering
- Redux - Client side state management library
- Express - Handling requests
For contributing guidelines, go through CONTRIBUTING.
Full list of contributors and maintainers is available here.
This project is licensed under GPL v3 - See the LICENSE file for details.