Giter VIP home page Giter VIP logo

weather-app's Introduction

AC Weather

Light Mode

AC Weather

Dark Mode

AC Weather

AC Weather is a full stack weather application made with Node - Express JS and React JS.

View live project here

Table of Contents

  1. UX

  2. Technologies Used

  3. Deployment

  4. Credit

  5. Disclaimer

Back to Top


  • UX:

    • Structure

      • Features:

        Responsive on all screen devices.

        • Existing Features:
          1. Home Page

            • Welcome user with a 3D animation
          2. Weather Page

            • Where the user can search any city and have information display
          3. Favorite cities Page

            • Where user can see all his favorite cities. For details weather info can click on any city and will redirect to weather page to see more info
          4. Settings Page

            • Where user can change the settings on display weather info (E.g. °C to °F)
          5. Light and Dark Mode

        • Future Features to Implement:
          • Allow the app to set the weather from your current location

Back to Top


  • Technologies Used

    • Languages:

      • HTML5 - used to structure website and its content.

      • CSS3 - to format the contents of each webpage.

      • JS - for DOM manipulation.

    • Frameworks & Libraries:

      • Express – Backend web application framework for Node.js

      • Axios - a Javascript library used to make HTTP requests from node.js

      • React Hook Form - a library that helps you validate forms in React.

      • Redux - a JavaScript library for managing and centralizing application state

      • React-Redux - is the official Redux UI binding library use to bind Reactjs and Redux

      • React Router Dom - to implement dynamic routing in a web app (React Router v6)

      • React-Bootstrap - a component-based library that provides native Bootstrap components as pure React components.

      • Dayjs - a minimalist JavaScript date library for parsing, validating, manipulating, and formatting dates.

      • Framer Motion - an animation library

      • Three.js - JavaScript 3D library

      • Bootstrap – CSS framework used to help with classes to make the app responsive.

      • GitHub - used to create and host the repository

      • Git - used for the version-control system for tracking changes in any set of files

      • Heroku - cloud platform for hosting the website

    • Additional tools:

      • VS Code - IDE

      • Create React App - This project was bootstrapped with Create React App

      • Weather API - for weather data

      • react-three/fiber - is a Three.js renderer that helps render 3D models and animations for React

      • react-three/drei - A growing collection of useful helpers and fully functional, ready-made abstractions for react-three/fiber.

      • Autoprefixer CSS - used to add prefix to css code

      • Tinypng - used to compress image file in order to reduce loading time on each page

      • CSS Validator - used to check CSS code for error

      • Am I Responsive? - for the main image in Readme to show responsive to different screen size

Back to Top


  • Deployment

    • Heroku

      • The project was deployed to Heroku using the following steps:

        1. In order to deploy to Heroku you need an account

        2. Now you can create a new app from the dashboard New Menu

        3. Now you need to set up a name and select a region closest to you

          NOTE: Remember the name has to be unique and generally use a dash and lowercase letters

        4. From the dashboard of your app click on the Settings and go to Reveal Config variables

        5. Set up the Config Vars

          Key Value
          NODE_ENV production
          PORT 3001
          WEATHER_API_KEY <your_secret_key>
        6. Now from the dashboard of your app click on the Deploy and from the Deployment method select Github - Connect to Github. Next on the search field type the name of the repository you want to deploy.

        7. Once it finds your repository click Connect

        8. Next you can click Enable Automatic Deploys

        9. Now From Manual Deploy you can click Deploy Branch and once it's finished you can click View

    • Local Clone

      In order to run this project locally you should have installed these 2 requirements on your machine plus an account on Weather API:
      1. VS Code - IDE or your personal preference

      2. Node.js - to run the application on your local machine

        Now you can create an account on Weather API

        Optional: you can install Git

      Steps to follow
      1. At the top of the repository click on Code and click on download zip and extract the zip file to your chosen folder or keep the same name

        Optional: if you have Git install on your machine you can type

        git clone https://github.com/constantinadrian/weather-app
        

        or to clone the repository into a different name on the folder you can run

        git clone https://github.com/constantinadrian/weather-app folder_name
        

        more info about cloning with git here.

      2. Install all dependencies with

        npm intall
        
      3. Create a .env file in server folder and add your weather api key

        WEATHER_API_KEY="your_secret_key"
        
      4. Run the application with

        npm start
        

Back to Top


Back to Top


  • Disclaimer

    • This project is for educational purposes only.

weather-app's People

Contributors

constantinadrian 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.