Code Monkey home page Code Monkey logo

susi_desktop's Introduction

SUSI Desktop

Codacy Badge Join the chat at https://gitter.im/fossasia/susi_desktop Build Status npm npm XO code style Twitter URL

SUSI AI Desktop Client

Susi AI is an intelligent Open Source personal assistant. It is capable of chat and voice interaction by using APIs to perform actions such as music playback, making to-do lists, setting alarms, streaming podcasts, playing audiobooks, and providing weather, traffic, and other real time information. Additional functionalities can be added as console services using external APIs. Susi AI is able to answer questions and depending on the context will ask for additional information in order to perform the desired outcome. The core of the assistant is the Susi AI server that holds the "intelligence" and "personality" of Susi AI. The Android and web applications make use of the APIs to access information from a hosted server.

Deploy to Docker Cloud

Build and Run

The app is based on electron hence make sure that you have electron installed, else simply run npm i -g electron.

Run the app

$ sudo npm i -g susi_desktop
$ susi

Setup locally for development

Clone the project
$ git clone https://github.com/fossasia/susi_desktop.git
$ cd susi_desktop
Install project dependencies
$ npm install
Start the app
$ npm start
Screenshots

Susi Desktop Screenshot

Contributing

Please adhere to Contributing guidelines, feel free to contact on gitter if you have any queries.

susi_desktop's People

Contributors

aashutoshrathi avatar akshat-jain avatar ankitrgadiya avatar anshumanv avatar bhaveshan avatar brainbuzzer avatar codacy-badger avatar djmgit avatar dynamitechetan avatar gitter-badger avatar gupta-utkarsh avatar mariobehling avatar ms10398 avatar sansyrox avatar tstreamdoth 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  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  avatar  avatar  avatar  avatar

susi_desktop's Issues

Add a screenshot

Actual Behaviour
Repo lacks a screenshot.

Expected Behaviour
It should have one!

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this). or @niteshkumarniranjan ❤️
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Implement enter to send.

Currently:
We have to type the message in the box.
Then click the send button.

Ideally:
We type the message and press enter to send it.

Organise the project properly

Essentially, electron apps are composed of two components-

  • Main Process
  • Renderer Process

And thus the project needs organisation of a similar fashion to keep it easy for newcomers to contribute.

Remove white space around the chatpane (webview)

Actual Behaviour

Presently there is a white border around the webview.

Expected Behaviour

The border should not be there, the top bar should take up the entire width.

Screenshots of the issue
susi

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Write issue and PR templates

It would be a good practice to incorporate standard issue and pull request templates to assist anyone who wishes to contribute to this project.

Shift electron-debug from package dependencies to app dependencies

xo excepts electron-debug in app dependencies app/package.json which is currently placed in package.json

This last thing will probably fix the travis.

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Add package-lock.json file

Actual Behaviour

Currently, package-lock.json is not committed.

Expected Behaviour

package-lock.json should be committed. See here https://stackoverflow.com/questions/44206782/do-i-commit-the-package-lock-json-file-created-by-npm-5#answer-44210813

 package-lock.json is automatically generated for any operations where npm modifies either the node_modules tree, or package.json. It describes the exact tree that was generated, such that subsequent installs are able to generate identical trees, regardless of intermediate dependency updates.

Steps to reproduce it

Add steps to reproduce bugs or add information on the place where the feature should be implemented. Add links to a sample deployment or code.

LogCat for the issue

Provide logs for the crash here

Screenshots of the issue

Where-ever possible attach a screenshot of the issue.

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Stop sending blank messages

It seems to be like there is a bug in sending messages. Even if the message is blank, it is being sent which not expected behavior.

Add dist directory to .gitignore

dist directory is created when we package our electron app, we don't want it to be committed hence we need to add it to .gitignore.

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Improve design.

The app is very plan right now without much design.
We should improve the design to make it look pleasing to the users.

Implement a Toolbar

capture

This is what we want to implement next. A toolbar that will have two different options where one will be switch theme and other will be settings. Please use FontAwesome or whatever library you feel suitable but make sure it is open to everyone.

Migrate bower dependencies to npm

Actual Behaviour

Uses bower.json as an additional package manager

Expected Behaviour

just using npm dependecies should suffice, why use 2 package managers

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Publish the app as a npm module

This way users can:

  • Install the app directly from the terminal using command npm i -g susi_desktop.
  • Start the app from the terminal at any instant using susi.
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Update package.json

  • Remove license (as we dont have one yet)
  • Update homepage link.
  • Update electron version.

Add some cool badges

  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Clear input text field after message is sent

After a message is sent, the text field is not cleared and the user has to manually clear it.It would be nice if the text field is cleared automatically once the message is sent.

Implement a multi line textfield as the webclient

Presently only single line input is accepted even if the size of input is more than the size of the input field.It would be nice if a multi line text field like the web client is implemented as the text is more readable.

Implement a copy context menu-item

Presently if users want to copy a message they have to use the copy menu-item from the edit menu. It would be nice if a right click context menu-item could be created for the same.

App Icon

currently Default electronJS icon is used. It should be changed to SUSI Icon.

