Minutemen Compass
A chat-based AI assistant that answers campus-specific questions for UMass Amherst students, staff, and faculty, and can take actions via tools (like finding buses, study spaces, resources) instead of just giving generic answers.
🎯 Project Overview
Minutemen Compass is like ChatGPT, but actually understands UMass life and does real tasks. Built for HackUMass with a focus on Ethical AI and using the Gemini API.
✨ What Inspired Us?
Scouring through multiple web pages to obtain information, different apps for everything, it's too much hassle. In this world of ChatGPT where LLMs are becoming our new buddies, we thought UMass folks also deserve an LLM companion as one stop for everything to reduce friction points.
Gemini Track Project Number: 256001615049
✨ Features
MVP Features
- Conversational campus Q&A: Chat interface powered by Google Gemini
- Tool-based actions:
- Find study spots (by location, noise level, group size)
- Get dining options (by time, dietary preferences)
- Access support resources (mental health, academic, financial)
- Check PVTA bus schedules
- Course information
- Facility information
- Report facility issues
- Ethical guardrails: Safety checks for harmful requests with appropriate campus resource suggestions
- Simple web UI: Clean chat interface with quick action chips
Stretch Features (Future)
- Multi-agent mode with different personas
- User login and favorites
- Analytics dashboard
🛠️ Tech Stack
- Frontend: React + Vite + TailwindCSS
- Backend: FastAPI (Python)
- AI: Google Gemini API (gemini-2.5-flash)
- Data Storage: JSON files + SQLite for logging
📁 Project Structure
.
├── backend/
│ ├── main.py # FastAPI application
│ ├── gemini_client.py # Gemini API integration
│ ├── tools.py # Tool registry and implementations
│ ├── safety_checker.py # Ethical guardrails
│ ├── requirements.txt # Python dependencies
│ └── data/
│ ├── study_spaces.json # Study space data
│ ├── dining.json # Dining options data
│ ├── resources.json # Campus resources data
│ ├── bus_schedules.json # PVTA bus schedules
│ └── logs.db # SQLite database for logs
├── frontend/
│ ├── src/
│ │ ├── App.jsx
│ │ ├── main.jsx
│ │ ├── components/
│ │ │ ├── ChatInterface.jsx
│ │ │ ├── Header.jsx
│ │ │ ├── MessageList.jsx
│ │ │ ├── MessageInput.jsx
│ │ │ └── QuickActions.jsx
│ │ └── index.css
│ ├── package.json
│ └── vite.config.js
└── README.md
🚀 Getting Started
Prerequisites
- Python 3.8+
- Node.js 16+
- Gemini API key (Get one here)
Backend Setup
Navigate to the backend directory:
cd backendCreate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activateInstall dependencies:
pip install -r requirements.txtCreate a
.envfile in the backend directory:GEMINI_API_KEY=your_gemini_api_key_hereRun the backend server:
python main.py # Or with uvicorn directly: uvicorn main:app --reload --port 8000
The API will be available at http://localhost:8000
Frontend Setup
Navigate to the frontend directory:
cd frontendInstall dependencies:
npm installStart the development server:
npm run dev
The frontend will be available at http://localhost:3000
📝 API Endpoints
Chat
POST /api/chat- Main chat endpointjson { "message": "Where can I find a quiet study spot?", "session_id": "optional" }
Direct Tool Endpoints
GET /api/study-spots?location=Central&noise_preference=quiet&group_size=1-3GET /api/dining?time_now=20:00&dietary_pref=vegetarianGET /api/resources?topic=mental_healthGET /api/bus?origin=Campus Center&destination=Puffton
Admin
GET /api/logs?limit=50- View query logs
🎨 Usage Examples
Student Use Cases
- "Where can I find a quiet study spot near LGRC right now?"
- "What is a good place to get food after 9 pm on campus?"
- "I am overwhelmed and stressed. What campus resources can I use?"
- "How do I contact the financial aid office?"
Faculty/Staff Use Cases
- "How can I quickly share office hours and location with my students?"
- "What campus guidelines apply if a student asks for disability accommodations?"
General Campus
- "The bathroom near my classroom is broken. How do I report this?"
- "What is the next bus from Campus Center to Puffton?"
🔒 Ethical Guardrails
The system includes safety checks that:
- Detect and refuse harmful requests (self-harm, harassment, cheating, violence)
- Provide appropriate campus resources instead
- Log flagged queries (without PII) for analysis
🏆 HackUMass Categories
- [Ethical AI] Most Impactful AI Hack (primary)
- Best Use of Gemini API
- Best Use of AI powered by Reach Capital (future of learning / campus life)
📄 License
See LICENSE file for details.
🤝 Contributing
This is a HackUMass 2025 project. Contributions welcome!
🙏 Acknowledgments
- UMass Amherst for campus information
- Google Gemini API
- - HackUMass organizers
What we learned
- How to use Gemini API
- How to build AI Agents
- How to build using FastAPI
Credits
Made by Ayush Gupta, Nilesh Nayan and Arghyadeep Das for HackUMass 2025.

Log in or sign up for Devpost to join the conversation.