Skip to content

codevoyager-ai-dev/sipdash

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ₯ƒ SipDash β€” World #1 Liquor Delivery App

Fast. Smart. Legendary. Get your favorite spirits, wine, and beer delivered in 30–45 minutes. SipDash is the most feature-rich liquor delivery platform ever built.

SipDash Banner


πŸš€ Features

πŸ›’ Core Delivery Experience

  • Browse & Order β€” Browse local liquor stores, filter by category (Spirits, Beer, Wine, Champagne, Cider, RTD, Mixers)
  • Real-time Order Tracking β€” Live status updates: Confirmed β†’ Preparing β†’ Out for Delivery β†’ Delivered
  • Driver Info β€” See your driver's name and call them directly from the app
  • Age Verification Gate β€” Mandatory 21+ confirmation on entry + ID check at door
  • Scheduled Delivery β€” Pick a future date/time slot for your order

⚑ Flash Deals

  • Time-limited deals with live countdown timers
  • Claim progress bars showing how many are left
  • Automatic expiry β€” deals vanish when time runs out

πŸ€– SipBot AI Assistant

  • Chat-based AI drinks assistant
  • Recommends drinks based on mood, occasion, budget
  • Party planning, gift suggestions, trending picks
  • Quick prompt suggestions for instant answers

πŸŽ‰ Party Planner

  • Enter guest count + party type (Chill Hangout / House Party / Dinner / Rager)
  • Auto-calculates exact quantities: beer cans, wine bottles, spirits, mixers
  • Estimated cost breakdown per category
  • One-tap "Start Shopping" to fill your cart

πŸ‘‘ SipPass Membership

  • $9.99/month or $7.99/month (annual)
  • βœ… Free delivery on every order
  • βœ… 2Γ— loyalty points on all purchases
  • βœ… Early access to flash deals
  • βœ… Monthly surprise gift
  • βœ… VIP priority customer support

⭐ SipRewards Loyalty Program

  • Earn 10 points per $1 spent (20 pts with SipPass)
  • Three tiers: πŸ₯‰ Bronze β†’ πŸ₯ˆ Silver β†’ πŸ₯‡ Gold
  • Redeem points as order credit ($0.01/point)
  • Full transaction history

🎁 Referral System

  • Unique referral code per user (SIP-XXXXXX)
  • 250 bonus points for referrer + referee on first order
  • Share via WhatsApp, Instagram, SMS, or copy link
  • Referral history and earnings tracker

πŸ”” Notification Center

  • Real-time order status notifications
  • Points earned alerts
  • Flash deal announcements
  • In-app notification bell with unread badge

❀️ Wishlist

  • Save products for later
  • Quick-add to cart from wishlist
  • Persisted per user account

βš™οΈ Admin Dashboard

  • Live KPIs: Revenue, Active Orders, Open Stores, Members
  • Order Management: Advance order status with one tap, auto-notifies customer
  • Store Control: Toggle stores open/closed in real time
  • Inventory: Mark products in/out of stock instantly
  • Loyalty Overview: Member counts by tier, points balances

πŸ—οΈ Tech Stack

Layer Technology
Frontend React 18 + Vite
Routing React Router v6
UI Components shadcn/ui + Tailwind CSS
Icons Lucide React
Backend / DB Base44 (managed BaaS)
Auth Base44 Auth (built-in)
AI Assistant Base44 Backend Functions
Deployment Base44 Cloud

πŸ“ Project Structure

sipdash/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ App.jsx                  # Root router
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ Home.jsx             # Main feed, flash deals, categories
β”‚   β”‚   β”œβ”€β”€ StoreDetail.jsx      # Store menu + add to cart
β”‚   β”‚   β”œβ”€β”€ Cart.jsx             # Cart, checkout, address
β”‚   β”‚   β”œβ”€β”€ Orders.jsx           # Order history
β”‚   β”‚   β”œβ”€β”€ OrderTracking.jsx    # Live order tracker
β”‚   β”‚   β”œβ”€β”€ Rewards.jsx          # SipRewards loyalty dashboard
β”‚   β”‚   β”œβ”€β”€ Notifications.jsx    # Notification center
β”‚   β”‚   β”œβ”€β”€ Account.jsx          # Profile + settings
β”‚   β”‚   β”œβ”€β”€ SipBot.jsx           # AI chat assistant
β”‚   β”‚   β”œβ”€β”€ PartyPlanner.jsx     # Party quantity calculator
β”‚   β”‚   β”œβ”€β”€ SipPass.jsx          # Premium membership page
β”‚   β”‚   β”œβ”€β”€ Referral.jsx         # Referral program
β”‚   β”‚   └── AdminDashboard.jsx   # Operations panel
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ NotificationBell.jsx # Header notification icon + badge
β”‚   β”‚   └── Toast.jsx            # In-app toast messages
β”‚   └── lib/
β”‚       └── notificationBus.js   # Shared pub/sub event bus
β”œβ”€β”€ entities/                    # Database schemas
β”‚   β”œβ”€β”€ Store.json
β”‚   β”œβ”€β”€ Product.json
β”‚   β”œβ”€β”€ Order.json
β”‚   β”œβ”€β”€ CartItem.json
β”‚   β”œβ”€β”€ LoyaltyAccount.json
β”‚   β”œβ”€β”€ LoyaltyTransaction.json
β”‚   β”œβ”€β”€ Notification.json
β”‚   β”œβ”€β”€ FlashDeal.json
β”‚   β”œβ”€β”€ Wishlist.json
β”‚   β”œβ”€β”€ Referral.json
β”‚   β”œβ”€β”€ Review.json
β”‚   └── ScheduledDelivery.json
└── functions/
    └── sipAgent.ts              # AI backend function

