Developing a Food Delivery App

Aug 26, 2024

Food Delivery App Development Lecture Notes

Introduction

  • Speaker thanks the audience for their support.
  • Announcement of a community center created on School.com called "Roman Flut Squad" for collaboration and sharing development journeys.

Community Center Features

  • Tabs in the Community:
    • Community Tab: Post questions/projects for help.
    • Classroom: Shorter versions of tutorials from YouTube.
    • Calendar: Weekly coffee chats to discuss weekly goals.
    • Members & Leaderboard: Encourages interaction and gamification.

Food Delivery App Overview

  • Objective: Create a food delivery app (pizza delivery) using Flutter and Firebase.
  • Design inspiration found on Dribbble.
  • Use of Firebase for authentication and database management.
  • Overview of application architecture.

App Structure

  • Project Structure:
    • Main.dart: Entry point.
    • App.dart: Contains repository calls.
    • Screens folder for different app screens.
    • Blocks folder for state management using BLoC pattern.
    • Components folder for reusable widgets.

Firebase Setup

  • Firebase Authentication:

    • Use Firebase for user authentication (sign up/sign in).
    • Authentication process will include user info and password.
  • Firestore Database:

    • Structure for storing pizza details and user data.
    • Use Firestore to manage pizza data dynamically.

UI Development

  • Initial Setup:

    • Basic Flutter UI setup.
    • Implement navigation between screens.
  • Building Screens:

    • Home Screen: Displays pizza options in a grid view.
    • Detail Screen: Shows information for selected pizza, including name, description, price, and macros.

Dynamic Data Handling

  • Fetching data from Firestore and displaying it in the UI.
  • Use of BLoC for state management to update UI based on database changes.

Implementing Features

  • Pizza Repository:

    • Class to manage pizza data (CRUD operations) in Firestore.
    • Methods to get pizza data and handle errors.
  • Macros Management:

    • Create a macro class to hold nutritional information.
    • Update UI to display macros for each pizza.

Conclusion

  • Recap of the app's functionalities: authentication, dynamic pizza data display, and the transition between screens.
  • Invitation for feedback and suggestions for future videos.
  • Possible future projects: admin dashboard for pizza management and cart features.