Documentation

Everything you need to know about UT Dining's technical implementation

Getting Started

Our tech stack is carefully chosen to provide the best development experience while maintaining high performance and reliability. Here's what you need to get started: 1. Install Node.js (v18+) 2. Install pnpm: npm install -g pnpm 3. Clone the repository 4. Run pnpm install 5. Start the development server

Framework

We use Expo and React Native as our primary framework. This allows us to: - Develop for both iOS and Android simultaneously - Leverage native device features - Use hot reloading for faster development - Access Expo's extensive library of pre-built components

State Management

Zustand is our choice for state management because it's: - Simple and lightweight - TypeScript-friendly - Has minimal boilerplate - Supports middleware and devtools - Perfect for both local and global state

Styling

We use NativeWind (powered by Tailwind CSS) for styling: - Utility-first CSS approach - Consistent design system - Responsive layouts - Dark mode support - Custom theme configuration

Build Tools

Our build process is handled by: - pnpm: Fast, disk space efficient package manager - Metro bundler: React Native's default bundler - Custom build scripts for different environments

Database

Supabase powers our backend infrastructure: - PostgreSQL database - Real-time subscriptions - Row Level Security - Authentication - Storage for media files

Architecture

Our app follows a modular architecture: - Feature-based directory structure - Atomic design principles - Custom hooks for business logic - Service layer for API interactions - Type-safe data fetching

Contributing

We welcome contributions! Please follow our guidelines: 1. Fork the repository 2. Create a feature branch 3. Follow our coding standards 4. Write tests 5. Submit a pull request