Inspiration

When we considered what we wanted to do when coming into QHacks, we came to one conclusion before forming any viable project idea: Brainstorming is hard. Messages were flying left and right but weren't coming together, just floating past the top of our screens. We were then struck with the realization that if something could organize our thoughts for us, we might form some kind of concrete plan. BrainstormAPI is the solution to this problem.

What it does

BrainstormAPI reads natural language conversations in a text-based chat interface and collects ideas into an organized, hierarchical mind-map-inspired graph. With the core topic fixed in the center, lower-level ideas spread out radially with intuitive parent-child connections. Integrated into the open-source workspace platform Rocket.Chat, a messy, frantic brainstorming session can be intelligently collected into a mind map to remind you of any strokes of genius you may have stumbled into.

How we built it

We added a bespoke command and viewing window to Rocket.Chat so we can see our product in action. The command takes an argument for the topic of the conversation and sends it, along with all the chat messages, to our API hosted on AWS Lambda. It makes a request to OpenAI's GPT-4o to create arrays of nodes and edges that form our graph. This graph is visualized using vis.js, and an HTML page is returned by the API.

Challenges we ran into

Our greatest challenge was connecting all the components of our project. Tasks like reading messages from Rocket.Chat and returning the HTML page of the graph had us scratching our heads for longer than we'd like to admit. Other things like fine-tuning vis.js parameters to ensure nodes are spaced evenly and easy on the eye. Working as a group of two also proved to be challenging with even more emphasis on good time management.

Accomplishments that we're proud of

We're most proud of expanding our horizons and gaining experience in things like building APIs, using cloud services, and integrating our work into larger projects. We're also glad that we're putting our course material to good use in designing a graph interface for our project. We'd also like to give ourselves a pat on the back for making it out with our sanities reasonably intact.

What we learned

We learned tons about making an API, especially on the subject of designing an intuitive interface and a useful JSON format to transform into a graph. Using Lambda allowed us to increase the scope of our project. We also learned a lot while working with vis.js, especially about using physics-based simulations to create a natural graph layout. Ultimately, the experience in creating a project with multiple moving parts from the ground up was very enlightening and we're sure it will prove useful in the future.

What's next for BrainstormAPI

Built With

Share this project:

Updates