πŸ›οΈ Architecture

Notification Bus (src/lib/notificationBus.js)

SipDash uses a lightweight pub/sub event bus to keep notification state in sync across components without needing a global state manager like Redux or Context.

Why it exists

The NotificationBell (in the header) and the Notifications page are separate, independent React components. Before this pattern, marking notifications as read on the full page had no way to signal the bell to refresh β€” the badge would stay stale until a full page reload.

How it works

import { notificationBus } from "@/lib/notificationBus";

// Subscribe (e.g. in NotificationBell on mount)
const unsubscribe = notificationBus.subscribe(() => {
  reloadNotificationsFromDB();
});

// Emit (e.g. in Notifications.jsx after marking as read)
notificationBus.emit();

// Cleanup on unmount β€” prevents memory leaks
return () => unsubscribe();

Data flow

User reads notification (Notifications.jsx)
        β”‚
        β–Ό
notificationBus.emit()
        β”‚
        β–Ό
NotificationBell.subscribe callback fires
        β”‚
        β–Ό
loadNotifications() re-fetches from DB
        β”‚
        β–Ό
unreadCount resets β†’ badge clears instantly βœ…

Design decisions

Decision Reason
Plain Set of listeners Zero dependencies, tiny footprint (~10 lines)
Subscribe returns unsubscribe fn Mirrors React useEffect cleanup pattern exactly
Bell also has a 30s poll Fallback for cross-tab reads and server-pushed updates
Bell emits on its own mark-read Keeps any future bus consumers in sync too

Test coverage

The bus has a dedicated test suite (17 tests, 0 failures) covering:

  • Core subscribe/emit/unsubscribe lifecycle
  • Bell state: init, markAll, markOne, floor-at-zero
  • Cross-component sync scenarios
  • Memory leak prevention (mount/unmount cycles)
  • 30s poll interval setup and teardown

πŸ—„οΈ Data Entities

Entity Description
Store Liquor store profiles, hours, delivery info
Product Drinks catalog with categories, ABV, pricing
Order Customer orders with full status lifecycle
CartItem Active cart items per user
LoyaltyAccount Points balance, tier, lifetime stats
LoyaltyTransaction Points earn/redeem history
Notification In-app alerts and order updates
FlashDeal Time-limited deals with countdown + claim limits
Wishlist Saved products per user
Referral Referral codes, referred users, bonus tracking
Review Store and product ratings
ScheduledDelivery Future delivery scheduling

πŸ“± App Routes

Route Page
/ Home (feed, deals, stores)
/store/:id Store menu
/cart Shopping cart
/orders Order history
/order/:id Live order tracking
/rewards Loyalty dashboard
/notifications Notification center
/account User profile
/sipbot AI assistant
/party-planner Party quantity calculator
/sippass Premium membership
/referral Referral program
/admin Admin operations dashboard

πŸ” Age Verification

SipDash enforces a 21+ age gate on every session:

  • Modal blocks access until user confirms age
  • Stored in localStorage for session persistence
  • Physical ID verification required at delivery
  • Admin can flag age_verified on orders

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • A Base44 account

Local Development

# Clone the repo
git clone https://github.com/tushar1551/sipdash.git
cd sipdash

# Install dependencies
npm install

# Start dev server
npm run dev

Deployment

This app is deployed and hosted on Base44. Push to main to trigger a deployment.


πŸ›£οΈ Roadmap

  • Real-time GPS driver tracking map
  • OpenAI GPT-4o powered SipBot
  • Push notifications (PWA)
  • Bundle deals & combo builder
  • Social sharing (share your order)
  • Multi-store cart (order from multiple stores)
  • Dark mode
  • Native mobile app (React Native)

🀝 Contributing

  1. Fork the repo
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Commit your changes: git commit -m 'feat: add your feature'
  4. Push to the branch: git push origin feature/your-feature-name
  5. Open a Pull Request

πŸ“œ License

MIT License β€” see LICENSE for details.


⚠️ Disclaimer

SipDash is a platform for legal alcohol delivery. We comply with all local, state, and federal laws regarding alcohol sales and delivery. You must be 21 or older to use this service. Please drink responsibly.


Built with ❀️ by the SipDash team

πŸ₯ƒ Sip smart. Sip fast. SipDash.

About

πŸ₯ƒ SipDash β€” World #1 Liquor Delivery App. Built with React + Base44. Features: AI SipBot, Flash Deals, Loyalty Rewards, Party Planner, SipPass membership, Referrals, Admin Dashboard & more.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 91.4%
  • TypeScript 8.6%