Inspiration

MoodSwap was inspired by my own exam studying I understood difficult concepts better when AI explained them using the personalities of characters I enjoy, which kept me focused, engaged, and less overwhelmed.

What it does

MoodSwap is a personality-based AI chat app that transforms user input into short, engaging responses using different character styles — a chaotic best friend, a dramatic villain, or a calm zen monk.

Users type a message, select a personality, and receive an AI-generated reply tailored to that character’s tone and behavior. The goal is to make interactions feel more human, entertaining, and easier to engage with — especially for learning and focus-heavy tasks.

The app is designed as a foundation for a future study assistant, where complex or boring content can be re-explained in a way that keeps users motivated and attentive.

How we built it

MoodSwap was built as a full-stack web app using a simple but solid frontend–backend structure.

The frontend was created with HTML, CSS, and JavaScript, where users can type a message, select a personality, and instantly see the AI’s response. I focused on keeping the UI clean and intuitive so the personality switching felt effortless.

The backend was built with Node.js and Express, handling all API logic and keeping keys secure. When a request is sent, the server uses Google Gemini to generate a response based on a custom prompt for each personality. Each character has its own tone, rules, and response length, ensuring the output stays consistent and in character.

I integrated ElevenLabs for text-to-speech to give each personality a voice. While free-tier limitations affected full audio playback, the architecture is in place to support voice-driven interaction once enabled.

Throughout development, I used ChatGPT as a coding assistant helping debug errors, design prompts, and troubleshoot API issues which accelerated my learning and problem-solving process.

This project was built iteratively under tight time constraints, focusing on functionality first, then personality, then polish.

Challenges we ran into

The biggest challenge was time. I originally started building a study app, but quickly realized it was too ambitious for the deadline. Pivoting to MoodSwap meant redesigning the idea while still learning new tools at the same time.

API integration was another major hurdle. Debugging Gemini model errors, handling server failures, and figuring out why things worked one minute and broke the next tested my patience (and sanity). ElevenLabs added an extra layer of complexity due to free-tier limitations, deprecated models, and rate restrictions especially while trying to make voice output work smoothly.

On top of that, I’m still early in my coding journey. Balancing backend logic, async requests, error handling, and frontend updates pushed me far outside my comfort zone but that’s where most of the learning happened.

Accomplishments that we're proud of

Finishing and submitting this project is a huge win on its own.

I successfully built a working full-stack application, connected a frontend to a backend, integrated Google Gemini, and designed personality-based AI responses that actually feel different. The app works, switches personalities correctly, and responds in real time which felt impossible at the start.

Most importantly, I didn’t give up when things broke. I debugged, asked questions, pivoted when needed, and shipped something I’m genuinely proud of under pressure.

What we learned

This project taught me more than any tutorial ever has.

I learned how APIs actually behave in real-world scenarios, how to handle errors gracefully, and how important prompt design is when working with AI. I also learned how powerful it can be to use AI tools as learning companions, not just answer machines.

Beyond the technical side, I learned how to scope projects realistically, adapt quickly, and focus on shipping something functional instead of chasing perfection.

What's next for MoodSwap app

MoodSwap isn’t the end it’s the foundation.

In future iterations, this app will be integrated into my study assistant platform, where personalities can explain textbook content, summarize notes, and help me focus while studying. Different characters will be assigned to different subjects or moods, making learning more engaging and easier to understand.

I plan to fully enable voice interaction, expand personality options, add memory, and personalize responses based on user preferences.

This project represents the beginning of how I want to build creative, human-centered, and just a little chaotic.

Share this project:

Updates