Product ordering application made with Expo/React-Native.
The aim of this project is to create a multiplatform Full-Stack Product Ordering Application & Website tailored towards small businesses and their customers, to be able to manage everything from a single endpoint. Current features include user and admin authentication (with protected routes and separated by authorization), admin dashboard for tracking orders and managing products, realtime order tracking and updating for both types of users, products listings, product details, order creation, cart and payments, profile management pages for users and admins.
Future Goals: push notifications, live support chat
- User & Admin Accounts and protected routes
- Admin Dashboard
- Live order stats for admins: new & delivered per day/week/month/year
- Can create new products and edit existing ones
- Realtime order tracking and updating for users & admins
- Order placement
- Cart and checkout
- Stripe payments
- Expo
- Supabase
- Stripe
- Redux
- Redux-Toolkit
- Tanstack Query
- React-Hook-Form
- Zod
- Tamagui
- React-Native-Reanimated
- Lottie-React-Native
- A coustom version of React-Gifted-Charts to work on the Web too
- Typescript
Remember to update `.env` with your Supabase keys, website URL and Stripe keys!
Example:
_Provided by Supabase_
EXPO_PUBLIC_SUPABASE_URL = //Public Supabase key or Local IP to run locally
EXPO_PUBLIC_SUPABASE_PUBLIC_KEY = //Public Supabase key or Local key to run locally
Check this link for more information about running [Supabase Locally](https://supabase.com/docs/guides/cli/local-development)
_Provided by Stripe_
EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY=
STRIPE_SECRET_KEY=
_Provide Demo Accounts made on Supabase_
__Need to be manually created from the Supabase Dashboard__
EXPO_PUBLIC_ADMIN_DEMO_ACCOUNT_ID=
EXPO_PUBLIC_ADMIN_DEMO_ACCOUNT_PASS=
EXPO_PUBLIC_USER_DEMO_ACCOUNT_ID=
EXPO_PUBLIC_USER_DEMO_ACCOUNT_PASS=
git clone https://github.com/EduardStroescu/ExpoDash.git
npm install or npx expo install
Inside [your_project_name]/node_modules > replace react-native-gifted-charts with the one from: https://github.com/EduardStroescu/ExpoDash/tree/edited-react-native-gifted-charts
Create a Supabase project, open Docker and run the following:
npx supabase login
npx supabase start - From here you also get the keys for running Supabase locally
npx supabase push - to sync remote Supabase db with the local one
npm run start -- install any other required dependencies if asked && open with Expo Go on your mobile device if using Windows || Device Emulator on mac
_For Web /w Vercel_
[More info on](https://docs.expo.dev/distribution/publishing-websites/) and [here for Vercel](https://vercel.com/docs/cli)
npx expo export -p web
npx serve dist --single
npm install -g vercel@latest
vercel build
Copy everything from your dist folder to your new .vercel/output/static
vercel deploy --prebuilt
eas build --platform all
More info here: https://docs.expo.dev/deploy/build-project/