Git Product home page Git Product logo

circuitverse-presentation-embed's Introduction

CircuitVerse Presentation Embed

download

About the project

The project is an extension that allows the user to embed CircuitVerse circuit's in a Google Slide. Unfortunately, Google Slides does not embed iframe. However, it is possible to achieve that by using a combination of Google Slides Add-On on and chrome extension.

Clone this repo

First things first. Make a local clone of this repo so you can work on it from your own computer.

git clone https://github.com/CircuitVerse/CircuitVerse-Presentation-Embed.git
cd CircuitVerse-Presentation-Embed

Installation: Browser Extension

Chrome

  1. Goto chrome://extensions/, enable developer mode
  2. Click load unpacked extension and select the chrome extension folder

Firefox

  1. Goto about:debugging#/runtime/this-firefox on Firefox
  2. Click on "Load Temporary AddOn" and select manifest.json in the firefox extension folder

Testing

  1. Goto to the following Google Slides presentation: https://docs.google.com/presentation/d/1QybVSk8CujyHEHlLDtdlCiae9vK9qGhWfb4SA-WGCR0/edit#slide=id.g36e2028529a5eb1_0
  2. Goto presentation mode. Live Circuits should load.

Reloading the extension

Chrome

  1. Goto chrome://extensions on Chrome
  2. Click on the reload icon just below your extension to reload

Firefox

  1. Goto about:debugging#/runtime/this-firefox on Firefox
  2. Click on the "Reload" just below your extension to reload

Installation: Google Docs Add - On

  1. Install clasp tool: npm install -g @google/clasp
  2. Then enable the Google Apps Script API: https://script.google.com/home/usersettings
  3. Login: clasp login
  4. Goto to the Add on folder: cd Google\ Slides\ Add\ On
  5. Run clasp create --type slides --title "CircuitVerse Embed Project"
  6. Run clasp push to push changes from local system to Google Docs
  7. Run clasp pull to pull changes from google docs to local system

For more information on how to use clasp, check the main repo.

circuitverse-presentation-embed's People

Contributors

devanshd3 avatar palaksharma23 avatar satu0king avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

circuitverse-presentation-embed's Issues

Google Slides Plugin | Powerpoint Plugin

CircuitVerse circuit's can be easily be embedded in websites using an iframe. This is great however, it cannot be embedded in a PPTX or Google Slides. I have used liveslides program before to achieve the same on PPTX (Liveslides is deprecated now)

However, I think it is possible to create a plugin/extension/add-on to achieve the same. Poll Anywhere and several other services achieve this, so we definitely can.

Describe the solution you'd like

  1. Google Slides: Chrome Extension + Google Slides add on
    Unfortunately, Google Slides does not embed iframe embeds😞. However, it is possible to achieve that by using a combination of google slides add on and chrome extension.

  2. Powerpoint: Powerpoint add-in - I don't have any experience in powerpoint, however, I think it is possible, check this.

Describe alternatives you've considered
If there are other online presentation softwares which allow direct embed of iframe, please list them here if you find them.

Update: Google Slides is completed. Powerpoint is yet to be implemented.

Are you working on this? (Yes/No)
Yes - Created Chrome+Firefox Extension for Google Slides. Also created Google Slides add on.

Update:
Can someone check this repo and see how much of it we can use?
https://github.com/animysore/CircuitVersePPT

Rounded Corners for the logos

Logo is square and doesn't look very nice. Would prefer rounded corners. Or prefer using the favicon we are using in the main website.

[BUG] Google Slides Add On - Issue in Backend API

The add on takes URL of the simulator, extracts id or friendly slug depending on the URL type and performs a query to extract image. However, the API gets the image based on id. So it cannot get the image based on friendly slug.

function getCircuitImagePath(id) {
  var queryUrl = `circuitverse.org/api/v1/projects/${id}/image_preview`;
  return JSON.parse(UrlFetchApp.fetch(queryUrl))["project_preview"];
}

File of API usage:

function getCircuitImagePath(id) {

I think there are a few options

  1. Modify API to work with both friend slug and id
  2. Create a new API which works with both friendly slug and id
  3. Create another API which gives ID, given slug

@tachyons, @Nitish145 any inputs here?

Revamp Google Chrome & Firefox Extension

Introduction
Revamp the google chrome extension.
We can remove its dependency over google slides add-on(which is not available). By using google apis for slide and token based oauth 2.0.
By this we can make that user friendly.

Tasks list

  • UI Design Design Here
  • Convert to manifest v3. As support of manifest v2 going to removed in 2023
  • OAuth 2.0 Implicit Token Based Authorization
  • Implementation of API for Insert Image and add hyperlink to it
  • UI Implement
  • Integrate UI

Are you working on this issue ?
Yes

Improve Google Slides Add on Menu

Google Slides Add On can be improves

  • Make it look more pleasing

Current look:
image

  • Add feature of getting public circuit's of a user, given email id. User can then choose from the options.
    @tachyons do you think this is a good idea? we will need to expose an API to get user id given email id.

something like:
image

Create Google Slides Add On

  • Parse embed link, normal link, simulator link, iframe text
  • Get and Embed circuit image
  • Set hyperlink correctly

Support Multiple circuit embeds

Currently, only one circuit can be overlayed. If multiple circuits are present, the first one found is chosen. Ideally, we should be able to support multiple circuits.

Google Slides menu hidden [Chrome Extension]

Google Slides Menu Bar is hidden behind the embed. Studying Slido Extension might help resolve this.
image

This is because we are doing this

<Google iframe>
<CircuitVese iframe>

and Slido is doing this:

<Google iframe>
     <Google Slide Content>
     <Slido iframe>
    <Google Slides Menu>
<Google iframe>

The iframe should be embedded inside google's iframe. I don't think we should do this. But raising the issue to keep track of the same.

Initialize Read Me file.

Create read-me file explaining the purpose of this repo. Add instructions on how to test the same.

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.