A smart platform connecting students and budget-conscious individuals with real-time food promotions and AI-powered meal planning to combat food waste and reduce expenses.
- Overview
- Tech Stack
- Features
- Social Impact
- Scalability
- Getting Started
- Environment Variables
- Project Structure
- Contributing
Food Deal Finder is a comprehensive web application designed to help students and individuals find the best food promotions in real-time, plan budget-friendly meals using AI, and reduce food waste. The platform combines interactive maps, AI-powered meal planning, and a community-driven promotion system to make affordable, healthy eating accessible to everyone.
- Next.js 15.5.4 - React framework with App Router and Turbopack for blazing-fast performance
- React 19.1.0 - Latest React with improved concurrent features
- TypeScript 5 - Type-safe development
- Tailwind CSS 4 - Utility-first CSS framework with PostCSS integration
- Radix UI - Accessible component primitives
@radix-ui/react-label@radix-ui/react-select@radix-ui/react-slot
- Framer Motion 12 - Animation library for smooth transitions
- Lucide React - Beautiful icon library
- class-variance-authority - CVA for component variants
- tw-animate-css - Enhanced Tailwind animations
- MapLibre GL JS 5.9.0 - Open-source map rendering
- React Map GL 8.1.0 - React wrapper for MapLibre
- Amazon Location Service - Backend mapping infrastructure (AWS)
- AWS Amplify 6.15.7 - Cloud integration and API management
- Custom API for AI-powered meal planning and recommendations
- jsPDF 3.0.3 - PDF generation for meal plans
- clsx & tailwind-merge - Conditional styling utilities
- Biome 2.2.0 - Fast linter and formatter (replacing ESLint + Prettier)
- TypeScript - Static type checking
- Live visualization of nearby restaurants and food establishments
- Real-time promotion markers with price and timing information
- User location tracking with geolocation API
- Search and filter promotions by food type (Sushi, Pizza, Healthy, etc.)
- Bottom sheet interface for detailed promotion information
- Smooth animations and transitions using Framer Motion
- Chat-based interface for meal plan generation
- Budget-aware meal planning
- Customizable time periods (days)
- Health-level preferences
- Automatic product selection from available promotions
- Cost optimization with discount application
- PDF export functionality for meal plans
- Daily breakdown by meals (Breakfast, Lunch, Dinner)
- "Today" section for current active promotions
- "Top Promotions" based on community votes
- Featured promotions highlighting the best deals
- Upvoting system for community-driven recommendations
- Category-based filtering
- Secure login system with token-based authentication
- Protected routes using Next.js middleware
- Cookie-based session management
- Auto-redirect based on authentication state
- Backend token verification
- Mobile-first approach
- Touch-optimized drag gestures
- Adaptive layouts for all screen sizes
- Progressive Web App ready
- Loading states and skeleton screens
- Smooth page transitions
- Error handling and user feedback
- Intuitive navigation
- Accessible components (Radix UI)
- Unsold Food Reduction: By connecting students with promotions on food nearing expiration or end-of-day deals, the platform helps restaurants sell items that would otherwise be discarded.
- Environmental Impact: Reducing food waste directly decreases greenhouse gas emissions from decomposing food in landfills.
- Student Budget Support: College students often struggle with limited budgets. This platform provides access to affordable meals, ensuring better nutrition without financial strain.
- Community Empowerment: The upvoting system creates a community-driven approach where users help each other find the best deals.
- AI Meal Planning: The meal planner considers health preferences, helping users maintain balanced diets even on tight budgets.
- Informed Choices: Users can see nutritional information and make better food decisions.
- Increased Foot Traffic: Restaurants gain visibility and can attract customers during slow periods.
- Inventory Management: Helps businesses manage inventory more efficiently by promoting items that need to be sold quickly.
- Financial Literacy: Teaches students to plan meals and manage food budgets effectively.
- Sustainability Awareness: Raises awareness about food waste and sustainable consumption.
- AWS Infrastructure: Built on AWS services (Amplify, Location Service) for automatic scaling
- CDN Distribution: Static assets served through global CDN for fast loading worldwide
- Serverless Backend: API endpoints can scale automatically with demand
- Efficient indexing for location-based queries
- Caching layer for frequently accessed data (promotions, places)
- Read replicas for handling increased traffic
- Next.js Turbopack: Faster builds and hot module replacement
- Code Splitting: Automatic route-based code splitting
- Image Optimization: Next.js built-in image optimization
- Lazy Loading: Components load on-demand
- RESTful API architecture
- Rate limiting to prevent abuse
- API versioning for backward compatibility
- Microservices-ready structure
Current: Single city/campus
Phase 1: Multiple campuses in the same region
Phase 2: State-wide expansion
Phase 3: National coverage
Phase 4: International markets
- Onboarding: Simple authentication flow
- Referral System: Future feature for viral growth
- Community Features: Upvoting and reviews drive engagement
- Gamification: Points, badges, and rewards for active users
- Premium Subscriptions: Advanced meal planning features
- Restaurant Partnerships: Featured placement for businesses
- Sponsored Promotions: Promoted deals in search results
- Data Analytics: Aggregated insights for restaurants (anonymous)
- Meal Plan Sharing: Social features for community meal plans
- Nutrition Tracking: Integration with health apps
- Recipe Suggestions: Based on available ingredients
- Delivery Integration: Partner with delivery services
- Group Orders: Split bills and order together
// Redis caching for hot data
- User sessions: 1 hour TTL
- Promotion listings: 5 minutes TTL
- Place information: 1 day TTL
- AI meal plans: 30 minutes TTL- Geographic load distribution
- Auto-scaling based on traffic patterns
- Peak hour optimization (lunch/dinner times)
- Real-time error tracking
- Performance monitoring (Core Web Vitals)
- User behavior analytics
- A/B testing infrastructure
- Geographic sharding for location-based data
- User data partitioning
- Promotion data by region
- Node.js 20+ or Bun
- npm, yarn, pnpm, or bun package manager
- Clone the repository
git clone https://github.com/Fernando-Mauro/hackmty-front.git
cd hackmty-front- Install dependencies
npm install
# or
bun install- Set up environment variables
cp .env.local.example .env.local- Run the development server
npm run dev
# or
bun dev --turbopack- Open your browser
http://localhost:3000
npm run build
npm run startCreate a .env.local file in the root directory:
# API Configuration
NEXT_PUBLIC_API_URL=http://localhost:8000
# AWS Location Service (Amazon Location)
NEXT_PUBLIC_AWS_REGION=us-east-1
NEXT_PUBLIC_MAP_NAME=your-map-name
NEXT_PUBLIC_MAP_API_KEY=your-api-key
# Authentication
# (Add your backend authentication endpoints here)hackmty-front/
βββ public/ # Static assets
β βββ logo.PNG
β βββ *.svg
βββ src/
β βββ app/ # Next.js App Router
β β βββ page.tsx # Login page
β β βββ app/ # Protected dashboard
β β βββ featured/ # Featured promotions
β β βββ promos/ # All promotions
β β βββ profile/ # User profile
β β βββ post-promotion/ # Create promotions
β βββ components/ # React components
β β βββ ui/ # Shadcn UI components
β β βββ card.tsx # Promotion cards
β β βββ map-component.tsx # Interactive map
β β βββ meal-chat.tsx # AI meal planner
β β βββ login-form.tsx # Authentication
β βββ lib/ # Utilities
β β βββ utils.ts # Helper functions
β β βββ cookies.ts # Cookie management
β βββ middleware.ts # Route protection
βββ biome.json # Biome configuration
βββ components.json # Shadcn config
βββ tailwind.config.ts # Tailwind configuration
βββ tsconfig.json # TypeScript config
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a 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
# Run linter
npm run lint
# Format code
npm run formatThis project was created for HackMTY. All rights reserved.
Built with β€οΈ by the HackMTY team
- Repository: github.com/Fernando-Mauro/hackmty-front
- Documentation: See
AUTH_README.mdandIMPLEMENTATION_SUMMARY.md
Deploy on Vercel - the easiest way to deploy Next.js apps.