Giter Club home page Giter Club logo

susi_ios's Introduction

Meet SUSI.AI, Your Artificial Intelligence for Personal Assistants,
Robots, Help Desks and Chatbots. Ask it questions.
Tell it to do things. Always ready to help.


Download on the app store

iOS App for SUSI.AI

CircleCI Codacy Badge Join the chat at gitter Preview the app Twitter Follow

The main feature of the app is to provide a conversational interface to provide intelligent answers using the loklak/AskSusi infrastructure. The SUSI iOS App make use of the APIs to access information from the hosted server. The app also offers login functionalities to connect to other services and stored personal data. Additionally the application uses data provided by the user's phone to improve Susi answers. Geolocation information for example helps to offer better answers related to questions about "things nearby". Another main feature of the app is to connect your iPhone/iPad with SUSI Smart Speaker.

Roadmap

Make the app functionality and UI/UX similar to the Android app for Susi.

Development Setup

This project is written in Swift 4.2 and Xcode 10 is required for development.

Before you begin, you should already have the Xcode downloaded and set up correctly. You can find a guide on how to do this here: Setting up Xcode

       Steps to install Cocoapods (one time installation)
  • Run sudo gem install cocoapods to install the latest version of cocoapods. To install cocoapods from HomeBrew, brew install cocoapods.

  • Next, run pod setup for setting up cocoapods master repo. You may include --verbose for more descriptive logs. NOTE: This might take a while to setup depending on your network speed.

Setting up the iOS Project

  1. Download the susi_iOS project source. You can do this either by forking and cloning the repository (recommended if you plan on pushing changes) or by downloading it as a ZIP file and extracting it. OR
$ git clone https://github.com/fossasia/susi_iOS.git
  1. Navigate to the unzipped folder and run pod install.

  2. Open Susi.xcworkspace from the folder.

  3. Build the project (⌘+B) and check for any errors.

  4. Run the app (⌘+R).and test it.

Communication

Please join our mailing list to discuss questions regarding the project: https://groups.google.com/forum/#!forum/susiai

Our chat channel is on gitter here: https://gitter.im/fossasia/susi_iOS

Development

A native iOS app. The answers for user queries comes from SUSI Server which further uses skills defined in SUSI Skill Data.

Screenshots

Branch Policy

Note: For the initialization period all commits go directly to the master branch. In the next stages we follow the branch policy as below:

We have the following branches

  • ipa All the automatic builds generates, i.e., the ipas go into this branch
  • master This contains shipped code. After significant features/bugfixes are accumulated on development, we make a version update, and make a release.
  • development All development goes on in this branch. If you're making a contribution, you are supposed to make a pull request to development.

Code practices

Please help us follow the best practice to make it easy for the reviewer as well as the contributor. We want to focus on the code quality more than on managing pull request ethics.

  • Single commit per pull request
  • For writing commit messages please read the COMMITSTYLE carefully. Kindly adhere to the guidelines.
  • Follow uniform design practices. The design language must be consistent throughout the app.
  • The pull request will not get merged until and unless the commits are squashed. In case there are multiple commits on the PR, the commit author needs to squash them and not the maintainers cherrypicking and merging squashes.
  • If the PR is related to any front end change, please attach relevant screenshots in the pull request description.
  • Please follow the guides and code standards: Swift Style Guide
  • Please follow the good iOS development practices: iOS Good Practices
  • For contributors new to Git please have a look at the Git Configuration commands .

License

This project is currently licensed under the Apache License Version 2.0. A copy of LICENSE.md should be present along with the source code. To obtain the software under a different license, please contact FOSSASIA.

susi_ios's People

Contributors

akshat-jain avatar baquer avatar besilva avatar betterclever avatar bhaveshan avatar chashmeetsingh avatar chiragw15 avatar codacy-badger avatar dshivansh avatar ftp27 avatar gayashank avatar geovanacontine avatar gitter-badger avatar hashah88 avatar iamsimranjot avatar ishaan1995 avatar jogendra avatar kundan28 avatar madhavrathi avatar mariobehling avatar neeraj3029 avatar orbiter avatar piyush6348 avatar pri22296 avatar raghavbabbar avatar raghavbabbar24 avatar simran1 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

susi_ios's Issues

App is crashing sometimes when reply is websearch type

Actual Behaviour

App is crashing when user send message like below heaven, slow speed where susi reply is websearch type.

Expected Behaviour

App should not crash.

Steps to reproduce it

Start susi iOS app and send messages like below heaven, slow speed where reply is websearch type but app is not able to find something on web.

LogCat for the issue

@chashmeetsingh can you provide logcat? I can't do this.

Screenshots of the issue

Would you like to work on the issue?

@chashmeetsingh try to solve it.

