vyayamam / app.py
HEMANTH
only login sys
c3d5eeb
from flask import Flask, request, jsonify, redirect, url_for, render_template, session
import firebase_admin
from firebase_admin import credentials, auth, db
# Initialize Flask app
app = Flask(__name__)
app.secret_key = '9177'
# Firebase Admin SDK Initialization
cred = credentials.Certificate("serviceAccountKey.json")
firebase_admin.initialize_app(cred, {
'databaseURL': 'https://fitnessdb-c9b11-default-rtdb.firebaseio.com/'
})
@app.route('/')
def index():
return render_template('index.html')
# Login Route
@app.route('/register', methods=['POST'])
def register():
data = request.get_json()
# Extract user details from the request
name = data['name']
email = data['email']
password = data['password']
age = data['age']
height = data['height']
weight = data['weight']
max_pullups = data['maxPullups']
min_pullups = data['minPullups']
gender = data['gender']
progress = {}
# Create Firebase user using Firebase Auth
try:
# Create the user in Firebase Authentication
user = auth.create_user(
email=email,
password=password,
display_name=name
)
# Store additional user data in Firebase Realtime Database
user_ref = db.reference(f'users/{user.uid}')
user_ref.set({
'name': name,
'email': email,
'age': age,
'height': height,
'weight': weight,
'maxPullups': max_pullups,
'minPullups': min_pullups,
'gender': gender,
})
new_user_progress = db.reference(f"daywiseprogress")
new_user_progress.set({
'email':email,
'progress':dict()
})
return jsonify({"message": "User registered successfully!"}), 200
except Exception as e:
return jsonify({"error": str(e)}), 400
@app.route('/login', methods=['POST'])
def login():
data = request.get_json()
email = data['email']
password = data['password']
try:
# Authenticate user with Firebase Auth
user = auth.get_user_by_email(email)
# Validate password (Firebase Authentication handles password validation)
# No need to manually validate password here since Firebase Authentication ensures the password matches
ref = db.reference("users")
users_data = ref.get()
for user_id,user_data in users_data.items():
if user_data.get('email') == email:
user_name = user_data['name']
session['user_details'] = user_data
print(user_data['name'])
return jsonify({"message":"sucess"})
except auth.AuthError as e:
return jsonify({"error": "Invalid credentials"}), 401
# Home Route (Display User Credentials)
@app.route('/home', methods=['GET'])
def home():
# Get the ID token from the query parameter
print(session)
progress = session['progress']
if len(progress) == 0:
# Recommended workout code goes here
return render_template("workout.html")
else:
return render_template("currentprogress.html")
if __name__ == '__main__':
app.run(debug=True)