-
Notifications
You must be signed in to change notification settings - Fork 8
Backend Documentation (backend)
This page contains documentation for the files in the /backend
directory of the Github repo. This page is regularly updated when new changes are added to these files.
/aws_helpers/dynamo_db_utils
/common
/dl
/ml
This file is a very important file in the backend. It essentially acts as the point of entry into the backend
-
ml_drive()
: Function that trains classical ML model based on user specifications -
dl_drive()
: Function that trains classical DL model based on user specifications -
root()
: Flask Route to send files from one directory to another -
train_and_output()
: Flask-SocketIO event handler that receives data regarding the user's DL/ML model, and callsdl_drive
orml_drive
to train the model (frontend will send the event usingsocket.io-client
and the event namerunTraining
). It sends back the results to the frontend in the form of an Event. -
send_email_route()
: Flask-SocketIO event handler to send an email notification to the user about their model + training result attachments. This function acts as a wrapper to an AWS API Gateway endpoint that invokes a lambda to send email notification (via AWS SES) through thesend_email()
function. TLDR, the flow issend_email_route()
->send_email()
-> API Gateway -> AWS Lambda -> AWS SES -
frontend_log()
: Flask-SocketIO event handler that logs any log message sent from the frontend onto the Flask Debug panel in the console. -
update_user_settings()
: Flask-SocketIO event creator that sends an Event containing the result of updating an authenticated user's data (TODO). -
send_progress()
: Flask-SocketIO event creator that sends an Event containing the model's real-time training progress to the frontend. - 'getUserProgressData()': Flask-SocketIO event handler that, given a userID, fetches the corresponding user progress data (consisting of points earned for each question in each module/section) from the 'userProgress' DynamoDB table and returns it to the frontend
- 'updateUserProgressData()': Flask-SocketIO event handler that, given a userID, moduleID, sectionID, and questionID, updates the DynamoDB table entry for the user by incrementing the respective point value.
Refer to Frontend-Backend Communication Documentation for the usage of socket.io for this dual asynchronous communication between backend and frontend.
Make sure that your terminal is at ~/Deep-Learning-Playground
and run python -m backend.driver
. The -m
is a tag to "run as module"
Note that we run the app on host 0.0.0.0 to allow for backend and frontend to be served on the same port. It's crucial for our app to work properly in production.
- Home
- Terraform
- Bearer-Token-Gen-Script
- Frontend-Backend Communication Documentation
- Backend Documentation (backend)
-
driver.py
- AWS Helper Files (backend.aws_helpers)
- Dynamo DB Utility Files (aws_helpers.dynamo_db_utils)
- AWS Secrets Utility Files (aws_secrets_utils)
- AWS Batch Utility Files (aws_batch_utils)
- Firebase Helper Files (backend.firebase_helpers)
- Common Files (backend.common)
-
constants.py
-
dataset.py
-
default_datasets.py
-
email_notifier.py
-
loss_functions.py
-
optimizer.py
-
utils.py
- Deep Learning Files (backend.dl)
- Machine Learning Files (backend.ml)
- Frontend Documentation
- Bug Manual
- Developer Runbook
- Examples to locally test DLP
- Knowledge Share