Giter VIP home page Giter VIP logo

nimblechat's Introduction

Nimble Chat hydrogen animated logo

Home Screen



๐Ÿ‘‹ Meet NBX Weather, your friendly chatbot for all things weather-related. It is here to help you stay up-to-date with the latest weather forecasts, air quality information, and more! ๐ŸŒž๐ŸŒซ๏ธ

Features

  • Provide current weather conditions for any city in the world
  • Give you the forecast for the next few days for a specific city
  • Provide information about air quality in different cities
  • Answer questions about weather-related topics like climate change, weather patterns, and more

I'm constantly learning and improving, so if there's something specific you'd like to know or a feature you'd like to see, feel free to let me know and I'll do my best to help! ๐Ÿ˜Š

How To Use

  • Go to Nimble Chat Webapp and click on "Login with Github" to sign in
  • Type in your request in the chat box and press enter
  • If you want to know the weather in a specific city, type in "What is the weather in {city name}?"
  • If you want to know the forecast for a specific city, type in "What is the forecast for {city name}?"
  • If you want to know the air quality in a specific city, type in "What is the air quality in {city name}?"
  • If you want to know the above information for your current location, type in "What is the weather/forecast/air quality here?"

Examples

  • What is the weather in Delhi?

    Delhi Weather
  • What is the forecast for New Delhi?

    New Delhi Forecast
  • What is the air quality in Noida?

    Noida AQI
  • What is the weather here?

    Current weather
  • What is the air quality here?

    Current AQI

How It Works

  • User input is processed using a combination of regular expressions and fuzzy string matching to determine the user's intent and a location
  • If it is a weather realted request and location is a valid city, the bot will use the OpenWeather API to retrieve weather data for that city
  • If the intent is not weather-related, the request is sent to NBox API to retrieve a response (llama2 model)
  • The response is then sent to the database to be stored and used for future requests

Important Notes

  • The project is built using React and is hosted on Netlify.
  • The project is using Tailwind CSS for styling.
  • The project is using the OpenWeather API to retrieve weather data.
  • The project is using the NBox API to generate responses to user requests.
  • The project is using the Supabase for persistent storage and authentication.
  • The project is a client-side only application. This means that all requests are made from the browser and no data is stored on the server.
  • The project is using Redux Toolkit for state management.
  • The project is using React Router for routing.
  • The project is using a self-hosted CORS proxy to make requests to the NBox API. This is because the API does not have CORS enabled. This is not ideal, but it is the only way to make requests to the API from the browser. The proxy is hosted on Heroku.

Self Hosting Instructions

  • Clone the repository to your local machine using git clone https://github.com/Purukitto/NimbleChat
  • Run yarn command to install all dependencies
  • Create a .env file in the root directory and add the following environment variables:
VITE_CORSPROXY_URL; // URL of the CORS proxy
VITE_NBX_KEY; // NBox API key
VITE_OPENWEATHERMAP_KEY; // OpenWeather API key
VITE_SUPABASE_KEY; // Supabase API key
VITE_SUPABASE_URL; // Supabase API URL
  • Run yarn dev to start the development server
  • Run yarn build to build the project
  • Run yarn serve to serve the project

License

This project is licensed under the GLP 3.0 License - see the LICENSE file for details.

nimblechat's People

Contributors

purukitto avatar

Stargazers

 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.