Giter VIP home page Giter VIP logo

epicalable / jarvis Goto Github PK

View Code? Open in Web Editor NEW
70.0 8.0 17.0 375 KB

Jarvis is a simple Chatbot with a GUI capable of chatting and retrieving information and daily news from the internet for it's user using python.

Home Page: https://epicalable.github.io/epicalable.html

License: GNU Affero General Public License v3.0

Python 100.00%
chatbot jarvis python gui ui news weather internet pysimplegui news-headlines

jarvis's Introduction

J.A.R.V.I.S

A Chatbot with a GUI made for you to get News Headlines, Weather, Stocks, Wiki and more....

Maintenance Documentation Status contributions welcome

jaruiv1.0

Kindly consider starring this repository if you like the program :-)

Table Of Contents

WHAT'S NEW?

Here at Epicalable we are committed in keeping J.A.R.V.I.S up-to-date and up-to-speed with the growing tech solutions and algorithms. Hence this new commit includes:

JARVIS Updates In This Commit:-
Update Highlights:-
1. Bug fixes and UX enhancements.

Monthly Maintanance Updates:-
1. Minor updates to README.md
2. Standardization of different definitions.
3. Monthly Code checks, updates and Maintanence to continue supporting python 3.11.3.

Code Checks Manifest:-
All Checks Status: ✅
-----------------------------------------
Code Integrity Checks: ✅
GUI Stability Checks: ✅
Code-GUI Integration Checks: ✅
(All evaluations are done by the R&D Department)

Last Updated: 14-Feburary-2024 20:15 HRS
Publisher: Epicalable

Keep updated to what's happening on this repository by clicking the 'Star' and 'Watch' button on the top right corner of this webpage.

Screenshots of J.A.R.V.I.S

Graphical User Interface :-

Code Workspace (VSCode + One Dark Pro + Pylance) :-

Note: As of 1 May all of Epicalable Systems have been upgraded to windows 11.

Introduction to J.A.R.V.I.S?

J.A.R.V.I.S was started in 2019 as an Command-Line Interface Application in C++ and after careful consideration was shifted to Python during 2020 due to some limitations.
J.A.R.V.I.S has been constantly evolved over the years to where it is now, integrated with a GUI and new features being added every month. While our staffs in Epicalable are constantly fixing bugs and closing issues behind the scenes.
So what does JARVIS do? Well JARVIS is known as a chatbot it also can get news, weather, get location, send emails, flight info, stock prices, wikipedia and some more cool features sprinkled in by our programmers.

How to run J.A.R.V.I.S?

To run J.A.R.V.I.S, user are to open up the JarvisGUI.py file and 'pip' download the 3rd party packages so users can run Jarvis successfully without any problems.
Users facing any issues can open up an issue at the Issues section of JARVIS Github Page and can expext us to rectify it ASAP.

In order for J.A.R.V.I.S to work at full capacity a few 3rd party python packages will be required to be installed:

  1. pip install PySimpleGUI
  2. pip install requests
  3. pip install beautifulsoup4
  4. pip install wikipedia
  5. pip install geocoder

How does J.A.R.V.I.S store info and is it safe?

Yes, Your info will be safe since it will be stored locally on your personal computer. J.A.R.V.I.S stores these info into 3 main sources.

  1. Response-Intents: Stored in Jarintents file used by J.A.R.V.I.S to check your input with tags and provide the appropriate output for the user. Head to Jarindent.json to take a look.

  2. Info-Intents: Stored in Jarsettings file used by J.A.R.V.I.S to access Api keys, User Name and location for data retrieval and also to adjust the output and input screen sizes. You can access these by heading to settings in the menu.

  3. Audit-Indents: Stored in the Jaraudit file used by J.A.R.V.I.S to store user input/output logs, system retrival logs and fallback errors in your computer. You can access them by heading to ChatLogs in the menu.

All CRITICAL INFO REGARDING the USER will be STORED IN your PERSONAL COMPUTER and NOT on the INTERNET.

What Are The APIs should I subscribe to?

When completed installing, by default you can chat with J.A.R.V.I.S using temporary APIs provided to you. But if you want it to be personalised then it is best to activate the API. To do that you will need to head to:

  1. https://newsapi.org/ : For Live News, Morning Briefings and News Headlines.

  2. https://openweathermap.org/ : For current Weather information.

Both websites once registered will provide you an API key, Users should then copy the API key and paste it in the respective bars in the settings menu.

Some examples of J.A.R.V.I.S commands.

To make JARVIS respond Users will need to enter a Command in the input bar and then JARVIS will scan for keywords and provide an answer or information.

Here is a sample list of available Commands:

  • Hello
  • How are you
  • Are you fine
  • Are you real
  • Tell me the time
  • News on [your input]--
    Ex. News on Github.
  • Get me news headlines
  • Send an email
  • Wikipedia [Query]--
    Ex. Wikipedia github.
  • Who is [Query] / What is [Query]--
    NOTE: JARVIS will get answer from Wikipedia.
  • Get me stock price--
    NOTE: Stock abbreviations EX."TSLA AAPL MSFT" will be in Setting under "StockPrice".
  • Track flight
    NOTE: Number of Flight like SQ 11, SQ 305, SQ 335, SQ 23
    Ex. Track flight SQ 242
  • Goodbye --
    NOTE: Command to quit JARVIS.

