A high-performance, cinematic e-commerce platform built with Flutter and Supabase. Neo-Marketplace combines modern Glassmorphism design with a production-grade secure payment architecture using Stripe and Supabase Edge Functions.
Neo-Marketplace is a comprehensive shopping application that bridge the gap between concept and production. It allows users to browse products, manage a real-time cart, handle favorites, and perform secure checkouts.
- Cinematic UI: Custom Glassmorphism containers, 3D neumorphic buttons, and fluid Hero animations.
- Secure Payments: Server-side Payment Intent creation via Deno Edge Functions to keep Stripe keys hidden.
- Auth Flow: Supabase-powered OTP verification with custom-designed curved UI headers.
- Dynamic Content: Real-time category filtering and global debounced search.
- Order Lifecycle: Automated order creation, atomic cart clearing, and detailed transaction history.
- Robust Architecture: Built with
Riverpodfor state management andGoRouterfor deep-linked navigation.
| Home Screen | Product Catalog | Product Details | Advanced Filtering |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Shopping Cart | Checkout | Secure Payment | Order Success |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Profile & Settings | Notifications | Live Chat | Biometric Security |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Dashboard | Product Management | Order Management |
|---|---|---|
![]() |
![]() |
![]() |
- Flutter SDK (v3.9.0+)
- Supabase CLI
- A Stripe account (Sandbox/Test mode)
- Create a new Supabase project.
- Run the SQL initialization scripts located in the root directory:
schema.sql(Core tables)user_profiles.sql(Extended user data)orders.sql(Order & Tracking tables)favorites.sql(User favorites)
- Set your Supabase URL and Anon Key in
lib/core/config/supabase_config.dart.
- Deploy the Edge Function for Payment Intents:
npx supabase functions deploy create-payment-intent --no-verify-jwt
- Set your Stripe Secret Key in Supabase environment secrets:
npx supabase secrets set STRIPE_SECRET_KEY=sk_test_... - Update the Publishable Key in
lib/main.dart'sStripeService.init()call.
flutter pub get
flutter runIf you change the source image at assets/images/app_icon.png, run:
dart run flutter_launcher_icons:mainneo_market/
├── lib/
│ ├── core/ # Routing, Theme, Configuration, Services
│ ├── features/ # Feature-based architecture (Home, Cart, Profile, Auth)
│ ├── models/ # Cross-feature data models
│ └── main.dart # Entry point & SDK initialization
├── supabase/
│ └── functions/ # Serverless logic (Deno)
└── assets/
├── icons/ # Custom SVG icons
└── images/ # Premium illustrations
- Android: Requires
minSdk 21andcompileSdk 36(due to Stripe and modern plugin requirements). - Security: The app utilizes Row Level Security (RLS) in Supabase to ensure users can only access their own orders and profile data.
- For Stripe integration issues, refer to the Stripe Documentation.
- For Supabase backend assistance, check out the Supabase Guides.
Contributions make the local community great!
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your Changes (
git commit -m 'Add some AmazingFeature'). - Push to the Branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
- Primary Maintainer: Tsinat Kibru
License: Project is intended for internal use and demonstration purposes. Reference LICENSE if applicable.