Display websearch result multiple results

Actual Behaviour

The result shows a single result

Expected Behaviour

Multiple results should be shown.

Steps to reproduce it

Query some random stuff which returns a websearch action.

Would you like to work on the issue?

Yes.

Research and implement best practices for iOS projects

In Android projects the application is usually in a folder /app. I assume it is the same with iOS apps.

Screenshots and additional documents should go into a docs folder:

  • /docs additional documentation
  • /docs/img/ all images into this folder

Please also research and implement other iOS projects and start fo follow best practices.

Remove hard coded video play

Actual Behaviour

Video is played checking the if the query contains play substring.

Expected Behaviour

All action types need to be fetched from server.

Steps to reproduce it

try play {any_query}

Would you like to work on the issue?

Yes.

Add time stamps in message UI

Actual Behaviour

No time stamps are present in the UI.

Expected Behaviour

Time stamps should be present for each message.

Would you like to work on the issue?

Yes.

UI enhancement of Login, SignUp Screen

UI Issues:
1.Susi logo and email field spacing gets abrupt on smaller devices like iPhone 5s. - Login Screen
2.Password invalid texts gets overlapped with confirm password field. - Signup Screen.
3.Keyboard return does not hide the keyboard. - Login, SignUp Screen.
4.Tapping on empty space to hide keyboard - Login, SignUp Screen.

Solution:
1.Change constraints of the UI elements in Login, SignUp Controller
2.Add gesture for tap, and dismiss keyboard on tap gesture.
3.Add keyboard return button functionality to dismiss keyboard.

I would like to fix this issue.

Add option to choose a different susi server

Add custom url support similar to android app. ref issue PR. Add option to either select susi default server or custom server. If user chooses custom server, ask for Base url of the server.
Also add an option to change server in settings. In that option simply log out the user. Check screenshot in the referred PR for more details.

Parsing RSS action type

Actual Behaviour

Nothing happens as of now.

Expected Behaviour

Display a horizontal collection view with results.

Would you like to work on the issue?

Yes.

Crash on login

Actual Behaviour

App crashes on login.

Expected Behaviour

User should be able to login to start chatting.

Steps to reproduce it

Run the app and try logging in.

Would you like to work on the issue?

Yes.

Currently for play video command susi reply side remain blank

Actual Behaviour

On giving play video command some random video start playing but susi reply side remain blank. Currently in Android part susi reply side show text playing video.

Expected Behaviour

Some text should be shown. In Android part I am trying to change it in thumbnail image or some url text.

Steps to reproduce it

Give Play video command.

LogCat for the issue

Provide logs for the crash here

Screenshots of the issue
screenshot_2017-06-03-18-46-34

Would you like to work on the issue?

@chashmeetsingh

Add hotword detection capability

Need to add hotword detection capability which runs continuously when the app in is foreground so that capabilities can be used hands free.

Code Base Refactoring

Actual Behaviour

Code base looks messy right now.

Expected Behaviour

It can be made more modular extracting code to classes and reducing the LOC for each file.

Would you like to work on the issue?

Yes

Add the Launch Screen UI

Currently the LaunchScreen.storyboard is an empty view. Populate it with the same UIColor as in the app with the logo in the middle.

Also, to provide a better UI/UX experience add an animation where the logo in the middle animates to the top and then the text fields appear.

Loop through action types and display result for all actions

Actual Behaviour

Query "multi3". The sever response contains 3 action types but only result of first is displayed.
Also for map type only first action type is used.

Expected Behaviour

"actions": [
      {
        "type": "answer",
        "expression": "Singapore is a place with a population of 3547809. Here is a map: https://www.openstreetmap.org/#map=13/1.2896698812440377/103.85006683126556"
      },
      {
        "type": "anchor",
        "link": "https://www.openstreetmap.org/#map=13/1.2896698812440377/103.85006683126556",
        "text": "Link to Openstreetmap: Singapore"
      },
      {
        "type": "map",
        "latitude": "1.2896698812440377",
        "longitude": "103.85006683126556",
        "zoom": "13"
      }
    ]

If response is of this type, then the client should loop through all the actions and display result one after other with delay provided in the response. So, ideally the result of this response should be :

For response this

"actions": [
      {
        "type": "answer",
        "expression": "Line 1"
      },
      {
        "type": "answer",
        "delay": 400,
        "expression": "Line 2"
      },
      {
        "type": "answer",
        "delay": 1000,
        "expression": "Line 3"
      }
    ]

Response should be

  • 1st message Line 1
  • 2nd message after 0.4 seconds of 1st message : Line 2
  • 3rd message after 1 second of 1st message : Line 3

UI issue

Last chat bubble upon scroll starts is always hidden beneath the chat field.

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.