It is a food ordering app that allows users to order food from a restaurant. It has a login screen, a menu screen, a profile screen, and a settings screen. The menu screen displays the menu items from the restaurant. The profile screen displays the user's profile picture, name, and email. The settings screen allows the user to change their profile picture, name, email, and notification settings. The app uses SQLite to store the menu items and AsyncStorage to store the user's settings. The app also uses ContextAPI to handle authentication.
- Login Screen: Authenticate and identify yourself.
- Menu Screen: Browse through the delicious dishes offered by the restaurant.
- Profile Screen: View and manage your profile picture, name, and email.
- Settings Screen: Change your profile information and manage your notification settings.
The application utilizes SQLite for storing menu items and AsyncStorage for retaining user settings. Moreover, ContextAPI is employed for handling user authentication.
Here's how you can use the Little Lemon Food Ordering App:
- Node.js and npm installed on your machine. Download here
- Expo CLI. Install it using the command
npm install -g expo-cli
- Yarn (Optional). Install it using the command
npm install -g yarn
Clone the Little Lemon Food Ordering App repository
git clone https://github.com/pieterherman-dev/little-lemon.git
cd into the Little Lemon Food Ordering App directory
cd little-lemon
if you use npm run the following command:
npm install && npm start
if you use yarn run the following command:
yarn install && yarn start
Option 1: Scan the QR code from the terminal to run the app on your phone:
- Install Expo Go app on your phone
- Scan the QR code from the terminal to run the app on your phone
- On IOS Scan QR code through Camera app or if you use Android : Scan QR code through Expo Go app.
Option 2: Run the app in a simulator on your computer:
- Install Xcode for IOS or Android Studio for Android
- Press i for IOS or a for Android to run the app in a simulator on your computer
- React Native - The framework used
- Expo - The platform used
- SQLite - The database used
- AsyncStorage - The storage used
- ContextAPI - The state management used
- [react-native-async-storage/async-storage] (https://react-native-async-storage.github.io/async-storage/)
- [react-navigation/native] (https://reactnavigation.org/)
- [react-navigation/native-stack"] (https://reactnavigation.org/docs/stack-navigator/)
- [expo] (https://expo.io/)
- [expo-status-bar] (https://docs.expo.io/versions/latest/sdk/status-bar/)
- [react] (https://reactjs.org/)
- [react-native] (https://reactnative.dev/)
- [react-native-pager-view]
- [react-native-paper] (https://callstack.github.io/react-native-paper/)
- [react-native-safe-area-context]
- [react-native-screens] (https://reactnavigation.org/docs/getting-started/)
- [expo-sqlite] (https://docs.expo.io/versions/latest/sdk/sqlite/)
- [expo-font] (https://docs.expo.io/versions/latest/sdk/font/)
- [expo-splash-screen] (https://docs.expo.io/versions/latest/sdk/splash-screen/)
- [expo-updates] (https://docs.expo.io/versions/latest/sdk/updates/)