Inspiration

Systemic inequities often mean that marginalized people have more difficulty with self-advocacy, including asking for accommodations, networking, and just being heard. Self-advocacy is crucial to wellness, careers, and self-concept, and lots of these inequities start in college. A lot of this comes from not knowing where to start. I wanted to make an app geared towards college students but usable by anyone that addresses these inequities.

What it does

AdvoCatie has three functions, all relating to self-advocacy and making sure users are able to assert their needs and have them respected. It uses scientifically tested psychology and interpersonal effectiveness techniques from Dialectical Behavioral Therapy, as well as networking and business communications skills, to judge what situations are appropriate for what levels of intensity as well as providing an interactive guide to writing a self-advocacy script tailored to your situation (roommate, academic, medical, etc.). It also has an AI chatbot that will help you practice advocating for yourself and walk you through the process.

How we built it

I used the Twine engine with the Twee language and Harlowe code format. I also used some Sugarcube. This engine and these languages are made for interactive stories, but I used it to make chat-like and number-tracking features, so I coded in HTML, CSS, and JavaScript in order to make the base and keep track of variables and data structures. The AI chatbot uses a GPT-based character.ai platform.

Challenges we ran into

I initially attempted to use the Twilio API, and while I had a good understanding of the documentation and how to implement it, my computer did not have the capabilities to properly retrieve the API key, partially because of some other coding tools that I had installed. This was why I started focusing more on a web-app format, which ended up teaching me much more than Android Studio would have. With this new format, I had to use a lot of creative workarounds for things the engine wasn't built to do, which taught me a lot about writing scripts and coding macros.

Accomplishments that we're proud of

Building macros and scripts in JS to essentially teach the Harlowe language what arrays and data structures are. This language was not meant for chatbot coding, and was instead meant for writing mildly interactive stories, which meant a lot of workarounds for it to function as an actual coding language! I was proud of myself for taking on that challenge and bringing new functionality to the engine. Making what was essentially a chatbot in Twee/Harlowe in general was also really challenging and rewarding.

What we learned

I learned how to build a web app-- I normally only build android apps! I also learned how to integrate APIs, how to train GPT models, and how to write macros in game engines like Twine. This gave me a greater understanding of HTML and CSS in building websites, but the most important thing for me was Javascript. The other very important aspect for me was being able to take an existing engine and use it for new and creative purposes, which is what I feel I did with Twine.

What's next for AdvoCatie

Adding images-- Twine 2.0 doesn't support it and that makes me sad. I want to add Catie's beautiful picture to everything, and also incorporate QR codes and SMS/Email functionality. I also want to embed the GPT AI in the window so you don't have to travel, and I'd like to get that Android app version up and running!

Built With

Share this project:

Updates