Presentations are ubiquitous in modern education; both students and teachers are required on a regular basis to read through large amounts of text and make slides that summarizes this information. This type of reading and synthesizing information takes a lot of time, and is inefficient because presentations are not supposed to contain irrelevant or less important details. We wanted to help students and teachers out by giving them a tool to generate succinct, to-the-point slides based on any chunk of text.
What it does
Generates images for each slide based on its title, and converts essays, paragraphs, and sentences to bullet format. Once the slide title and text are pasted into the box, a slide appears; at the top is the title. On the left, four relevant images appear (all of which can be copied and pasted to the student's choice of presentation software). On the right, bullet points with relevant words are shown; each bullet point corresponds with a sentence from the text, so the longer the text, the more bullets will be generated.
How we built it
For the text generation, we used the Google Cloud Natural Language API to parse sentences into keywords and word types which were converted to a JSON file. We parsed the file so that the most important words would be printed out as bullets and displayed onto the slide.
Images were generated by using the Flickr Photosearch API to search for images by tag, which returned the JSON file containing the id's of the photos. We used PHP to extract the id's and stored them into an array, as well as to convert each id into a URL. Using a foreach loop, we displayed 4 images which were resized and cropped using CSS to create a 2x2 grid of square photos.
Challenges we ran into
- Getting the Google API to work
- Parsing the JSON file
- Formatting the output so that four images would appear on the left and new bullets created on the right for each sentence in the text.
- Bullets sometimes did not make grammatical sense
Accomplishments that we're proud of
- HackUCI is the first hackathon for half the members on our team, and we were all able to contribute in some way to create a working product!
- All of us learned a new programming language (came in with no backend experience)
- Utilizing Google's Natural Language API to generate the most salient words from large amounts of text
- Integrating Flickr's API into our PHP code
What we learned
- Google Cloud Natural Language API
- Flickr Photosearch API
- Integrating backend and frontend
What's next for Succinct
- Add a next button that keeps the original slides but refreshes the form to generate a new slide
- Exporting slides into a pdf that can be downloaded
- Dynamic slides (slideshow view)
- Presentation view- make the presentation directly from the website
- Editing images and bullets in the output
- Improve algorithm for parsing through outputted JSON file to generate grammatically correct bullets
- Bibliography generator