Inspiration
Community events are powerful, but organizing them is usually messy. For communities like Flutter Piura, planning a meetup often means coordinating speakers, sponsors, attendees, tasks, reminders, certificates, and feedback across chats, spreadsheets, notes, and memory.
I wanted to build an AI agent that does more than answer questions. The goal was to create an operational assistant that can help a real organizer move from an idea to an executable plan while keeping the human in control.
What It Does
CommunityOps Agent turns a high-level event goal into an operational plan.
Example:
Organize a Flutter Piura meetup for 80 people about Flutter + AI, with 2 talks, S/500 budget, coffee break, and certificates.
The agent then:
- generates an event agenda,
- creates operational tasks,
- recommends speaker and sponsor actions,
- detects logistics risks,
- drafts messages for speakers, sponsors, and attendees,
- calculates an event readiness score,
- asks for human approval before writing important data,
- persists the approved plan in MongoDB Atlas.
The dashboard shows the agent run timeline, Gemini status, MongoDB sync status, and the current run ID, making the execution trace visible for the organizer and judges.
How I Built It
The frontend is a Flutter Web dashboard. It includes an agent chat, event readiness score, timeline, tasks, risks, message drafts, and integration status.
The backend is a Node.js + TypeScript API deployed through a Cloud Run-ready architecture. It acts as the agent gateway between the Flutter app, Gemini, and MongoDB Atlas.
Gemini generates the event operations plan. MongoDB Atlas stores the approved execution data in collections such as agent_runs, events, tasks, messages, risks, and approvals.
The workflow is supervised: the agent can propose, reason, and prepare actions, but important writes happen only after the organizer approves.
Challenges
The hardest part was making the project feel like an agent, not just a chatbot. I had to design a workflow where the AI plans, produces structured operational artifacts, waits for approval, and then persists the result.
Another challenge was deployment and integration. The project connects Flutter Web, a TypeScript backend, Gemini, and MongoDB Atlas. I also had to handle local DNS issues with MongoDB SRV records and make the backend robust enough to continue the demo even when external persistence fails.
I also added a domain guardrail: if a user asks something unrelated to event operations, the backend blocks execution and avoids writing irrelevant data.
What I Learned
I learned how important it is to design agents around controlled actions, not only text generation. The useful part is not just the generated plan, but the full operational loop: intent, reasoning, draft actions, approval, persistence, and traceability.
I also learned that hackathon agents need visible proof of execution. That is why the dashboard shows readiness score, agent steps, Gemini status, MongoDB sync status, and run ID.
What's Next
Next steps include:
- connecting a full MongoDB MCP server workflow,
- adding real email or WhatsApp sending after approval,
- letting speakers confirm or decline invitations,
- adding attendee RSVP imports,
- generating post-event recaps,
- and deploying the Flutter Web app publicly at
giansandoval.com/communityops_agent.
Built With
- agent
- api
- atlas
- builder
- cloud
- dart
- docker
- express.js
- flutter
- gemini
- mcp
- mongodb
- node.js
- rest
- run
- typescript
Log in or sign up for Devpost to join the conversation.