https://meethere-ten.vercel.app/
Streamline group coordination for teams everywhere
meetHere is a web-based application designed to solve the two most common friction points in student group work: finding a time when everyone is free and finding a location that is geographically fair for all attendees.
By integrating a "when2meet" style availability grid with Google Maps API location triangulation, meetHere calculates the optimal campus building for a meeting based on where members are coming from.
MeetHere merges two workflows into one intuitive tool:
- A When2Meet-style availability grid
- A Google Mapsโpowered location fairness algorithm
- University students
- Clubs and organizations
- Friends and small groups
- Teams needing fast decisions
- No need to manually compare calendars
- No switching between maps, chats, and scheduling apps
- Eliminates bias in choosing a meeting place
- Produces a fair, data-driven midpoint
-
Smart Scheduling: When2meet-style availability grid with enhanced UX
- Drag-to-select on desktop
- Touch-optimized "paint mode" for mobile devices
- Visual availability heatmap with clean color scheme
-
Location Triangulation: Find the most geographically fair meeting spot
- Participants mark their starting location
- Algorithm calculates optimal campus building
- Minimizes total travel distance for all attendees
-
Clean Modern Design: Apple-inspired aesthetic
- Primary: Blue (#0071e3)
- Secondary: Grey (#86868b)
- Light mode with clean, minimal interface
-
Event System
- Create events with dynamic links
- Participants join instantly (no login required)
- Automatic aggregation of time + location data
-
Real-time Collaboration: See updates as participants submit availability
-
Mobile Responsive: Works seamlessly on all devices
- Primary: Apple Blue (#0071e3)
- Secondary: Dark Grey (#1d1d1f)
- Background: Light Grey (#f5f5f7) / White
- Accents: Subtle shadows, rounded corners
- Headers: Impact (bold, industrial feel)
- Body: Open Sans (clean, readable)
- Availability Grid: Gold gradient (0/5 = Grey, 5/5 = Deep Gold)
- Map Markers: Black dots for users, "Motion P" for destination
- Mobile Touch: Paint mode toggle for easy mobile selection
- React - UI framework
- React Router - Client-side routing
- Google Maps API - Location services and mapping
- CSS3 - Custom styling with modern theme
- Node.js - Runtime environment
- Express - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
meetHere/
โโโ client/ # React frontend
โ โโโ public/ # Static files
โ โโโ src/
โ โ โโโ components/ # React components
โ โ โ โโโ LandingPage.js
โ โ โ โโโ MeetingCreator.js
โ โ โ โโโ MeetingView.js
โ โ โ โโโ AvailabilityGrid.js
โ โ โ โโโ LocationMap.js
โ โ โโโ App.js # Main app component
โ โ โโโ index.js # Entry point
โ โ โโโ *.css # Component styles
โ โโโ package.json
โ
โโโ server/ # Express backend
โ โโโ models/ # MongoDB schemas
โ โ โโโ Meeting.js
โ โ โโโ Participant.js
โ โโโ routes/ # API endpoints
โ โ โโโ meetings.js
โ โ โโโ participants.js
โ โโโ server.js # Server entry point
โ โโโ package.json
โ
โโโ .gitignore
โโโ LICENSE
โโโ README.md
- Node.js (v14 or higher)
- MongoDB (v4.4 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/cli05/meetHere.git cd meetHere -
Install server dependencies
cd server npm install -
Install client dependencies
cd ../client npm install -
Configure environment variables
cd ../server cp .env.example .envEdit
.envand add your configuration:MONGODB_URI=mongodb://localhost:27017/meethere PORT=5000 GOOGLE_MAPS_API_KEY=your_api_key_here
-
Start MongoDB
# macOS (with Homebrew) brew services start mongodb-community # Linux sudo systemctl start mongod # Windows net start MongoDB
-
Start the backend server
cd server npm run devServer will run on
http://localhost:5000 -
Start the frontend (in a new terminal)
cd client npm startClient will run on
http://localhost:3000 -
Open your browser Navigate to
http://localhost:3000
POST /api/meetings- Create a new meetingGET /api/meetings/:shareLink- Get meeting by share linkGET /api/meetings- Get all meetingsPUT /api/meetings/:shareLink- Update meeting (recalculate optimal time/location)DELETE /api/meetings/:shareLink- Delete meeting
POST /api/participants- Add participant to meetingGET /api/participants/meeting/:meetingId- Get all participants for a meetingGET /api/participants/:id- Get specific participantPUT /api/participants/:id- Update participant availabilityDELETE /api/participants/:id- Delete participant
- Google Calendar integration
- Email notifications
- Recurring meetings
- Weather integration
- Indoor navigation suggestions
- Integration with campus building APIs
- User accounts and meeting history
- Export to calendar (ICS format)
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with โค๏ธ for students everywhere
- Inspired by When2meet
- Apple design language
- CS390WAP course project
Schedule smarter! ๐


