FoodTruckNerdz – Next.js App
A modern implementation of the FoodTruckNerdz application using Next.js, Tailwind CSS, shadcn/ui, and Zustand.
Management Tool Hierarchy (Abstract)
This diagram shows the "what controls what" hierarchy of management roles, reflecting the ideal way to manage development environments.
graph TD
SYS["System Package Manager (e.g. winget, brew)"] --> VM["Version Manager (e.g. nvm, asdf)"]
VM --> RT["Language Runtime (e.g. Node.js)"]
RT --> WRAP["Manager Wrapper (e.g. Corepack)"]
RT --> NPM["Bundled Manager (e.g. npm)"]
WRAP --> PM["External Package Manager (e.g. pnpm, yarn)"]
PM --> DEP["Project Dependencies (Libraries)"]
NPM --> DEP
DEP --> APP["Application Codebase"]
SYS --> B_RT["Independent Runtime/PM (e.g. Bun)"]
B_RT --> DEP
Management Tool Hierarchy (Specific)
This diagram shows the specific tools used and recommended in this ecosystem.
graph TD
W["UniGetUI / winget"] --> NVM["nvm-windows"]
NVM --> NODE["Node.js"]
NODE --> CP["Corepack (Bundled)"]
NODE --> NPM["npm (Bundled)"]
CP --> PNPM["pnpm"]
CP --> YARN["yarn"]
W --> BUN["Bun"]
PNPM --> NEXT["Next.js Framework"]
YARN --> NEXT
BUN --> NEXT
NPM --> NEXT
NEXT --> LIBS["Libraries / React"]
LIBS --> APP["Project Components"]
Features
Patrons
-
Search for food trucks by name
-
View food trucks on a map
-
Get current location of food truck
-
Responsive design for mobile and desktop
Owners
-
Register a food truck linked to Square POS
-
Public events & host venues: post gigs (stipend / budget / bids), review applications; publish recurring venue schedules
-
-
GPS-based nearby addresses discovery
-
Advanced map-based location selection
-
Distance indicators for nearby addresses
-
One-click check-in from nearby locations
-
Automatic checkout with time spans
-
-
Food truck management (CRUD operations)
-
Square integration for menu sync
Technologies Used
-
Next.js 15: React framework with App Router
-
React 19: UI library
-
Tailwind CSS 4: Utility-first CSS framework
-
shadcn/ui: Reusable UI components built with Radix UI
-
Zustand: State management library
-
Radar SDK: Maps and location services
-
Convex: Backend database and real-time sync
-
Square API: POS integration
Project Structure
ftn-nextjs/
├── app/ # Next.js App Router
│ ├── actions/ # Server actions
│ ├── api/ # API routes
│ └── manage/ # Management pages
├── components/ # React components
│ ├── ui/ # shadcn/ui components
│ ├── food-trucks/ # Food truck components
│ ├── map/ # Map components
│ └── checkin/ # Check-in components
├── convex/ # Convex backend
├── lib/ # Utility functions
├── store/ # Zustand stores
└── public/ # Static assets
Getting Started
Choose one of the following paths:
-
Option A: Manual Setup (DIY) (baseline, cross-platform)
-
Option B: External Dev Setup App (optional UX)
Environment Variables
See Environment Variables for details.
Documentation
-
Events & Host Venues - Procurement models, Convex tables, OG previews
-
Check-in System - Enhanced check-in features
-
Map Performance & Failover - Robust map provider system
-
Component Architecture - React component structure
-
POS Implementation - Square integration
-
Convex Setup - Backend configuration