Environment Manager - Dev Assistant

Manisha Biswas

Manisha Biswas

Kolkata, WB

'Dev Assistant' aims to re-package the project shift or setup methodology via the voice-based interface. The Dev Assistant aims to be a one-stop solution for a developer who wants to commit changes to his/her projects or deploy them at any given host or simply to migrate the project from one device to another just by simple voice commands like, “Push changes to GitHub”, “Deploy project XYZ to AWS” or “Install all requirements for this project”. ...learn more

Project status: Under Development

PC Skills

Groups
Early Innovation for PC Skills

Intel Technologies
Intel Python

Overview / Usage

It is often cumbersome for developers to shift a project from one device to another. There have been several approaches at solving the issue ranging from Docker images to package managers. While all these methods are handy, they still require a certain amount of manual input for which the developer must sit with the device and observe the screen.

To do away with the above issues and to introduce several other useful features, we work on a project titled ‘Dev Assistant’ which aims to re-package the project shift or setup methodology via the voice-based interface. The Dev Assistant aims to be a one-stop solution for a developer who wants to commit changes to his/her projects or deploy them at any given host or simply to migrate the project from one device to another just by simple voice commands like, “Push changes to GitHub”, “Deploy project XYZ to AWS” or “Install all requirements for this project”.

The Skill uses Natural language processing via Alexa and uses Intel Optimized Python for facilitating changes on the user’s device. The Skill fully integrates with the GitHub API and allows managing NPM, PIP and Conda. In future, more package repositories can be supported, such as APT/Snap on Linux OS.

Methodology / Approach

We are approaching the following methodology:-

  1. To deploy a project
    a. User creates a project with a deployment helper file.
    b. Credentials for deployment go into the environment variables so that they are not left unsecured in the deployment helper
    file.
    c. User says, “Alexa, deploy this project”
    d. The deployment helper file is used to execute a pre-defined set of commands (which can often be similar for a large number
    of projects due to specifications for the deployment helper file).
    e. Any errors are reported to the user who can speak to Alexa on how to resolve them.

  2. To set up a remote repo
    a. User clones a GitHub repo.
    b. User says, “Alexa, set up this repo”
    c. The project’s Installation file is searched for, else automatic determination of build type required is done.
    d. If any package manager file is found, the corresponding package manager is used to install all requirements.
    e. Based on determined runtime, the required runtime is installed if not previously existing. In case of Python, a different
    environment may be needed for version mismatch.
    f. Alexa attempts to run/start the project if the provision is available.

Similarly, different methods are used for different kinds of tasks for the Skill.

Technologies Used

  1. Alexa Skills for PC
  2. GitHub API
  3. Web Scraping (to determine package availability over various branches of package releases)
  4. Intel Optimized Python

Collaborators

1 Result

1 Result

Comments (0)