Add .editorconfig and .gitattributes

  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Update package.json as per the present setup

  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Implement Auto-scroll

Currently it works like this:
We type message and click send button.
The message is added in conversation but the app is still on last message.
Then we have to scroll to the bottom to see the latest message.

Ideally:
We enter message and the app should automatically scroll to the bottom.

Remove package-lock.json from .gitignore

npm suggests that the package-lock.json file it meant to be committed to repositories.

https://docs.npmjs.com/files/package-lock.json

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Add dependencies through npm

Instead of adding font awesome and jquery library directly to source code. We can import them using node package manager? It would be easy to maintain and update! Your thoughts @BrainBuzzer ?

Update README.md with the current setup

A lot of changes has been done in the project hence we need to update README accordingly.

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Add new loader gif

Actual Behaviour

Currently, the loader gif seems irrelevant

Expected Behaviour

Add a relevant loader which suits the application and SUSI them overall

Would you like to work on this?
Yes

Generate cross-platform installers

Additionals -

  • Publish desktop app as an npm module and install or fire the app from the terminal instantly. Something similar that I did with zulip app below (just type in the app name in the terminal to fire the app)

zulip-demo

Add tray support [Feature]

This will keep susi running in the system tray when closed, so it can be accessed quickly.

  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Display a gif while webview is loading

Currently it looks just like a browser is opening some page, to give it a more desktop like feel we need to incorporate a loading gif while the web content is actually loading.

  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Add building script

Currently, there is no building script in package.json file. It would be great if there will be a script to build the application for all platforms.

Fix travis log by changing syntax as per xo style guide

Currently travis check is failing, fixing the syntax as per xo style will fix it.

  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Dockerize susi_desktop

Actual Behaviour

Currently, no Dockerfile present hence no containerization.

Expected Behaviour

Adding Dockerfile for containerization.

Steps to reproduce it

Add steps to reproduce bugs or add information on the place where the feature should be implemented. Add links to a sample deployment or code.

LogCat for the issue

Yes, wanna work on this issue

Screenshots of the issue

Where-ever possible attach a screenshot of the issue.

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Implement a new greeter screen.

Currently the app starts and directly land to the conversation.
IMO, we should add a greeter for the first timers and later we can add a small tutorial kind of to help them know what they can do with it.

fix response lag

Currently the response is not spontaneous. Suppose the user asks susi something. He does not get the reply immediately. When he asks something again for the second time He gets the reply of the first query but not of the current query

Add CONTRIBUTING.md

Actual Behaviour

Currently, no CONTRIBUTING GUIDE is present in .github DIR which is required to follow best practices.

Expected Behaviour

CONTRIBUTING.md should be present in .github

Steps to reproduce it

Add steps to reproduce bugs or add information on the place where the feature should be implemented. Add links to a sample deployment or code.

LogCat for the issue

Provide logs for the crash here

Screenshots of the issue

Where-ever possible attach a screenshot of the issue.

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

package-lock.json should also be included in .editorconfig

Actual Behaviour

.editorconfig has only package.json in json files

Steps to reproduce it

We better add *.json for checking all JSON files.

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Use window events to display content in main process

  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Not working properly.

For some reason this app is not working properly. Sometimes it gives some strange answers and sometimes it's not even answering. We need to find out the problem and solve it.

Use chat.susi.ai as a submodule

Problems -

  • Current implementation is unreliable and gives improper results.
  • UI/UX is too primitive.
  • Doesn't support speech input.
  • Web links aren't displayed

Solution -

  • Electron provides a very powerful webview tag. Use the webview tag to embed ‘guest’ content (such as web pages) in your Electron app. The guest content is contained within the webview container. An embedded page within your app controls how the guest content is laid out and rendered.

  • I plan to use this tag and use our webapp https://chat.susi.ai/ in our desktop app which will in turn allow us to have all the features of our webapp inside our desktop app (Obviously).

  • Read more if needed here : https://electron.atom.io/docs/api/webview-tag/

Benefits -

  • No need to worry about UI/UX.
  • All functionalities of the webapp directly incorporated.
  • Prevent from writing extra HTML/CSS for each new feature (not entirely though !) since electron apps are essentially a browser window rendering some HTML so why not use the already implemented one !

Add relevant npm badges

  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Add CONTRUBUTING.md

Please check the applicable fields -
  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Port app to Aurelia

There are so many bugs coming in the way like #11 which makes chat experience really bad. The goal is to port this app to Aurelia which already uses latest JavaScript i.e. ES2016 and has pretty things coming around it. While the app is still in early stages, it will be good enough to port it to some application framework right now. Afterwards, it will be really complex job to do so.

Hide menu bar as default

Actual Behaviour

Menu bar is shown by default

Expected Behaviour

Menu bar should only be displayed on pressing Alt key (like in firefox)

  • I ensure that this issue is not a duplicate of any current open issues(s).
  • Assign this issue to me (I want to work on this).
  • I will send my PR only after I'm assigned to this issue by any maintainer.
  • I understand that I will be unassigned from this issue if I fail to send a PR for this within a week.

Add Switch Theme Option

Current UI only gives one option of theme. We want to implement a new theme switcher option which will let us choose between themes.

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.