- ✅ User registration with email, phone, name, and password
- ✅ Secure login with backend session token storage
- ✅ Logout functionality with session cleanup
- ✅ Customer account dashboard showing profile and order history
- ✅ Session persistence across browser refreshes
- ✅ Create orders with customer details and items
- ✅ Track order status (Pending → Confirmed → Shipped → Delivered)
- ✅ Order history in customer account dashboard
- ✅ Track payment status per order
- ✅ Admin can view all orders and customer details
- ✅ Flutterwave Integration - Automatic payment processing
- ✅ Bank Transfer Option - Manual verification with admin confirmation
- ✅ Auto Payment Confirmation - Orders automatically confirmed when payment verified
- ✅ Payment webhook support for instant confirmation
- ✅ Automatic order status update on successful payment (Pending → Confirmed)
- ✅ View all orders with customer information
- ✅ Real-time order statistics:
- Total orders count
- Pending orders
- Confirmed orders
- Shipped orders
- Total revenue
- Verified/Pending payment amounts
- Total customers count
- ✅ Admin actions:
- Confirm orders and verify payments
- Mark orders as shipped with tracking number
- Cancel orders
- Access restricted to admin account only
- ✅ Real-time chat interface on website
- ✅ Customer-Admin communication
- ✅ Support message history
- ✅ Persistent message storage
- ✅ Automated initial responses
- ✅ Manual admin responses capability
- ✅ Chat accessible alongside WhatsApp support
- Email:
admin@gabyclassy.com - Password:
Admin@123 - Access to complete order management and dashboard
pip install -r requirements.txtCreate a .env file in the project root:
FLUTTERWAVE_SECRET_KEY=your_flutterwave_secret_key
FLUTTERWAVE_PUBLIC_KEY=your_flutterwave_public_key
ADMIN_EMAIL=admin@gabyclassy.com
ADMIN_PASSWORD=Admin@123
python payment.pyServer runs on http://localhost:3000
Open f:\Gabriel collection\index.html\html in your browser
The frontend is pre-configured to connect to http://localhost:3000. Update the API_URL in the HTML if needed.
Replace FLUTTERWAVE_PUBLIC_KEY_HERE in the HTML payment section with your actual Flutterwave public key.
- Register → Click "Login" → Switch to "Register" tab
- Login → Click "Login" → Enter credentials
- Browse Products → Add items to cart
- Checkout → Click cart button
- Payment → Choose Flutterwave or Bank Transfer
- View Orders → Click profile → See order history
- Live Support → Click chat button for assistance
- Login with admin@gabyclassy.com / Admin@123
- Access Dashboard → Click "Admin" button
- View Statistics → See KPIs at a glance
- Manage Orders →
- Confirm pending orders (verifies payment)
- Ship confirmed orders (add tracking)
- Cancel any order
- View Live Chat → See customer support conversations
POST /register- Register new userPOST /login- Login userPOST /logout- Logout userGET /current-user- Get logged-in user info
POST /create-order- Create new orderGET /orders- Get user's orders or all orders (admin)GET /orders/<order_id>- Get order detailsPUT /orders/<order_id>- Update order (admin only)POST /orders/<order_id>/confirm- Confirm order (admin only)POST /orders/<order_id>/ship- Ship order (admin only)
POST /initialize-payment- Initialize Flutterwave paymentGET /verify-payment- Verify payment statusPOST /webhook/flutterwave- Flutterwave webhook
GET /support/messages- Get all support messagesPOST /support/messages- Send support messagePOST /support/messages/clear- Clear all messages (admin only)
GET /dashboard-stats- Get admin statistics (admin only)
-
Session Token Authentication
- All admin and order endpoints require valid session token
- Tokens stored in browser localStorage
- Session cleanup on logout
-
Role-Based Access Control
- Admin endpoints verify user role
- Customers can only access their own orders
- Admin can view all orders and statistics
-
Password Security
- Note: In production, implement password hashing (bcrypt)
- Currently using plain text for demo (NOT for production)
Currently using in-memory storage (for demo). For production, implement:
- SQLite for local development
- PostgreSQL for production
- Redis for session management
-
Email Notifications
- Order confirmation emails
- Payment receipts
- Shipping updates
-
Real-Time Updates (WebSocket)
- Live order status updates
- Real-time admin notifications
- Chat notifications
-
SMS Updates
- Order confirmations
- Shipping notifications
- Support alerts
-
Product Management
- Admin product upload
- Inventory tracking
- Stock management
-
Analytics
- Customer behavior
- Sales trends
- Popular products
For issues, contact:
- WhatsApp: 09167240883 or 07051277016
- Email: nnanwubagabriel@gmail.com
- Live Chat: Available on website
- All data is currently in-memory. Data resets when server restarts.
- For production, migrate to persistent database
- Update Flutterwave credentials with your actual keys
- Test payment flow with Flutterwave test credentials first
Last Updated: April 6, 2026 Version: 1.0