A location-based social network built with React and Google Maps. Users can set their location and see other members on an interactive map of the United States.
- User Authentication - Register and login with username/password
- Profile Management - Set full name and change password
- Location Setting - Search and geocode addresses via Google Maps API
- Interactive Map - View your location and other users on a CONUS map
- Dark Theme - Sleek dark UI with gold accents
- Frontend: React 18, Vite
- UI: Material UI (MUI) v5
- Maps: @react-google-maps/api
- Routing: React Router v6
- Storage: localStorage (no backend required)
- Node.js 18+
- Google Maps API key with Maps JavaScript API and Geocoding API enabled
# Clone the repository
git clone <repo-url>
cd underground
# Install dependencies
npm install
# Configure environment
cp .env.example .env
# Edit .env and add your Google Maps API keynpm run devOpens at http://localhost:3000
npm run build
npm run preview| Variable | Description |
|---|---|
VITE_GOOGLE_MAPS_API_KEY |
Google Maps API key |
Get your API key from Google Cloud Console.
src/
├── components/
│ ├── Layout.jsx # App shell with sidebar
│ ├── LocationMap.jsx # Google Maps wrapper
│ └── ProtectedRoute.jsx
├── contexts/
│ └── AuthContext.jsx # Authentication state
├── pages/
│ ├── Login.jsx
│ ├── Register.jsx
│ ├── Profile.jsx # User settings & location
│ └── MapView.jsx # Main map display
├── App.jsx # Route definitions
└── main.jsx # Entry point & theme
See deployment.md for instructions on deploying to a GCP VM.
MIT
