An interactive map-based application for exploring taco establishments in Tucson, AZ. Discover local taco shops, food trucks, and stands with detailed information on menu items, salsas, spice levels, and specialty offerings.
- Interactive Map: Visualize all taco establishments in the Tucson area
- Detailed Information Cards: Explore each location's offerings in detail
- Data Visualization: View radar charts for menu items and proteins
- Specialty Highlights: Discover unique specialty items at each location
- Salsa & Spice Analysis: Compare salsa varieties and heat levels
- Hours & Type Information: Filter by establishment type and hours
- Frontend: SvelteKit with Vite
- Styling: Tailwind CSS
- Backend: Supabase for database and authentication
- Mapping: Mapbox GL
- Data Visualization: Chart.js and ECharts
Before you begin, ensure you have:
- Node.js (v16 or newer)
- pnpm package manager
- A Supabase account for backend services
- A Mapbox account for map rendering
Create a .env
file in the root directory with the following variables:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_MAPBOX_KEY=your_mapbox_api_key
-
Clone the repository
git clone https://github.com/keatonwilson/cartoTaco.git cd cartoTaco
-
Install dependencies
pnpm install
-
Start the development server
pnpm dev
-
Open your browser and navigate to
http://localhost:5173
pnpm dev
- Start development serverpnpm build
- Build for productionpnpm preview
- Preview production buildpnpm check
- Run type checking
src/
├── components/ # Reusable UI components
│ ├── Card.svelte # Popup card for establishment details
│ ├── RadarChart.svelte # Chart for menu and protein data
│ └── ...
├── lib/ # Utilities, stores, and data handling
│ ├── dataWrangling.js # Data transformation utilities
│ ├── mapping.js # Map rendering functionality
│ ├── stores.js # Svelte stores for state management
│ └── supabase.js # Supabase client configuration
├── routes/ # SvelteKit routes and pages
│ ├── +page.svelte # Main page
│ ├── Map.svelte # Map component
│ └── ...
└── app.css # Global styles
The application uses Supabase with the following main tables:
sites
- Basic information about taco establishmentsdescriptions
- Short and long descriptions for each locationmenu
- Menu item data and ratingshours
- Operating hours informationsalsa
- Salsa varieties and heat levelsprotein
- Protein options and ratingssummaries
- Aggregated statistics across establishmentsitem_spec
,protein_spec
,salsa_spec
- Specialty item information
- User authentication for saving favorite locations
- Filtering and search functionality
- Ratings and review system
- Mobile optimization
- Offline capability
- Additional data visualizations
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Project Link: https://github.com/keatonwilson/cartoTaco