License

Open Source Love svg1

IMPORTANT NOTE: Any User who are willing to Share or Re-Distribute JARVIS are kindly advised to:

  1. A reference to us by keeping a "(C) Epicalable" text in the 'Modified program' such as keeping it in the settings menu, about or help page.

  2. A link to this repository from the user's 'Modified program' README file.

It will be helpful for us as users will know it's original source and about our startup. Please also refer to LICENSE file for clarifications.
Thank you for your kind cooperation :-)

Version 1.3
J.A.R.V.I.S Copyright (C) Epicalable 2024 All Rights Reserved.

jarvis's People

Contributors

mahamohan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jarvis's Issues

Flight Tracker Issue Tracker

Currently this function is in beta and is currently under testing.
We will also be trying to create a GUI to show the data rather than on the mainframe terminal.
R&D and Coding Department will help to oversee this function's issues and will close this issue once all problems are rectified and solved.

Need new features

We need to add new features like APIs, improve upon the Jarintent dataset and also start working on making JARVIS talk.

Consider trying the PySimpleGUI UserSettings API calls for your JSON access

Last October a new set of calls was added to PySimpleGUI.... the UserSettings APIs.

https://pysimplegui.readthedocs.io/en/latest/#user-settings-api

As more information is saved by PySimpleGUI programs, including the global settings used by PySimpleGUI itself, it was clear that users, including the PySimpleGUI project, could benefit from a simplified interface to JSON files.

You'll find it's used in a number of demo programs now and I use it a lot in my own programs.

With these APIs, you don't need to worry about doing loads and saves of the JSON file. The API calls will do that for you.

This simplified access enables you to load defaults straight into your layout.

For example, I used the class-based interface to them to load a list of white-listed users using these 2 lines of code.

First is simply creating the UserSetting object.

    config_settings = sg.UserSettings(LOCAL_CONFIG)

Then in my layout, I have this Multiline element:

 [sg.Multiline( '\n'.join(config_settings.get('whitelist', [''])), s=(80,10), k='-WHITELIST-')]

It created a Multiline element like this this in my window:

image

If you want to save something into one of these settings files, it's this line of code:

    config_settings['whitelist'] = values['-WHITELIST-'].rstrip().split('\n')

I get the value from the Multiline element, strip to remove whitespace, then split using '\n' to get a list of users.

Because I'm using the class-interface to the UserSettings in this example, I can change and save an item in the JSON as if the object is a dictionary.

I dunno... maybe it'll save you a bit of coding.

For simple programs where there's only 1 settings file that I'm using, I use the function-interface rather than the class-interface.

Nice job on this repo! Keep on building stuff!!

Re-structuring the RENDER-WORD Engine.

As new words and output options are being added commit to commit it is important to make sure all the output are being shown correctly without any errors or mixing up the output.
This is why it is important to come up with a new system to help the program select outputs easier.
Example: When user says 'Hi' JARVIS will say 'Hello Sir', But now if the user says 'Dolphin' JARVIS will say 'Hello Sir'.
Even though Dolphin is an option in 'Jarindents.json' file JARVIS will come up with another output.
We cannot afford to turn a blind eye to this problem as soon when we want to expand JARVIS's vocabulary we would run into many more problems.
Thank You.

Bringing Back Stock Price Retrieving Through The Gui.

It was possible to retrieve stock prices before and now it has been removed due to an error.
This request is to bring it back and also improve the documentation by explaining to users about the Jaraudit Text File.

New Words Or Output Suggestions for Jarindents

Hello everyone at Epicalable,

It is in our utmost priority to help with Jarvis maintenance and keeping it updated with today's standards and regulations.
As we want to increase the usage of this chatbot we will also need to improve and upgrade its standard output library.
If anyone using this chatbot feels that your question needs proper answers and is useful to the community as a whole, feel free to comment below on your question asked and what answer you would expect to be displayed.

Thank you.

Scheduler and Timetable capabilities

Whenever we think of a computer program designed to talk to you we would also want it to be helpful to us by telling us things to do or upcoming work/project deadlines and motivate us to do things.
Jarvis will always need new features to keep it ahead of it's competitors and our job is to make it more interactive as possible.

Adding Ability To Navigate New Directory

Hi all,
We all have that one programs which once downloaded have problems on our system. I have noticed something and it's thanks to my new computer. Once I have downloaded and transferred Jarvis codebase to my computer the program has difficulty navigating and locating files.

To counter this I have contacted R&D department and they will help to research on possible workarounds and solutions. @SimonRogers3 will help to spearhead this issue and will keep us updated regarding his findings.

Once the solution has been found I will assist in implementing it into the main code and soon spread to the larger codebase.

Thank you,
MahaMohan

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.