# SlideDown

## Inspiration

Recently, we had to make a set of workshops for one of our organizations at school. We created all of the curriculum in Markdown, so that it could be reviewed and changed easily, but once we were done, we had 10+ Markdown files to convert into actual slidedecks. That was our inspiration for SlideDown: a way to save time and effort when making slides.

## What it does

SlideDown is a command-line tool that takes in a Markdown file, parses through the content, and makes a Google Slides presentation that maintains the same content and formatting.

## How we built it

SlideDown was made with a Python script that uses the Google Slides API to create slides and content. It's pure Python3 :).

## Challenges we ran into

One of the biggest hurdles was figuring out how the Google Slides API worked. There is documentation available, but some of it can be confusing, especially for the Python implementation.

## Accomplishments that we're proud of

Getting the tool to actually make a presentation!

## What's next for SlideDown

Implement more tag support from Markdown, improve looks, actually get it working :^).
## Inspiration

Having to prepare presentations is already dreadful enough. But also having to prepare slides to accompany it? So much worse. As students, we could not be any more familiar with this situation. While our speeches for English class may be a valid indicator of our English skills, the slides we make are not. The time we spend making these slides is better allocated elsewhere, and this is where Script2Slides comes in.

## What it does

This productivity tool we created automatically generates a visually appealing slideshow containing key information and relevant images. All you need to do is copy and paste your script into the textbox on our website, and your brand-new slideshow will be downloaded for you to use!

## How we built it

Script2Slides was created with HTML and styled with CSS. The script is summarized into bullet points in GPT-3.5 using the OpenAI API, and an image description is generated. We then use this description to find relevant images for the slides using Google Image Search API. With both bullet points and images, we create a PowerPoint file downloaded for the user.

## Challenges we ran into

We decided on the idea quite late — around 11:30 a.m. on Saturday! This meant we only had a day to work on the project. A few more challenges we ran into included crafting a prompt that worked well with GPT and downloading the slideshow as a PowerPoint since the formatting would have problems.

## Accomplishments that we're proud of

We’re proud of creating our first hack that successfully implements AI. But beyond that, we’re simply happy to solve an issue the whole team can relate to.

## What we learned

Since this is our first time implementing AI, we learned how to use OpenAI API, and more specifically, Victor learned how to use Flask.

## What's next for Script2Slides

In the future, we wish to run Script2Slides in a way that is more personalized. It would be nice to make things more customizable; for instance, the software can detect the theme of a presentation, i.e. formal, business, technology, etc. and then design the slides accordingly. We’d also like to allow the user to download the slides in formats other than PowerPoint.
## Inspiration

A brief recap of the inspiration for Presentalk 1.0: We wanted to make it easier to navigate presentations. Handheld clickers are useful for going to the next and last slide, but they are unable to skip to specific slides in the presentation. Also, we wanted to make it easier to pull up additional information like maps, charts, and pictures during a presentation without breaking the visual continuity of the presentation. To do that, we added the ability to search for and pull up images using voice commands, without leaving the presentation.

Last year, we finished our prototype, but it was a very hacky and unclean implementation of Presentalk. After the positive feedback we heard after the event, despite our code's problems, we resolved to come back this year to make the product something we could actually host online and let everyone use.

## What it does

Presentalk solves this problem with voice commands that allow you to move forward and back, skip to specific slides and keywords, and go to specific images in your presentation using image recognition. Presentalk recognizes voice commands, including:

* Next Slide
	+ Goes to the next slide
* Last Slide
	+ Goes to the previous slide
* Go to Slide 3
	+ Goes to the 3rd slide
* Go to the slide with the dog
	+ Uses google cloud vision to parse each slide's images, and will take you to the slide it thinks has a dog in it.
* Go to the slide titled APIs
	+ Goes to the first slide with APIs in its title
* Search for "voice recognition"
	+ Parses the text of each slide for a matching phrase and goes to that slide.
* Show me a picture of UC Berkeley
	+ Uses Bing image search to find the first image result of UC Berkeley
* Zoom in on the Graph
	+ Uses Google Cloud Vision to identify an object, and if it matches the query, zooms in on the object.
* Tell me the product of 857 and 458
	+ Uses Wolfram Alpha's Short Answer API to answer computation and knowledge based questions

Video: <https://vimeo.com/chanan/calhacks3>

## How we built it

* Built a backend in python that linked to our voice recognition, which we built all of our other features off of.
## Challenges we ran into
* Accepting microphone input through Google Chrome (people can have different security settings)
* Refactor entire messy, undocumented codebase from last year

## Accomplishments that we're proud of

Getting Presentalk from weekend pet project to something that could actually scale with many users on a server in yet another weekend.

## What we learned

* Sometimes the best APIs are hidden right under your nose. (Web Speech API was released in 2013 and we didn't use it last year. It's awesome!)
* Re-factoring code you don't really remember is difficult.
## What's next for Presentalk
Release to the general public! (Hopefully)