Maptizer is a powerful Geospatial Analytics Platform combining full-scale map interaction with AI-powered insights. Designed for developers, analysts, and researchers, it provides real-time, location-based intelligence using rich spatial data and intelligent visualization layers.
Harness the potential of LocationIQ, Tailwind CSS, Vite, Qloo APIs, and custom AI/ML models to extract actionable insights from maps, users, and dynamic geolocated data.
"Mapping meets Machine Learning β uncover patterns, predict trends, and interact with maps like never before."
Maptizer helps users evaluate location feasibility for businesses or events by analyzing geospatial data, culture, people behavior, and demand trends. Our integration with the Qloo API enables cultural, interest, and demographic insights based on location and tags (like cafΓ©s, gyms, art spaces, etc.).
Enable any user to:
- Select a location and interest tags (e.g., "tea shop", "bookstore", "music")
- Use Qloo's entity and insight APIs to gather population behavior, taste profiles, and location tags
- Run AI/ML-powered business feasibility analysis
- Get data-driven predictions using charts, heatmaps, and geo-visual analytics
- AI-Enhanced Discovery
- Real-time Filtering
- Comprehensive Results
- Interactive Map Integration
- Interactive Visualizations
- Demographics Intelligence
- Heatmap Visualization
- Export Capabilities
- Clustered Markers
- Multiple Map Views
- Real-time Updates
- Custom Overlays
- GROQ Integration
- Automated Comparisons
- Natural Language Summaries
- PDF Report Generation
- Comprehensive Analysis
- Geographic Clustering
- Visual Representations
- Data Export
- Apple-Inspired Design
- Responsive Layout
- Accessibility
- Session Management
React 18.x
Vite 5.x
Tailwind CSS 3.x
React Router 6.x
Context API
Recharts
Leaflet
React-Leaflet
HTML2Canvas
Lucide React
Node.js 18.x
Express.js 4.x
RESTful APIs
Session Management
File Processing
QLOO API
Groq API
Geocoding APIs
Session Storage
ESLint
Prettier
Nodemon
Winston Logger
File: backend/src/controllers/searchController.js
const searchResponse = await qlooService.searchPlaces({
query, lat, long, radius, page, take
});
Purpose:
- Smart Location Discovery
- Geographic Filtering
- Pagination Support
- Demographic Enhancement
Returns:
- Coordinates (latitude/longitude)
- Place name
- Popularity score
- Basic demographic tags
File: backend/src/controllers/searchController.js
const demoData = await qlooService.getDemographics(entity_id);
Purpose:
- Age Group Insights
- Gender Analytics
- Consumer Behavior
Returns:
- Age groups
- Gender distribution
- Affinity and interest scores
File: backend/src/controllers/heatmapController.js
const heatmapResponse = await qlooService.getHeatmapByLocation({
wktPoint, radius, income, age
});
Purpose:
- Geographic Intensity Mapping
- Spatial Analysis
- Income-based Filtering
- Age-based Segmentation
Returns:
- Geo-points (latitude, longitude)
- Intensity values
File: backend/src/controllers/searchController.js
const combinedResults = await Promise.all([
qlooService.searchPlaces(...),
qlooService.getHeatmapByLocation(...)
]);
Purpose:
- Multi-layered Data
- Comprehensive Analytics
- Filtering Integration
- Performance Optimization
Returns:
- Search results
- Demographics per place
- Heatmap intensity data
API Endpoint | File | Function |
---|---|---|
/search/places |
searchController.js |
searchPlaces() |
/demographics/:entityId |
searchController.js |
getDemographics() |
/heatmap/location |
heatmapController.js |
getHeatmapByLocation() |
/analytics/combined |
searchController.js |
getCombinedData() |
Node.js >= 18.0.0
npm >= 9.0.0
Git >= 2.30.0
git clone https://github.com/THILLAINATARAJAN-B/Maptizer.git
cd Maptizer
cd backend
npm install
cd ../frontend
npm install
PORT=5000
NODE_ENV=development
QLOO_API_KEY=your_qloo_api_key_here
GROQ_API_KEY=your_groq_api_key_here
DEMOGRAPHICS_FILE_PATH=./src/data/session/demographics.json
CHART_IMAGES_PATH=./src/data/chart-images/
PDF_STORAGE_PATH=./src/data/pdfs/
SESSION_CLEANUP_INTERVAL=3600000
MAX_SESSION_AGE=86400000
VITE_API_URL=http://localhost:5000
VITE_API_TIMEOUT=30000
VITE_APP_NAME=LocationIQ Insights
VITE_MAP_TILES_URL=https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
VITE_ENABLE_CHART_CAPTURE=true
VITE_ENABLE_PDF_EXPORT=true
VITE_DEFAULT_MAP_CENTER_LAT=11.0168
VITE_DEFAULT_MAP_CENTER_LNG=76.9558
cd backend
npm run dev
# http://localhost:5000
cd frontend
npm run dev
# http://localhost:3000
- Frontend:
http://localhost:3000
- Backend API:
http://localhost:5000
- Health Check:
http://localhost:5000/api/health
backend/
βββ src/
β βββ controllers/ # API request handlers
β β βββ searchController.js # Location search with QLOO API
β β βββ heatmapController.js # Heatmap data generation
β β βββ insightsController.js # AI insights with Groq
β β βββ entityController.js # Entity comparison logic
β β βββ filesController.js # File and image management
β β βββ pdfController.js # PDF generation service
β β βββ sessionController.js # Session management
β β
β βββ services/ # Business logic layer
β β βββ qlooService.js # QLOO API integration
β β βββ geoService.js # Geolocation services
β β βββ pdfService.js # PDF generation utilities
β β βββ summaryService.js # AI summary generation
β β βββ sessionCleanupService.js # Session cleanup automation
β β
β βββ routes/ # API routing
β β βββ apiRoutes.js # Main application routes
β β βββ healthRoutes.js # Health check endpoints
β β
β βββ utils/ # Utility functions
β β βββ logger.js # Winston logging configuration
β β βββ dataManager.js # Data processing utilities
β β βββ errorFormatter.js # Error handling and formatting
β β
β βββ data/ # Application data storage
β βββ session/ # Session data storage
β βββ chart-images/ # Generated chart images
β βββ pdfs/ # Generated PDF reports
β
βββ server.js # Application entry point
βββ package.json # Dependencies and npm scripts
frontend/
βββ src/
β βββ components/ # Reusable UI components
β β βββ analytics/ # Analytics dashboard components
β β β βββ EnhancedAnalyticsChart.jsx
β β β βββ LocationStatsPanel.jsx
β β β βββ CategoryBreakdown.jsx
β β β
β β βββ demographics/ # Demographics visualization
β β β βββ DemographicsChart.jsx
β β β βββ DemographicsPanel.jsx
β β β
β β βββ maps/ # Mapping components
β β β βββ MapContainer.jsx
β β β βββ HeatmapMap.jsx
β β β βββ SearchMap.jsx
β β β βββ LocationDetailPopup.jsx
β β β
β β βββ search/ # Search interface components
β β β βββ SearchForm.jsx
β β β βββ SearchResults.jsx
β β β
β β βββ insights/ # AI insights components
β β β βββ ComparisonView.jsx
β β β βββ InsightsPanel.jsx
β β β βββ PDFDownloadButton.jsx
β β β
β β βββ dashboard/ # Dashboard components
β β β βββ Dashboard.jsx
β β β βββ StatsCards.jsx
β β β
β β βββ ui/ # Basic UI elements
β β βββ Button.jsx
β β βββ Card.jsx
β β βββ Badge.jsx
β β
β βββ pages/ # Main application pages
β β βββ Home.jsx # Landing page with dashboard
β β βββ Search.jsx # Location search interface
β β βββ Analytics.jsx # Analytics dashboard
β β βββ Compare.jsx # AI comparison tool
β β βββ Insights.jsx # Insights and trends page
β β βββ Files.jsx # File management interface
β β
β βββ hooks/ # Custom React hooks
β β βββ useApi.js # API integration hook
β β βββ useLocalStorage.js # Local storage management
β β βββ useSessionCleanup.js # Session cleanup hook
β β
β βββ context/ # React Context providers
β β βββ AppContext.jsx # Global application state
β β
β βββ services/ # External service integrations
β β βββ api.js # API client configuration
β β βββ dataService.js # Data processing services
β β βββ mapService.js # Map service utilities
β β
β βββ utils/ # Utility functions
β βββ helpers.js # General helper functions
β βββ constants.js # Application constants
β βββ cn.js # Tailwind class utilities
β
βββ public/ # Static assets and screenshots
POST /api/search/places
Content-Type: application/json
{
"query": "restaurants",
"lat": 11.0168,
"lng": 76.9558,
"radius": 25,
"page": 1,
"take": 20
}
Response:
{
"items": [
{
"entity_id": "entity_123",
"name": "Restaurant Name",
"location": {
"latitude": 11.0168,
"longitude": 76.9558,
"address": "123 Main St, City"
},
"demographics": {
"age": { "25_34": 0.4, "35_44": 0.3 },
"gender": { "male": 0.6, "female": 0.4 }
},
"popularity": 0.8,
"score": 0.92
}
],
"aggregatedAgeScores": {...},
"aggregatedGenderScores": {...}
}
POST /api/analytics/combined
Content-Type: application/json
{
"location": "Coimbatore",
"radius": 15,
"age": "25_to_29",
"income": "high",
"popularity": 0.3,
"take": 50
}
POST /api/heatmap/location
Content-Type: application/json
{
"location": "Mumbai",
"age": "25_to_29",
"income": "high"
}
POST /api/insights/generate
Content-Type: application/json
{
"entities": ["entity_1", "entity_2"],
"analysisType": "comparison",
"includeSummary": true
}
POST /api/save-chart-image
Content-Type: application/json
{
"imageBase64": "data:image/png;base64,...",
"chartType": "demographics-age",
"chartId": "demo_age_1722528800000",
"metadata": {...}
}
GET /api/health
Response:
{
"status": "healthy",
"timestamp": "2024-08-01T19:30:00.000Z",
"sessionId": "1722528600000",
"version": "1.0.0"
}
# Development
npm run dev # Start development server with hot reload
npm run build # Build production bundle
npm run preview # Preview production build locally
# Code Quality
npm run lint # Run ESLint code analysis
npm run format # Format code with Prettier
npm run type-check # TypeScript type checking (if applicable)
- Manual Testing: Comprehensive user workflow testing
- API Testing: Endpoint functionality and response validation
- UI Testing: Component rendering and interaction testing
- Performance Testing: Loading times and bundle size optimization
- Cross-browser Testing: Compatibility across modern browsers
# Frontend Build
cd frontend
npm run build
npm run preview
# Backend Production
cd backend
NODE_ENV=production npm start
# Example Dockerfile for containerization
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
- Vercel: Optimal for frontend deployment with automatic CI/CD
- Netlify: Alternative frontend hosting with form handling
- Railway: Full-stack deployment with database integration
- Heroku: Traditional PaaS with add-on ecosystem
- Input Validation: Comprehensive data sanitization for all API endpoints
- Environment Variables: Secure handling of API keys and sensitive configuration
- CORS Configuration: Properly configured Cross-Origin Resource Sharing
- Session Security: Secure session management with automatic cleanup
- Error Handling: Structured error responses without exposing system details
- Data Minimization: Only necessary data is processed and stored
- Session Management: Automatic cleanup of temporary session data
- API Security: Secure communication with external service providers
- Local Processing: Demographic data processing without permanent storage
- Code Splitting: Route-based lazy loading for faster initial page loads
- Image Optimization: Responsive images with proper loading strategies
- Bundle Optimization: Tree shaking and dead code elimination
- Caching Strategies: Intelligent API response caching
- Lazy Component Loading: On-demand component loading
- Response Optimization: Compressed API responses with proper headers
- Session Cleanup: Automated cleanup to prevent memory leaks
- Efficient Data Processing: Optimized algorithms for demographic analysis
- API Rate Management: Proper handling of external API rate limits
- Error Recovery: Graceful handling of external service failures
- First Contentful Paint:
Role | Responsibility | GitHub |
---|---|---|
**Lead Developer ** | Innovator | @SIVAPRAKASH-S |
Frontend Specialist | React components, UI/UX implementation | @THILLAINATARAJAN-B |
Backend Developer | API development, data processing | @SIVAPRAKASH-S |
DevOps Engineer | Deployment, CI/CD, infrastructure | @THILLAINATARAJAN-B |
Special thanks to the open-source community and the following projects that make Maptizer possible:
- React Team - For the powerful React framework
- Tailwind CSS - For the utility-first CSS framework
- Leaflet - For the interactive mapping library
- Recharts - For beautiful chart components
- QLOO - For comprehensive location and demographic data
- Groq - For advanced AI language model capabilities
- Vite - For the fast build tool and development server
- π Documentation: Project Wiki
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Discussions
- π§ Direct Contact: Create an Issue
- Be respectful and inclusive in all interactions
- Provide clear and detailed information when reporting issues
- Search existing issues before creating new ones
- Follow the code of conduct in all community spaces
- π Live Demo
- π Documentation
- π Report Bug
- π‘ Request Feature
β Completed Features
- Core location search with QLOO API integration
- Interactive analytics dashboard with multiple chart types
- AI-powered location comparison using Groq
- Comprehensive demographics visualization
- Interactive mapping with clustering and heatmaps
- PDF report generation and file management
- Responsive design across all devices
- Session management with automatic cleanup
π In Development
- Enhanced search filters and sorting options
- Improved AI insights with more detailed analysis
- Additional chart types for demographics visualization
- Performance optimizations for large datasets
- Enhanced error handling and user feedback
π Planned Features
- User authentication and personalized dashboards
- Data export in multiple formats (CSV, Excel)
- Advanced filtering options for analytics
- Integration with additional data sources
- Mobile-optimized progressive web app features
π Future Enhancements
- Real-time data streaming and live updates
- Machine learning predictions for location trends
- Multi-language support for global users
- Advanced geospatial analysis tools
- Enterprise features and white-label solutions
![GitHub Language Count](https://img.shields.io/github/languages/count/THILLAINATARAJAN-B/Maptizer?](https://img.shields.io/github/languages/top/THILLAINATARAJAN-B/Maptizer?style= Size](https://img.shields.io/github/languages/code-size/THILL.io/github/repo-size/THILLAINATARAJANshields.io/github/commit-activity/m/THILLAINATARAJAN-B/Maptizer?
[![Star History Chart](https://api.star-history.com/svg?repos=THILLAINATARAJAN-B/Maptizer&type=com/#THILLAINATARAJAN-B/Maptizer& you find Maptizer useful, please consider giving it a star on GitHub!**
π Connect with the Project:
[![GitHub](https://img.shields.io/In](https://img.shields.://img.shields.io/badge with β€οΈ by developers, for location intelligence**
Last updated: August 1, 2024