
Introduction to the Flutter restaurant app for multi vendors within the advanced system course for developers.
Create a new Flutter project for a restaurant app, import the assets, transfer from Android Studio to VS Code, and design the UI with authentication and backend endpoints.
Install dependencies by updating pubspec.yaml and removing unused packages, enable get for state management with flutter_hooks, and upload images to Firebase storage while storing only URLs in the database.
Initialize firebase via the firebase cli and flutterfire config for your project. Integrate GetX and screen utils in main.dart with a 428×926 design size and mintex adapts.
Import constants and create a background container using the provided width, height, and colors. Decorate it with a rounded top border and a full-cover restaurant image from assets.
Learn to build a custom bar in Flutter: a stateless container with padding, avatar and restaurant name and address text, using a primary/secondary color scheme and an SVG open indicator.
Create a reusable text widget in Flutter by defining a stateless widget in lib/common, accepting text and style from the parent, with configurable max lines and fade overflow.
Create a reusable text style component in Flutter using Google Fonts (Poppins), with configurable size, color, and font weight, and apply it across text widgets for consistent typography.
Develop a reusable HomeTile stateless widget in Flutter for the multi-vendor restaurant app. Use a GestureDetector onTap with an SVG icon and a reusable text label styled in green.
Create a home tiles widget in a Flutter multi-vendor restaurant app by building a 65 high container with a row of tiles, each with text and asset icons.
Create a stateless tab widget, importing material, that returns a container with symmetric margin, a width from media query, and a height of 25, centering text from a string.
Implement a dynamic Flutter tab bar for a multi-vendor restaurant app by wiring a tab controller with vsync, building a statuses list, and styling with padding, borders, and scrollable tabs.
Configure tab bar label styles for selected and unselected states in the Flutter restaurant app, adjusting text style, size, color, and font weight, and define bottom tab bar views.
Explore Flutter UI design for a multi vendor restaurant app using a TabBarView, building containers with specific heights, colors, padding, and borders, and creating seven order widgets.
Create a tab bar view with multiple children for preparing, ready orders, picked orders, self deliveries, delivered orders, and cancelled orders, linking them on the home page with color cues.
Build a food lists page in a flutter multi-vendor app by wiring a stateless food lists widget, scaffold, a background container, and left to right navigation from the foods tile.
Build a food tile widget using a reusable text component and ListView.builder to render a food list, styled with an off white tile, border radius 12, padding, and height 90.
Design a reusable Flutter food tile that fetches data from the list page, shows a network image with rounded corners, and a horizontally scrolling additives list with price.
Build the add foods page by scaffolding with a back button app bar, a category selection using a page view and page controller, and hooks to fetch backend data.
Set up the backend with npm install and npm start, fetch categories via hooks, and design a choose category widget with tiles showing images, titles, and navigation.
Develop an image upload widget and a food category controller for a Flutter multi-vendor app. Manage category state with GetX and wire uploads to Firebase storage, producing URLs for database.
Learn to build a reusable Flutter bottom button widget with configurable width, height, color, and text, wired by onTap to support back and next navigation in image upload steps.
Configure the image picker in a Flutter multi-vendor app by building an image picker controller, selecting gallery images, handling four image slots, and storing URLs for Firebase storage.
Test the image picker by granting permissions and selecting an image, then configure Firebase functions to upload it, obtain its URL, and display it as a network image.
Upload images to Firebase storage using an image picker, generate unique file names, obtain URLs, and manage logo and cover images with getters and setters.
Implement a two-image upload gate with a snackbar alert, then create reusable text fields for title, description, time, price, and tags in a Flutter multi-vendor app.
Create the food info page and add a reusable CustomTextField for the Flutter restaurant app. Implement TextFormField with decoration and validation to enforce required fields.
Create a Flutter restaurant app screen to add food details using text editing controllers, with a form for title, description, price, prep time, and food types.
Add food types in a flutter multi-vendor app using a foods controller and an observable types list, with text editing controllers and a breakfast example added to the row.
Create and wire text editing controllers for the foods info form, mark fields as required, map title, description, price, and preparation time, and implement navigation.
Create an additives info page in Flutter by building a stateless widget, importing Material, and adding text fields for additive title and price with an add additives button.
Create an additive model with id, title, and price; implement a generate id function using random numbers; wire the controller to add, validate inputs, and display a snack bar.
Master building a dynamic additives list in a Flutter restaurant app by creating a controller, iteratively adding items, and displaying the list when not empty.
Redesign the additives section in a Flutter restaurant app by switching to a row layout, rendering title and price with a reusable text widget, and refining padding, color, and tags.
Enhance the add foods page by implementing food tags with a text field, padding adjustments, and a submit-back workflow for a multi-vendor Flutter app.
Fix the back button flow and implement authentication to enable restaurant creation and maps integration, as the team builds models and prepares submission logic.
Reuse existing authentication, create a password controller with GetX, and build login and registration controllers with their models for a Flutter multi-vendor restaurant app.
Implement login response modeling in the auth flow and enforce account verification via a verification page before restaurant registration can proceed.
Develop an email verification controller with getx, including loading state and otp field, plus verify email logic. Enable login-based navigation to restaurant registration for clients or home for vendors.
Master the Flutter multi vendor registration flow by wiring the backend on port 6018, posting to register, and handling 201 responses with snack bars.
Demonstrates a login flow for a Flutter restaurant app, including registration, post login requests, storing user id and token in local storage, and routing to email verification or registration pages.
Debug the login flow and verification page, fix the endpoint, read the user id from local storage, enable email OTP verification, and switch OTP packages before continuing to restaurant registration.
Demonstrate account verification in the login flow by retrieving user data from local storage, correcting the login endpoint, and validating the email on the verification page using OTP.
Learn otp verification in a flutter multi-vendor restaurant app, validating the code via Postman and updating local storage, with a snackbar and conditional navigation to vendor registration.
Build a restaurant registration page for a Flutter multi-vendor app. Wire text editing controllers for title, time, address, postal code, and search, and integrate Google Maps.
Create a restaurant details page in a Flutter multi-vendor app, with image uploads, address and hours fields, and a map-based location picker via Google Maps.
Manage map markers in Flutter by updating the markers list, enabling draggable markers, and using Google reverse geocoding to retrieve addresses and postal codes from latitude and longitude.
Explains building a Flutter restaurant page details view with column layout, a container with padding, a search field, and a places list from an API supporting selection and detail retrieval.
Implement Maps API autocomplete search in a Flutter restaurant app by validating not empty queries, calling the REST API, parsing JSON, and updating the places list with predictions.
Fix search results by upgrading http to https, and wrap the title in a white container with font style while ensuring the place id is a string for get details.
Fetch place details from the Google Maps API using a place ID and key, then decode the response to obtain latitude, longitude, address, and postal code, updating map to the location.
Explore building next and back buttons in a Flutter multi vendors restaurant app, using a reusable BTN widget, gesture detectors, and a page controller to navigate between pages with transitions.
Create a restaurant registration function in a GetX controller that posts to the restaurant endpoint with token headers, shows a loading state, and displays a snackbar on success or error.
Learn to implement the restaurant registration flow in a flutter multi-vendor app, detailing fields like title and address, and creating the restaurant request model and controller for backend api calls.
Register a restaurant by reusing the foods controller's id generator, retrieving the owner id from storage, validating all fields, and posting the restaurant as json with feedback if missing.
Register king's restaurant in the Flutter multi-vendor app by selecting a logo and background image, setting hours, then log in as a vendor and finalize with logo and cover uploads.
Check for an existing restaurant before creation; prevent duplicates, create and save the restaurant, then promote the user from client to vendor with pending verification.
Develop and integrate a restaurant model for a multi-vendor Flutter app, enabling admin verification of pending restaurants, fetching data via authenticated get requests, and modeling the response with earnings.
Store restaurant data in local storage with box.write using keys like restaurant ID and verification, encode restaurant data, and route from the waiting page to home when verified.
Fetch a restaurant by id from storage, within the restaurant controller convert it to a restaurant response model, and update the endpoint. Debug by logging the URL.
Fetch a restaurant by owner through a backend endpoint, extracting the owner ID from the token and returning a properly encoded response while handling errors.
Fix the waiting page by converting restaurant data from the REST API to JSON, managing access token and verification status, and routing to login, verification, or home after login.
Fix persistent login in a Flutter multi-vendor restaurant app by correcting the restaurant ID, wiring GetStorage, and loading dynamic restaurant data into the UI, with color and layout updates.
This is an advanced app built based on Flutter, Nodejs and Mongodb. Flutter side is based on latest version. We have used GetX and Hooks to manage states.
We have used Nodejs express framework to build the backend UI and api. This backend connects with mongodb for data storage.
Restaurant side implements awesome features. See the features below
1. Management
A restaurant is created with admin panel's support. It must be verified and check with admin. After verification is passed a restaurant can go on business. Restaurant can be close and open mode which helps user to know whether a certain restaurant is taking food orders or not.
2. Creating food
Creating food involves uploading photos, names and mention category. As they create food, they need to select price and sub category along with choosing additives. The additives grow in a dynamic list.
3. Checking orders
Restaurant managers can check order status. Orders could be in the following states
a) pending
b) paid
c) preparing
d) delivering
e) delivered
f) canceled
Each of the above states could be changed from the restaurant side.
4. Earnings
Restaurants are able to see their earnings. Restaurants are able to request a payout from admin.