Inspiration
After long workdays full of meetings, I realized I wasn’t tired from the work itself — I was tired from constant social interaction. I wanted a way to measure that “social battery” feeling and help people predict burnout before it happens.
What it does
SocialBatteryForecaster.xyz connects to your Google Calendar and estimates how draining each event will be based on the type of interaction, the number of people, and your personality.
Each event receives a base impact score (B), which is multiplied by a personality modifier (M).
$$ Impact = B \times M $$
Your total daily drain is:
$$ Daily_Drain = \sum_{i=1}^{n} Impact_i $$
The app shows your biggest energy drains and a 3-day social energy forecast.
How I built it
- Backend: FastAPI (Python), Google OAuth, Google Calendar API, SQLite
- Frontend: React + TypeScript (Vite) (ChatGPT generated with some manual debugging)
- Logic: Rule-based, personality-driven scoring system
Challenges we ran into
OAuth integration, calendar synchronization, and handling inconsistent event data were the hardest parts. Designing a scoring system that felt accurate for different personality types was also challenging under hackathon time pressure.
Accomplishments that I'm proud of
- End-to-end Google Calendar integration
- A working, explainable energy-scoring model
- A full-stack system built at my first hackathon
- A deployed website (all new things for me)
What we learned
I learned how to design, debug, and deploy a real-world, API-driven application, and how to turn a human-centered problem into a quantitative system.
What's next for SocialBatteryForecaster.xyz
- Smarter personality modeling
- Better visualizations of energy over time
- Calendar write-back with impact previews
- Team and organization-level insights
Notes
Google seems to think that my website is unsafe, it says the domain isn't mine even though it is, and I ran that through their software. If you want to use it, have to log in to a google account to be able to sync your calendar. If I had more time I would make the sync optional (I still may).
Log in or sign up for Devpost to join the conversation.