Back to Projects
DineTime
Overview
DineTime is a restaurant booking mobile application built with React Native, Expo, and Firebase. The app enables users to discover restaurants, reserve tables, manage bookings, and personalize their profiles through a seamless, responsive, and user-friendly mobile experience.
Key Features
- Secure Authentication & Guest Access: Implemented secure user authentication with Firebase Authentication, including email/password sign-up and sign-in, Firestore user profile management, persistent user sessions, and guest access for restaurant reservations without account creation.
- Restaurant Discovery & Reservations: Developed an intuitive restaurant browsing experience with detailed restaurant information and an easy-to-use table reservation system for selecting dates, times, and guest counts.
- Booking Management: Built a booking history system that enables authenticated users to view and track both upcoming and previous restaurant reservations.
- User Profile Management: Enabled profile customization with profile image uploads, editable personal information, booking statistics, and secure password updates through Firebase Authentication.
- Cloud-Based Data Management: Integrated Firebase Firestore and Firebase Storage to securely store user profiles, booking records, and profile images.
- Session Persistence & Form Validation: Implemented persistent user sessions using AsyncStorage along with Formik-based form validation, shared validation schemas, and comprehensive error handling.
Tech Stack
React Native | Expo | NativeWind | Expo Router | Firebase Authentication | Firebase Firestore | Firebase Storage | Formik | Yup | AsyncStorage
