Skip to content

samson-16/dine-split

Repository files navigation

🍽️ DineSplit

DineSplit is a mobile application built with React Native and Expo that makes it hassle-free to split bills and share meal expenses with friends. Easily create sessions, add restaurants, assign items to friends, and seamlessly calculate split results!

✨ Features

  • Session Management: Start a dining session and add friends to track everyone's orders.
  • Restaurant Search & Maps: Integrated with react-native-maps and expo-location to easily find and add restaurants.
  • Receipt Capture: Upload and share receipts using Cloudinary and expo-image-picker.
  • Bill Calculation: Automatically calculate split totals, including taxes and tips.
  • User Profiles & Avatars: Manage your profile and customize avatars inline.
  • Modern UI: Smooth interactions and rapid file-based routing.

🛠️ Tech Stack

  • Framework: React Native & Expo
  • Routing: Expo Router
  • State Management: Zustand
  • Media Storage: Cloudinary
  • Mapping: react-native-maps
  • Local Storage: AsyncStorage

🚀 Get Started

  1. Install dependencies

    npm install
  2. Set up environment variables

    Copy the .env.example file to .env:

    cp .env.example .env

    The .env file should contain at least:

    EXPO_PUBLIC_API_URL=https://dinesplitbackend-production.up.railway.app/
    
  3. Start the app

    npx expo start

In the output, you'll find options to open the app in an Android emulator, iOS simulator, or Expo Go.

📂 Project Structure

  • app/ - File-based routes (Onboarding, Sessions, Splitting, etc.)
  • components/ - Reusable UI components
  • constants/ - Theme definitions and design system constants
  • store/ - Zustand global state definitions
  • utils/ - Utility functions (Cloudinary upload, storage configuration)

📖 Learn More

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages