cli-Mate is a feature-rich weather app designed to be your ultimate weather companion. With cli-Mate, you can stay informed about the current weather conditions and forecasts for any location around the world. Whether you're planning a trip, getting ready for outdoor activities, or just want to know what to expect outside, cli-Mate has you covered.
In today's fast-paced world, staying prepared for changing weather conditions is more critical than ever. Weather can impact daily routines, travel plans, and outdoor activities, but many weather apps often fall short in providing accurate, easy-to-understand information and personalized notifications. That's where cli-Mate comes in.
Developed with a focus on user-friendliness and accessibility, cli-Mate is a cutting-edge weather application designed to empower users with comprehensive weather data and intelligent features. It offers precise weather forecasts while allowing users to set temperature limits and receive notifications for high and low temperatures.
What sets cli-Mate apart is its advanced voice assistant, powered by Natural Language Processing (NLP). This voice assistant provides instant, conversational weather updates and enables users to configure temperature preferences through natural dialogue, offering a highly personalized weather experience.
Under the hood, cli-Mate seamlessly integrates various programming languages and technologies. It's built with Dart and Flutter for its intuitive user interface, communicates with real-time weather data using REST APIs and JSON, relies on Django, a high-level Python web framework, for its back-end operations, and features an NLP-driven voice assistant to enhance accessibility and user-friendliness.
cli-Mate's mission is to simplify the way people interact with weather information and equip them with the tools needed to plan their lives effectively in an ever-changing climate.
-
Personalized Notifications
- Set temperature limits and get instant notifications for weather changes.
- Adapt to changing conditions effortlessly.
-
Real-Time Weather Data
- Access live weather info: temperature, wind speed, humidity, and more.
- Make informed decisions with up-to-the-minute updates.
-
Voice Assistance (NLP)
- Utilize advanced Natural Language Processing (NLP) for seamless voice interaction.
- Interact with cli-Mate using voice commands for a user-friendly experience.
-
7-Day Weather Forecast (Forecast)
- Plan your week confidently with a detailed 7-day forecast.
- Know daily minimum and maximum temperatures for effective scheduling.
-
Location-Based Weather
- Get accurate weather data based on your location.
- Easily access weather updates for any city or region, ensuring preparedness.
-
Stunning Visuals
- Immerse yourself in captivating weather visuals reflecting current conditions.
- Enjoy an engaging weather experience with beautiful icons.
-
User-Friendly Interface
- Navigate cli-Mate effortlessly with an intuitive interface.
- Users of all ages can access and customize weather data easily.
-
Secure Data Storage
- Protect your settings and location preferences with secure storage.
- Your data is accessible only to you, ensuring privacy and security.
Before you begin, ensure that you have the following prerequisites installed on your development environment:
-
Python: You'll need Python installed to run backend scripts microagents. You can download Python from the official website here.
-
Flutter with Android Studio: To build and run the cli-Mate application, you must have Flutter and Android Studio installed. Follow the installation instructions for Flutter and Android Studio based on your operating system:
-
Android SDK: Android Studio usually comes with the Android SDK, but it's essential to ensure it's correctly installed and configured. Android SDK is necessary for building and running Android applications with Flutter.
Make sure all the required paths are added to PATH in environment variables of you PC.
After installing Flutter and Android Studio, it's highly recommended to run the following command to check for any additional requirements or corrections in your Flutter environment:
flutter doctor
We have already hosted the server on AWS for you :) You can just skip to to get started with cli-Mate using our Pre-Built apk and server hosted on AWS. Or Set up the server and compile the app yourself with instructions provided.
Feel free to reach out to us if you have trouble following the guide. Contact details can be found here
Note: Please be aware that there might be a delay in receiving notifications from the server notifier. This delay has been intentionally set higher to avoid exceeding the rate limit imposed by the open meteo weather API we rely on for real-time weather data. We appreciate your understanding, and rest assured that we have implemented this delay to ensure the continued reliability.
-
APK File Link: You can download the pre-built APK file from this link.
-
Installation: After downloading the APK file, install it on your Android device.
-
⚠️ Permissions: Make sure to allow the required permissions when prompted during installation. If you don't receive any prompts, you can configure permissions in your device settings. The app requires notification, location, and microphone permissions for proper functioning. -
Usage: Once installed and permissions granted, launch the app to start using cli-Mate.
-
Clone the Repository: Begin by cloning the cli-Mate repository from GitHub to your local machine. This step ensures you have the server's source code.
git clone https://github.com/me-sanath/HackAI_Hack-230354.git
-
Create a Virtual Environment: It's a good practice to work in a virtual environment to manage dependencies cleanly. Create a virtual environment using your preferred method. For example, you can use Python's
virtualenv
orvenv
.While in cloned directory, run
python -m venv .venv
-
Activate the Virtual Environment: Activate the virtual environment to isolate your project's dependencies. This step ensures that you work within a controlled environment for your server.
- On Windows
.venv\Scripts\activate
- On macOs and Linux
source .venv/bin/activate
- On Windows
-
Install Requirements: Use
pip
to install the required Python packages specified in therequirements.txt
file. These packages are essential for the server's proper functioning.pip install -r requirements.txt
-
Database Migration: Apply the database migrations. This step ensures that your database schema is up to date.
python manage.py migrate
-
Create Super: Create a super user for the supertoken required for uagents and without login weather fetch token.
python manage.py createsuperuser
Follow the instructions on screen
-
Postman Request: Send postman request to
http://your-server-address/api/login/
Json body : Form data must contain email with superuser email and password of superuser
{ "token": "your-identifier", "user_id": user-id, "username": "username" }
Copy and paste this identifier in
weather_agents.py
file where indicated -
Start the Server: Launch the server with the given command. This action starts the server locally, and it will be accessible at the specified address (usually
http://localhost:8000/
).python manage.py runserver
All the keys for running notifier is already added in the uagents
Change URL If server is run locally, change the adress in the base url with local address.
** Run this command to start notifier server:
bash python weather_agent.py
-
Navigate to App Directory: If you haven't already, navigate to the directory containing the Flutter app code. In this case, it appears to be in the "first_app" directory.
cd first_app/
-
Get Dependencies: Run
flutter pub get
to fetch and install the necessary Flutter dependencies for the app. This step ensures that your app has access to required packages.flutter pub get
-
Update Server Adress: Before proceeding, ensure you have the server address where your backend is hosted. Open the api_service.dart and api_service.g.dart files located in
first_app/lib/service/
. Update server adress in base url of retrofitted API class. If you cannot find it, search forCHANGELINK
keyword which is commented. -
Build and Run: Use
dart run build_run run
to build and run the app. This command will compile the app and make it ready for execution.dart run build_run run
-
Connect Android Device or Emulator: Ensure your Android device is connected to your computer via USB, and USB debugging is enabled in developer mode. Alternatively, you can use an emulator to test the app.
-
Launch the App: Run
flutter run
after selecting the target device or emulator. This command will install and launch the app on the specified device.
These steps will help you set up and run both the server and the app smoothly. You're now ready to go!
μAgents, Flutter, Dart, Python, Django, Firebase, AWS
API: Open Meteo
μAgents: μAgents is a versatile software framework for creating autonomous agent systems.
Flutter: Flutter is Google's UI toolkit for building natively compiled apps for various platforms.
Dart: Dart is a fast, modern programming language primarily used in Flutter development.
Python: Python is a versatile and readable programming language used in web development, data analysis, and more.
Django: Django is a high-level Python web framework known for its simplicity and robust features.
Firebase: Firebase is Google's mobile and web app development platform with a wide range of tools and services.
Sanath Naik
Pranav Anantha Rao
K L Gireesh
Satwik Kini