Inspiration
This is my second time participating in a CS Girlies Hackathon, and I wanted to do it solo this time. I wanted to challenge myself and see what I could accomplish within a 48-hour sprint. Originally, I wanted to make a health insight dashboard. Something that tracks a user's daily health information and analyzes it in a way that helps the user make better decisions to ensure they maintain their health. I found that it was difficult to find health data that didn't violate privacy. I also had to consider that cleaning the data and building a complete project might have been above my capacity given the time constraint.
Instead, I decided to create a simulated world full of connected characters. I created 4 personas: Jay, Corey, Luna, and Sol. I gave them each a backstory and described how they were connected to each other. I was able to give them their own personalities and include any struggles they were currently facing. This helped as useful data to be analyzed within my project. One cool thing about this project is that the user steps into the world of the persona. They essentially use the webapp as the persona they choose.
What it does
My project is called Nomi. Like, "Know Me." Nomi uses AI to analyze what a user is currently going through. It gives them a summary message of their week when they first open their dashboard. The user can then move on to see their stats that week. How stressed they were, how their mood was, what things they have done, and what things have been bothering them. Then they are able to enter their response for the day. They enter how many hours they've slept, where their stress levels are, what their social battery feels like, and what they've been doing so far that day.
Once the user has "checked-in" with Nomi, it responds to them with two suggestions. It tells the user what they could do for themselves, and it tells them what they could do with a friend if they feel up to it. Another cool thing about Nomi is it tracks whatever data you feed it, so it essentially knows you. It knows your interests, what you like and what you don't like, and what tone you are most receptive to. In a non-creepy way, it knows who you spend time with and what you do together if you tell it. On the sidebar of the dashboard, you will see your friends and the relationship you have with each other. This also helps Nomi recommend an activity for you to do with your friend.
That is pretty much the overall gist of Nomi. It's a webapp that can be treated like a journal that talks back to you.
How it was built
I built Nomi using Python and a framework called Streamlit. I designed the Nomi logo and the persona profile cards in Canva. An OpenAI API was used to give the user a weekly recap and recommendations. The data the AI used came from CSV files I made in Excel. The overall project was fully coded in VS Code with the help of AIs ChatGPT, Cluade, and Github Copilot each for different specific things.
Challenges
I had issues connected the API at first. I kept receiving alerts telling me the server was at high volumes or unavailable at the time. I actually ended up switching APIs. There were a couple of rendering issues I faced. Streamlit is a little different than traditional web development. It is intended for easily displaying data in an application and is mostly used by data scientists.
Accomplishments
I'm happy I successfully built a fully functional project within 48 hours. I love that I was able to incorporate storytelling, art, and tech to build something great. As an artist first, I thrive at being able to blend art with technology.
What was learned
I learned how to use Streamlit, that API connections can be tricky, and that anything is possible when you put your mind to it.
What's next for Nomi
While creating this project, I had a lot of ideas flowing. This could have easily turned into a video game. I decided to scale it down to something tangible for the time. Maybe I'll develop it into one in the future.
Built With
- chatgpt
- claude
- github-copilot
- openai
- python
- streamlit
- vscode
Log in or sign up for Devpost to join the conversation.