Discover nearby places based on your mood or intent. Just tell us how you feel!
Demo โข Features โข Installation โข Usage โข Tech Stack
PlacePulse is a modern, intelligent place discovery application that helps users find nearby places based on their mood or intent. Instead of searching for specific place types, simply describe what you're in the mood for:
- ๐ต "coffee" โ Finds cafes, coffee shops, bakeries
- ๐ผ "work" โ Finds co-working spaces, cafes with wifi, libraries
- ๐ "date night" โ Finds romantic restaurants, bars, theaters
- ๐ "quick bite" โ Finds fast food, casual dining, food courts
- ๐ "chill" โ Finds parks, lounges, bookstores
- Mood-Based Discovery - Natural language search understands your intent
- Google Places Autocomplete - Search by actual place names
- Quick Mood Picks - One-click preset moods with beautiful gradients
- Intelligent Mapping - AI-powered mood-to-place-type algorithm
- Real-Time Markers - See all results on an interactive Google Map
- Custom Markers - Numbered markers with selection highlighting
- Info Windows - Quick preview on marker click
- User Location - Centered on your current position
- Detailed Cards - Photos, ratings, distance, price level
- Opening Hours - Real-time open/closed status
- Distance Calculator - Walking & driving time estimates
- Filter & Sort - By rating, distance, price, open now
- Dark/Light Theme - Toggle with smooth sun/moon animation
- Responsive Design - Perfect on desktop, tablet, and mobile
- Smooth Animations - Polished micro-interactions
- Modern Design System - Custom design tokens
- List/Map Toggle - Switch views on mobile
- Touch Friendly - Optimized for touch interactions
- Fast Loading - Optimized for performance
- Node.js 18+
- npm or yarn
- Google Cloud Platform account with billing enabled
git clone https://github.com/Premkumar1845/PlacePulse.git
cd PlacePulsenpm install- Go to Google Cloud Console
- Create a new project or select existing
- Enable these APIs:
- Maps JavaScript API
- Places API
- Geocoding API
- Create an API key and restrict it to your domains
Create a .env file in the root directory:
VITE_GOOGLE_MAPS_API_KEY=your_google_maps_api_key_herenpm run devOpen https://placepulse-chi.vercel.app in your browser.
| Category | Technology |
|---|---|
| Frontend | React 18.2, Vite 5.0 |
| Styling | CSS3 with Design Tokens |
| Maps | Google Maps JavaScript API |
| Places | Google Places API |
| State | React Hooks |
| Build | Vite, ESBuild |
PlacePulse/
โโโ src/
โ โโโ components/ # React components
โ โ โโโ App/ # Main app component
โ โ โโโ Header/ # Header with location & theme
โ โ โโโ SearchBar/ # Search with autocomplete
โ โ โโโ Map/ # Google Maps integration
โ โ โโโ PlacesList/ # Results list
โ โ โโโ PlaceCard/ # Individual place card
โ โ โโโ PlaceDetails/ # Full place details modal
โ โ โโโ Filters/ # Filter & sort controls
โ โ โโโ ThemeToggle/ # Dark/light mode toggle
โ โโโ hooks/ # Custom React hooks
โ โ โโโ useGeolocation # User location tracking
โ โ โโโ usePlaces # Places search logic
โ โ โโโ useTheme # Theme management
โ โโโ services/ # API services
โ โ โโโ mapsLoader.js # Google Maps loader
โ โ โโโ placesApi.js # Places API wrapper
โ โโโ utils/ # Utilities
โ โ โโโ constants.js # App constants
โ โ โโโ moodMapping.js # Mood to places mapping
โ โ โโโ filterSort.js # Filter/sort logic
โ โโโ styles/ # Global styles
โ โโโ tokens.css # Design tokens
โโโ .env # Environment variables
โโโ vite.config.js # Vite configuration
โโโ package.json # Dependencies
- Type a mood like "coffee", "lunch", or "date night"
- Click a suggestion or press Enter
- Browse results on the list or map
- Click a place for more details
Click any of the preset mood buttons:
- โ Coffee - Cafes & coffee shops
- ๐ฝ๏ธ Lunch - Restaurants & eateries
- ๐ Chill - Relaxed hangout spots
- ๐ผ Work - Productive workspaces
- ๐ Date - Romantic venues
- ๐ Quick Bite - Fast & casual food
- Rating: 3+, 4+, 4.5+ stars
- Distance: 500m, 1km, 2km, 5km
-
Price:
$, $ $, $$$, $$$$ - Open Now: Currently open places only
| Variable | Description | Required |
|---|---|---|
VITE_GOOGLE_MAPS_API_KEY |
Google Maps API key | Yes |
Your Google Cloud API key needs these APIs enabled:
- โ Maps JavaScript API
- โ Places API
- โ Geocoding API
Recommended restrictions:
- HTTP referrers (websites)
- API restrictions (only enabled APIs)
# Build the app
npm run build
# Preview production build
npm run previewThe build output will be in the dist/ folder.
npm i -g vercel
vercel --prodnpm run build
# Upload dist/ folder to NetlifyFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "run", "preview"]Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- 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.
- Google Maps Platform for the amazing APIs
- React for the UI framework
- Vite for the blazing fast build tool
โญ Star this repo if you find it useful!