vinay0123 commited on
Commit
960b0ad
·
verified ·
1 Parent(s): e552df6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -6
app.py CHANGED
@@ -62,8 +62,9 @@ detector = MTCNN()
62
  embedder = FaceNet()
63
 
64
  # Configure MongoDB
65
- app.config["MONGO_URI"] = "mongodb+srv://nanduvinay719:76qqKRX4zC97yQun@travis.744fuyn.mongodb.net/?retryWrites=true&w=majority&appName=travis" #config setting
66
- # Update with your MongoDB URI
 
67
  mongo = PyMongo(app)#initialize
68
  haar_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
69
 
@@ -104,6 +105,7 @@ def cnnlogin():
104
  return jsonify({"error": "Roll number is required"}), 400
105
 
106
  # Fetch user data from MongoDB
 
107
  user_data = mongo.db.data.find_one({"RollNumber": rollnumber}, {"CNN_embeddings": 1, "username": 1})
108
  if user_data is None:
109
  return jsonify({"error": "User not found"}), 404
@@ -166,6 +168,7 @@ def recognizeLogin():
166
  if (results[0]['name']==name):
167
  print("done")
168
  today = datetime.now().strftime("%Y-%m-%d")
 
169
  mongo.db.attendance1.update_one(
170
  {'username': results[0]['name']},
171
  {'$set': {today: True}}, # Mark as present for today
@@ -186,6 +189,7 @@ def register():
186
 
187
  print(username)
188
  # Check if user already exists
 
189
  existing_user = mongo.db.data.find_one({"username": username}, {"_id": 0})
190
  if existing_user:
191
  return jsonify({"error": f"User '{username}' already exists"}), 400
@@ -251,6 +255,7 @@ def register():
251
  print(f"Warning: Could not save model weights in current directory: {e2}")
252
 
253
  # Create user data
 
254
  id = mongo.db.data.count_documents({}) + 1
255
  user_data = {
256
  'RollNumber': rollnumber,
@@ -265,6 +270,7 @@ def register():
265
 
266
  # Insert into MongoDB
267
  mongo.db.data.insert_one(user_data)
 
268
  mongo.db.attendance1.insert_one({"username": rollnumber, "id": id})
269
  # Reload embeddings
270
  reload_embeddings()
@@ -274,11 +280,13 @@ def register():
274
  # Load embeddings from MongoDB for recognition
275
  @app.route('/get_users', methods=['GET'])
276
  def get_users():
 
277
  users = list(mongo.db.data.find({}, {"id": 1, "username": 1})) # Fetch only _id and username
278
  user_count = len(users)
279
  return jsonify({"users": [user['username'] for user in users], "count": user_count})
280
 
281
  def load_embeddings_from_db():
 
282
  users = list(mongo.db.data.find())
283
  face_data = []# facenet embeddings
284
  labels = [] # id 1,2,3,..
@@ -385,6 +393,7 @@ def recognize_faces_in_image(image):
385
  @app.route('/users/<username>/images', methods=['GET'])
386
  def get_user_images(username):
387
  username = str(username).upper()
 
388
  details = mongo.db.data.find_one({"username": username},{"_id":0,"embeddings":0,"CNN_embeddings":0})
389
  if not details:
390
  details = mongo.db.data.find_one({"RollNumber": username},{"_id":0,"embeddings":0,"CNN_embeddings":0})
@@ -411,6 +420,7 @@ def recognize():
411
  today = datetime.now().strftime("%Y-%m-%d")
412
  for result in results:
413
  if result['name'] != "Unknown": # Only log attendance for recognized users
 
414
  mongo.db.attendance1.update_one(
415
  {'username': result['name']},
416
  {'$set': {today: True}}, # Mark as present for today
@@ -438,11 +448,13 @@ def user_recognize():
438
  @app.route('/user_attendance/<username>', methods=['GET'])
439
  def get_user_attendance(username):
440
  # Check if the user exists in the database
 
441
  user = mongo.db.data.find_one({'RollNumber': username})
442
  if user is None:
443
  return jsonify({"error": "User not found"}), 404
444
  print(user['username'])
445
  # Fetch the attendance data for the user
 
446
  attendance = mongo.db.attendance1.find_one({'username': username}, {'_id': 0,"username":0,"id":0})
447
  print(attendance)
448
  if attendance is None:
@@ -454,8 +466,6 @@ def get_user_attendance(username):
454
  #attendance
455
  @app.route('/attendance',methods=['GET'])
456
  def get_attendance():
 
457
  records = list(mongo.db.attendance1.find({}, {"_id": 0}))
458
- return jsonify({"attendance": records})
459
-
460
- # if __name__ == '__main__':
461
- # app.run(debug=True)
 
62
  embedder = FaceNet()
63
 
64
  # Configure MongoDB
65
+ # The URI includes the database name 'travis_db' directly in the path.
66
+ # This is the recommended way to specify the database.
67
+ app.config["MONGO_URI"] = "mongodb+srv://nanduvinay719:76qqKRX4zC97yQun@travis.744fuyn.mongodb.net/travis_db?retryWrites=true&w=majority&appName=travis"
68
  mongo = PyMongo(app)#initialize
69
  haar_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
70
 
 
105
  return jsonify({"error": "Roll number is required"}), 400
106
 
107
  # Fetch user data from MongoDB
108
+ # Collection name 'data' is already correctly used here
109
  user_data = mongo.db.data.find_one({"RollNumber": rollnumber}, {"CNN_embeddings": 1, "username": 1})
110
  if user_data is None:
111
  return jsonify({"error": "User not found"}), 404
 
168
  if (results[0]['name']==name):
169
  print("done")
170
  today = datetime.now().strftime("%Y-%m-%d")
171
+ # Collection name 'attendance1' is already correctly used here
172
  mongo.db.attendance1.update_one(
173
  {'username': results[0]['name']},
174
  {'$set': {today: True}}, # Mark as present for today
 
189
 
190
  print(username)
191
  # Check if user already exists
192
+ # Collection name 'data' is already correctly used here
193
  existing_user = mongo.db.data.find_one({"username": username}, {"_id": 0})
194
  if existing_user:
195
  return jsonify({"error": f"User '{username}' already exists"}), 400
 
255
  print(f"Warning: Could not save model weights in current directory: {e2}")
256
 
257
  # Create user data
258
+ # Collection name 'data' is already correctly used here
259
  id = mongo.db.data.count_documents({}) + 1
260
  user_data = {
261
  'RollNumber': rollnumber,
 
270
 
271
  # Insert into MongoDB
272
  mongo.db.data.insert_one(user_data)
273
+ # Collection name 'attendance1' is already correctly used here
274
  mongo.db.attendance1.insert_one({"username": rollnumber, "id": id})
275
  # Reload embeddings
276
  reload_embeddings()
 
280
  # Load embeddings from MongoDB for recognition
281
  @app.route('/get_users', methods=['GET'])
282
  def get_users():
283
+ # Collection name 'data' is already correctly used here
284
  users = list(mongo.db.data.find({}, {"id": 1, "username": 1})) # Fetch only _id and username
285
  user_count = len(users)
286
  return jsonify({"users": [user['username'] for user in users], "count": user_count})
287
 
288
  def load_embeddings_from_db():
289
+ # Collection name 'data' is already correctly used here
290
  users = list(mongo.db.data.find())
291
  face_data = []# facenet embeddings
292
  labels = [] # id 1,2,3,..
 
393
  @app.route('/users/<username>/images', methods=['GET'])
394
  def get_user_images(username):
395
  username = str(username).upper()
396
+ # Collection name 'data' is already correctly used here
397
  details = mongo.db.data.find_one({"username": username},{"_id":0,"embeddings":0,"CNN_embeddings":0})
398
  if not details:
399
  details = mongo.db.data.find_one({"RollNumber": username},{"_id":0,"embeddings":0,"CNN_embeddings":0})
 
420
  today = datetime.now().strftime("%Y-%m-%d")
421
  for result in results:
422
  if result['name'] != "Unknown": # Only log attendance for recognized users
423
+ # Collection name 'attendance1' is already correctly used here
424
  mongo.db.attendance1.update_one(
425
  {'username': result['name']},
426
  {'$set': {today: True}}, # Mark as present for today
 
448
  @app.route('/user_attendance/<username>', methods=['GET'])
449
  def get_user_attendance(username):
450
  # Check if the user exists in the database
451
+ # Collection name 'data' is already correctly used here
452
  user = mongo.db.data.find_one({'RollNumber': username})
453
  if user is None:
454
  return jsonify({"error": "User not found"}), 404
455
  print(user['username'])
456
  # Fetch the attendance data for the user
457
+ # Collection name 'attendance1' is already correctly used here
458
  attendance = mongo.db.attendance1.find_one({'username': username}, {'_id': 0,"username":0,"id":0})
459
  print(attendance)
460
  if attendance is None:
 
466
  #attendance
467
  @app.route('/attendance',methods=['GET'])
468
  def get_attendance():
469
+ # Collection name 'attendance1' is already correctly used here
470
  records = list(mongo.db.attendance1.find({}, {"_id": 0}))
471
+ return jsonify({"attendance": records})