from flask import Flask, render_template, request, redirect, url_for, jsonify from simple_salesforce import Salesforce import pandas as pd # Initialize Flask app app = Flask(__name__) # Salesforce connection sf = Salesforce(username='diggavalli98@gmail.com', password='Sati@1020', security_token='sSSjyhInIsUohKpG8sHzty2q') # Utility functions def check_credentials(email, password): result = sf.query(f"SELECT Id FROM Customer_Login__c WHERE Email__c = '{email}' AND Password__c = '{password}'") return result['records'][0]['Id'] if result['records'] else None def save_user(name, phone, email, password): try: sf.Customer_Login__c.create({ 'Name': name, 'Email__c': email, 'Password__c': password, 'Phone_Number__c': phone }) return True except: return False def load_menu(): result = sf.query("SELECT Dish_Name__c, Price__c, Description__c, Image_URL__c FROM Menu_Item__c") return pd.DataFrame(result['records']) def submit_order(user_id, cart_items): total_price = sum(item['itemTotal'] for item in cart_items) order_items = "\n".join([f"{item['name']} (x{item['quantity']})" for item in cart_items]) sf.Order__c.create({ 'Customer_Login__c': user_id, 'Order_Item__c': order_items, 'Total_Price__c': total_price, 'Order_Status__c': 'Pending' }) return True @app.route('/') def login(): return render_template('login.html') @app.route('/login', methods=['POST']) def handle_login(): email = request.form['email'] password = request.form['password'] user_id = check_credentials(email, password) if user_id: return redirect(url_for('menu')) else: return render_template('login.html', error="Invalid credentials.") @app.route('/signup') def signup(): return render_template('signup.html') @app.route('/signup', methods=['POST']) def handle_signup(): name = request.form['name'] email = request.form['email'] phone = request.form['phone'] password = request.form['password'] if save_user(name, phone, email, password): return redirect(url_for('login')) else: return render_template('signup.html', error="Email already exists.") @app.route('/menu') def menu(): menu_items = load_menu() return render_template('menu.html', items=menu_items.to_dict(orient='records')) @app.route('/cart', methods=['POST']) def cart(): cart_data = request.get_json() user_id = cart_data.get('user_id') cart_items = cart_data.get('items') submit_order(user_id, cart_items) return jsonify({'status': 'success'}) if __name__ == '__main__': app.run(debug=True)