Inspiration

Staying on-task is so hard, with everything and everyone vying for our attentions. As students, there is always work to be done, and what we want most is to hit that Flow State and finish everything effectively and efficiently. So we created Kevin, the mascot of FlowState, to keep you accountable for your work, adjusting dynamically to give you the tough love you need!

What it does

Before: the session begins, FlowState will ask the user to describe their work environment. It asks them if they are working with others, with a drink, with food, and the kind of tasks they plan to work on.

During: the session, FlowState continuously monitors the user's eyes to ensure that they stay on-screen at all times, as well as ensure that the user's screen is on a tab that is relevant to the tasks the user is meant to be working on. Straying away from these two requirements for too long will cause Kevin to output a message of stern warning, and give a note to the AI Agent.

After: the session, FlowState will analyze the data. It takes in duration, the user's previously inputted environment, the user's own self-reflection on how well the user focused, as well as any time the retina-detection or screenshotting software caught the user off-task. It then adjusts Kevin's behaviours to better suit the needs and quirks of the user.

How we built it

Using n8n, we created an environment where nodes of AI Agents could communicate with each other freely and interconnectedly to pass information to one other. Additionally, this was a space where information such as user behaviours and their originally inputted environment could be saved as global variables which could be accessed by all the AI Agents, regardless of where they were in the user's experience journey.

Challenges we ran into

With so many layers to our code, the signals and the messages that were being communicated were often wrongly packaged, missent, or missing from our code. With so many nodes that were extremely interconnected with one another, it was often difficult to navigate the complex and nonlinear environment we had created.

Accomplishments that we're proud of

We were extremely proud of our final product, and the merging of so many different features all together. From using various input channels like cameras, screen photos, and text, to calling and retrieving only specific and relevant data from them with a variety of agents, we learned a lot about what it takes to create a multifaceted and multidimensional tool. Not only were we required to find these specific resources that specialized in our tasks, our final product required high-level communication, organization, and consistency in our code. Being able to understand and constantly keep track of how updates from one node affected the others was a true test of our technical abilities!

What we learned

We learned the value in being clear-cut, concise, and simple with the packages and messages being sent back and forth between python files, various layers, and AI Agents. Being too verbose, or sending more information than what was actually needed ("just in case") often created backlog and confusion down the line.

What's next for FlowState

Being able to better automatically call and use more data from the user such as location and give possible suggestions for studying habits or places depending on the further information given. We also look forward to adding a social aspect to FlowState, where people of similar needs can beneficially work together.

Built With

Share this project:

Updates