Repository files navigation

Welcome to the Trainer App

This app is designed to help personal trainers and their clients manage their workouts. It includes the following models:

Trainer Client Workout The Trainer model stores information about the trainer, including their name and email address.

The Client model stores information about each client, including their name and email address.

The Workout model stores information about each workout, including its name and description.

This app is built using Flask, SQLAlchemy, and Python.

How to Install

  • Be sure to have postgres installed on your machine
  • Fork this repo then create a new branch for your changes
  • In the terminal cd to the new directory pt-database cd pt-database
  • Create a new virtual environment python3 -m venv venv
  • Next install the dependencies pip install -r requirements.txt
  • In the terminal run createdb <database name> replace database name with the name you want
  • In the root directory create a .env file and add your database URI postgresql://<username>:<password>@localhost/<database name>
  • Run the seed.py file to pre-fill the database, type python3 seed.py in the terminal and press enter
  • Login to the database type, psql <database name> in the terminal
  • Finally type \dt and you should see the schema

Database Models

This section contains the database models used in this application.

Trainer

The Trainer model is used to store information about trainers.

AttributeTypeDescription
idStringUnique identifier for the trainer
nameStringName of the trainer
emailStringEmail address of the trainer
clientsArrayArray of associated Client objects

Client The Client model is used to store information about clients.

AttributeTypeDescription
idStringUnique identifier for the client
trainer_idStringUnique identifier for the trainer
nameStringName of the client
emailStringEmail address of the client
workoutsArrayArray of associated Workout objects

Workout The Workout model is used to store information about workouts.

AttributeTypeDescription
idStringUnique identifier for the workout
client_idStringUnique identifier for the client
nameStringName of the workout
descriptionStringDescription of the workout

MealPlan

This is a class that represents a meal plan in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan
dayStringDay of the week for a particular meal
meal_typeStringType of meal (e.g. breakfast, lunch, dinner)
mealStringName of the meal
caloriesFloatNumber of calories in the meal
proteinFloatAmount of protein in the meal
carbsFloatAmount of carbohydrates in the meal
fatFloatAmount of fat in the meal
meal_plan_idIntegerForeign key to the id column of the meal_plan_summary table

Relationships

  • meal_plan: A relationship to the MealPlanSummary class via the meal_plan attribute. This relationship is defined in the MealPlan class.

MealPlanSummary

This is a class that represents a meal plan summary in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan summary
nameStringName of the meal plan

Relationships

  • meal_plan: A relationship to the MealPlan class via the meal_plan attribute. This relationship is defined in the MealPlanSummary class.

Usage

To start writing SQL queries against the database login by typing psql <database name> in the terminal. From there you can view the tables by typing \dt there you will be able to see the tables in the database. You can then begin typing queries.

Sample Queries

Insert Data

INSERT INTO trainer (id, name, email) VALUES ('123', 'John Doe', 'john@example.com');

INSERT INTO client (id, trainer_id, name, email) VALUES ('456', '123', 'Jane Doe', 'jane@example.com');

INSERT INTO workout (id, client_id, name, description) VALUES ('789', '456', 'Workout 1', 'This is a sample workout');

Select Data

SELECT * FROM trainer;

SELECT * FROM client;

SELECT * FROM workout;

Troubleshooting Steps

  1. Check your database connection: Verify that your Flask app is able to connect to the PostgreSQL database. Check that the database server is running and that your app's database configuration settings are correct. If the connection is unsuccessful, check the error message to identify the cause of the problem.

  2. Verify that the database schema exists: Make sure that the database schema you are using in your Flask app has been created in the PostgreSQL database. If the schema does not exist, create it using the appropriate SQL commands or by using a database migration tool like Alembic.

  3. Check your SQL queries: Review your SQL queries to ensure that they are correct and formatted properly. Use a tool like pgAdmin to test your queries directly against the PostgreSQL database. You can also use logging to see the SQL queries generated by your Flask app.

  4. Debug your Flask app: Enable Flask's built-in debugging features to help identify any issues with your app's code. This can include using Flask's debug=True option, setting breakpoints in your code, and using logging to track the flow of your app.

  5. Check your PostgreSQL logs: Examine the PostgreSQL server logs to see if there are any errors or issues reported by the database server. This can help identify problems with your database configuration, queries, or schema.

  6. Check your dependencies: Make sure that all the dependencies used by your Flask app and PostgreSQL database are up-to-date and compatible with each other. Use a virtual environment to isolate your app's dependencies and prevent conflicts.

  7. Verify your server configuration: Check your server configuration to ensure that it is set up correctly to run your Flask app and PostgreSQL database. This can include verifying the installation of required packages, checking system resources like memory and disk space, and making sure that the server is configured to allow connections to the database.

By following these troubleshooting steps, you can identify and resolve issues with your Flask app and PostgreSQL database, and ensure that your app is running smoothly.

About

A growing Personal Training database to store client workouts and meal plans. Contributions Welcome!

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Welcome to the Trainer App

This app is designed to help personal trainers and their clients manage their workouts. It includes the following models:

Trainer Client Workout The Trainer model stores information about the trainer, including their name and email address.

The Client model stores information about each client, including their name and email address.

The Workout model stores information about each workout, including its name and description.

This app is built using Flask, SQLAlchemy, and Python.

How to Install

  • Be sure to have postgres installed on your machine
  • Fork this repo then create a new branch for your changes
  • In the terminal cd to the new directory pt-database cd pt-database
  • Create a new virtual environment python3 -m venv venv
  • Next install the dependencies pip install -r requirements.txt
  • In the terminal run createdb <database name> replace database name with the name you want
  • In the root directory create a .env file and add your database URI postgresql://<username>:<password>@localhost/<database name>
  • Run the seed.py file to pre-fill the database, type python3 seed.py in the terminal and press enter
  • Login to the database type, psql <database name> in the terminal
  • Finally type \dt and you should see the schema

Database Models

This section contains the database models used in this application.

Trainer

The Trainer model is used to store information about trainers.

AttributeTypeDescription
idStringUnique identifier for the trainer
nameStringName of the trainer
emailStringEmail address of the trainer
clientsArrayArray of associated Client objects

Client The Client model is used to store information about clients.

AttributeTypeDescription
idStringUnique identifier for the client
trainer_idStringUnique identifier for the trainer
nameStringName of the client
emailStringEmail address of the client
workoutsArrayArray of associated Workout objects

Workout The Workout model is used to store information about workouts.

AttributeTypeDescription
idStringUnique identifier for the workout
client_idStringUnique identifier for the client
nameStringName of the workout
descriptionStringDescription of the workout

MealPlan

This is a class that represents a meal plan in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan
dayStringDay of the week for a particular meal
meal_typeStringType of meal (e.g. breakfast, lunch, dinner)
mealStringName of the meal
caloriesFloatNumber of calories in the meal
proteinFloatAmount of protein in the meal
carbsFloatAmount of carbohydrates in the meal
fatFloatAmount of fat in the meal
meal_plan_idIntegerForeign key to the id column of the meal_plan_summary table

Relationships

  • meal_plan: A relationship to the MealPlanSummary class via the meal_plan attribute. This relationship is defined in the MealPlan class.

MealPlanSummary

This is a class that represents a meal plan summary in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan summary
nameStringName of the meal plan

Relationships

  • meal_plan: A relationship to the MealPlan class via the meal_plan attribute. This relationship is defined in the MealPlanSummary class.

Usage

To start writing SQL queries against the database login by typing psql <database name> in the terminal. From there you can view the tables by typing \dt there you will be able to see the tables in the database. You can then begin typing queries.

Sample Queries

Insert Data

INSERT INTO trainer (id, name, email) VALUES ('123', 'John Doe', 'john@example.com');

INSERT INTO client (id, trainer_id, name, email) VALUES ('456', '123', 'Jane Doe', 'jane@example.com');

INSERT INTO workout (id, client_id, name, description) VALUES ('789', '456', 'Workout 1', 'This is a sample workout');

Select Data

SELECT * FROM trainer;

SELECT * FROM client;

SELECT * FROM workout;

Troubleshooting Steps

  1. Check your database connection: Verify that your Flask app is able to connect to the PostgreSQL database. Check that the database server is running and that your app's database configuration settings are correct. If the connection is unsuccessful, check the error message to identify the cause of the problem.

  2. Verify that the database schema exists: Make sure that the database schema you are using in your Flask app has been created in the PostgreSQL database. If the schema does not exist, create it using the appropriate SQL commands or by using a database migration tool like Alembic.

  3. Check your SQL queries: Review your SQL queries to ensure that they are correct and formatted properly. Use a tool like pgAdmin to test your queries directly against the PostgreSQL database. You can also use logging to see the SQL queries generated by your Flask app.

  4. Debug your Flask app: Enable Flask's built-in debugging features to help identify any issues with your app's code. This can include using Flask's debug=True option, setting breakpoints in your code, and using logging to track the flow of your app.

  5. Check your PostgreSQL logs: Examine the PostgreSQL server logs to see if there are any errors or issues reported by the database server. This can help identify problems with your database configuration, queries, or schema.

  6. Check your dependencies: Make sure that all the dependencies used by your Flask app and PostgreSQL database are up-to-date and compatible with each other. Use a virtual environment to isolate your app's dependencies and prevent conflicts.

  7. Verify your server configuration: Check your server configuration to ensure that it is set up correctly to run your Flask app and PostgreSQL database. This can include verifying the installation of required packages, checking system resources like memory and disk space, and making sure that the server is configured to allow connections to the database.

By following these troubleshooting steps, you can identify and resolve issues with your Flask app and PostgreSQL database, and ensure that your app is running smoothly.

About

A growing Personal Training database to store client workouts and meal plans. Contributions Welcome!

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Welcome to the Trainer App

This app is designed to help personal trainers and their clients manage their workouts. It includes the following models:

Trainer Client Workout The Trainer model stores information about the trainer, including their name and email address.

The Client model stores information about each client, including their name and email address.

The Workout model stores information about each workout, including its name and description.

This app is built using Flask, SQLAlchemy, and Python.

How to Install

  • Be sure to have postgres installed on your machine
  • Fork this repo then create a new branch for your changes
  • In the terminal cd to the new directory pt-database cd pt-database
  • Create a new virtual environment python3 -m venv venv
  • Next install the dependencies pip install -r requirements.txt
  • In the terminal run createdb <database name> replace database name with the name you want
  • In the root directory create a .env file and add your database URI postgresql://<username>:<password>@localhost/<database name>
  • Run the seed.py file to pre-fill the database, type python3 seed.py in the terminal and press enter
  • Login to the database type, psql <database name> in the terminal
  • Finally type \dt and you should see the schema

Database Models

This section contains the database models used in this application.

Trainer

The Trainer model is used to store information about trainers.

AttributeTypeDescription
idStringUnique identifier for the trainer
nameStringName of the trainer
emailStringEmail address of the trainer
clientsArrayArray of associated Client objects

Client The Client model is used to store information about clients.

AttributeTypeDescription
idStringUnique identifier for the client
trainer_idStringUnique identifier for the trainer
nameStringName of the client
emailStringEmail address of the client
workoutsArrayArray of associated Workout objects

Workout The Workout model is used to store information about workouts.

AttributeTypeDescription
idStringUnique identifier for the workout
client_idStringUnique identifier for the client
nameStringName of the workout
descriptionStringDescription of the workout

MealPlan

This is a class that represents a meal plan in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan
dayStringDay of the week for a particular meal
meal_typeStringType of meal (e.g. breakfast, lunch, dinner)
mealStringName of the meal
caloriesFloatNumber of calories in the meal
proteinFloatAmount of protein in the meal
carbsFloatAmount of carbohydrates in the meal
fatFloatAmount of fat in the meal
meal_plan_idIntegerForeign key to the id column of the meal_plan_summary table

Relationships

  • meal_plan: A relationship to the MealPlanSummary class via the meal_plan attribute. This relationship is defined in the MealPlan class.

MealPlanSummary

This is a class that represents a meal plan summary in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan summary
nameStringName of the meal plan

Relationships

  • meal_plan: A relationship to the MealPlan class via the meal_plan attribute. This relationship is defined in the MealPlanSummary class.

Usage

To start writing SQL queries against the database login by typing psql <database name> in the terminal. From there you can view the tables by typing \dt there you will be able to see the tables in the database. You can then begin typing queries.

Sample Queries

Insert Data

INSERT INTO trainer (id, name, email) VALUES ('123', 'John Doe', 'john@example.com');

INSERT INTO client (id, trainer_id, name, email) VALUES ('456', '123', 'Jane Doe', 'jane@example.com');

INSERT INTO workout (id, client_id, name, description) VALUES ('789', '456', 'Workout 1', 'This is a sample workout');

Select Data

SELECT * FROM trainer;

SELECT * FROM client;

SELECT * FROM workout;

Troubleshooting Steps

  1. Check your database connection: Verify that your Flask app is able to connect to the PostgreSQL database. Check that the database server is running and that your app's database configuration settings are correct. If the connection is unsuccessful, check the error message to identify the cause of the problem.

  2. Verify that the database schema exists: Make sure that the database schema you are using in your Flask app has been created in the PostgreSQL database. If the schema does not exist, create it using the appropriate SQL commands or by using a database migration tool like Alembic.

  3. Check your SQL queries: Review your SQL queries to ensure that they are correct and formatted properly. Use a tool like pgAdmin to test your queries directly against the PostgreSQL database. You can also use logging to see the SQL queries generated by your Flask app.

  4. Debug your Flask app: Enable Flask's built-in debugging features to help identify any issues with your app's code. This can include using Flask's debug=True option, setting breakpoints in your code, and using logging to track the flow of your app.

  5. Check your PostgreSQL logs: Examine the PostgreSQL server logs to see if there are any errors or issues reported by the database server. This can help identify problems with your database configuration, queries, or schema.

  6. Check your dependencies: Make sure that all the dependencies used by your Flask app and PostgreSQL database are up-to-date and compatible with each other. Use a virtual environment to isolate your app's dependencies and prevent conflicts.

  7. Verify your server configuration: Check your server configuration to ensure that it is set up correctly to run your Flask app and PostgreSQL database. This can include verifying the installation of required packages, checking system resources like memory and disk space, and making sure that the server is configured to allow connections to the database.

By following these troubleshooting steps, you can identify and resolve issues with your Flask app and PostgreSQL database, and ensure that your app is running smoothly.

About

A growing Personal Training database to store client workouts and meal plans. Contributions Welcome!

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Welcome to the Trainer App

This app is designed to help personal trainers and their clients manage their workouts. It includes the following models:

Trainer Client Workout The Trainer model stores information about the trainer, including their name and email address.

The Client model stores information about each client, including their name and email address.

The Workout model stores information about each workout, including its name and description.

This app is built using Flask, SQLAlchemy, and Python.

How to Install

  • Be sure to have postgres installed on your machine
  • Fork this repo then create a new branch for your changes
  • In the terminal cd to the new directory pt-database cd pt-database
  • Create a new virtual environment python3 -m venv venv
  • Next install the dependencies pip install -r requirements.txt
  • In the terminal run createdb <database name> replace database name with the name you want
  • In the root directory create a .env file and add your database URI postgresql://<username>:<password>@localhost/<database name>
  • Run the seed.py file to pre-fill the database, type python3 seed.py in the terminal and press enter
  • Login to the database type, psql <database name> in the terminal
  • Finally type \dt and you should see the schema

Database Models

This section contains the database models used in this application.

Trainer

The Trainer model is used to store information about trainers.

AttributeTypeDescription
idStringUnique identifier for the trainer
nameStringName of the trainer
emailStringEmail address of the trainer
clientsArrayArray of associated Client objects

Client The Client model is used to store information about clients.

AttributeTypeDescription
idStringUnique identifier for the client
trainer_idStringUnique identifier for the trainer
nameStringName of the client
emailStringEmail address of the client
workoutsArrayArray of associated Workout objects

Workout The Workout model is used to store information about workouts.

AttributeTypeDescription
idStringUnique identifier for the workout
client_idStringUnique identifier for the client
nameStringName of the workout
descriptionStringDescription of the workout

MealPlan

This is a class that represents a meal plan in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan
dayStringDay of the week for a particular meal
meal_typeStringType of meal (e.g. breakfast, lunch, dinner)
mealStringName of the meal
caloriesFloatNumber of calories in the meal
proteinFloatAmount of protein in the meal
carbsFloatAmount of carbohydrates in the meal
fatFloatAmount of fat in the meal
meal_plan_idIntegerForeign key to the id column of the meal_plan_summary table

Relationships

  • meal_plan: A relationship to the MealPlanSummary class via the meal_plan attribute. This relationship is defined in the MealPlan class.

MealPlanSummary

This is a class that represents a meal plan summary in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan summary
nameStringName of the meal plan

Relationships

  • meal_plan: A relationship to the MealPlan class via the meal_plan attribute. This relationship is defined in the MealPlanSummary class.

Usage

To start writing SQL queries against the database login by typing psql <database name> in the terminal. From there you can view the tables by typing \dt there you will be able to see the tables in the database. You can then begin typing queries.

Sample Queries

Insert Data

INSERT INTO trainer (id, name, email) VALUES ('123', 'John Doe', 'john@example.com');

INSERT INTO client (id, trainer_id, name, email) VALUES ('456', '123', 'Jane Doe', 'jane@example.com');

INSERT INTO workout (id, client_id, name, description) VALUES ('789', '456', 'Workout 1', 'This is a sample workout');

Select Data

SELECT * FROM trainer;

SELECT * FROM client;

SELECT * FROM workout;

Troubleshooting Steps

  1. Check your database connection: Verify that your Flask app is able to connect to the PostgreSQL database. Check that the database server is running and that your app's database configuration settings are correct. If the connection is unsuccessful, check the error message to identify the cause of the problem.

  2. Verify that the database schema exists: Make sure that the database schema you are using in your Flask app has been created in the PostgreSQL database. If the schema does not exist, create it using the appropriate SQL commands or by using a database migration tool like Alembic.

  3. Check your SQL queries: Review your SQL queries to ensure that they are correct and formatted properly. Use a tool like pgAdmin to test your queries directly against the PostgreSQL database. You can also use logging to see the SQL queries generated by your Flask app.

  4. Debug your Flask app: Enable Flask's built-in debugging features to help identify any issues with your app's code. This can include using Flask's debug=True option, setting breakpoints in your code, and using logging to track the flow of your app.

  5. Check your PostgreSQL logs: Examine the PostgreSQL server logs to see if there are any errors or issues reported by the database server. This can help identify problems with your database configuration, queries, or schema.

  6. Check your dependencies: Make sure that all the dependencies used by your Flask app and PostgreSQL database are up-to-date and compatible with each other. Use a virtual environment to isolate your app's dependencies and prevent conflicts.

  7. Verify your server configuration: Check your server configuration to ensure that it is set up correctly to run your Flask app and PostgreSQL database. This can include verifying the installation of required packages, checking system resources like memory and disk space, and making sure that the server is configured to allow connections to the database.

By following these troubleshooting steps, you can identify and resolve issues with your Flask app and PostgreSQL database, and ensure that your app is running smoothly.

About

A growing Personal Training database to store client workouts and meal plans. Contributions Welcome!

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Welcome to the Trainer App

This app is designed to help personal trainers and their clients manage their workouts. It includes the following models:

Trainer Client Workout The Trainer model stores information about the trainer, including their name and email address.

The Client model stores information about each client, including their name and email address.

The Workout model stores information about each workout, including its name and description.

This app is built using Flask, SQLAlchemy, and Python.

How to Install

  • Be sure to have postgres installed on your machine
  • Fork this repo then create a new branch for your changes
  • In the terminal cd to the new directory pt-database cd pt-database
  • Create a new virtual environment python3 -m venv venv
  • Next install the dependencies pip install -r requirements.txt
  • In the terminal run createdb <database name> replace database name with the name you want
  • In the root directory create a .env file and add your database URI postgresql://<username>:<password>@localhost/<database name>
  • Run the seed.py file to pre-fill the database, type python3 seed.py in the terminal and press enter
  • Login to the database type, psql <database name> in the terminal
  • Finally type \dt and you should see the schema

Database Models

This section contains the database models used in this application.

Trainer

The Trainer model is used to store information about trainers.

AttributeTypeDescription
idStringUnique identifier for the trainer
nameStringName of the trainer
emailStringEmail address of the trainer
clientsArrayArray of associated Client objects

Client The Client model is used to store information about clients.

AttributeTypeDescription
idStringUnique identifier for the client
trainer_idStringUnique identifier for the trainer
nameStringName of the client
emailStringEmail address of the client
workoutsArrayArray of associated Workout objects

Workout The Workout model is used to store information about workouts.

AttributeTypeDescription
idStringUnique identifier for the workout
client_idStringUnique identifier for the client
nameStringName of the workout
descriptionStringDescription of the workout

MealPlan

This is a class that represents a meal plan in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan
dayStringDay of the week for a particular meal
meal_typeStringType of meal (e.g. breakfast, lunch, dinner)
mealStringName of the meal
caloriesFloatNumber of calories in the meal
proteinFloatAmount of protein in the meal
carbsFloatAmount of carbohydrates in the meal
fatFloatAmount of fat in the meal
meal_plan_idIntegerForeign key to the id column of the meal_plan_summary table

Relationships

  • meal_plan: A relationship to the MealPlanSummary class via the meal_plan attribute. This relationship is defined in the MealPlan class.

MealPlanSummary

This is a class that represents a meal plan summary in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan summary
nameStringName of the meal plan

Relationships

  • meal_plan: A relationship to the MealPlan class via the meal_plan attribute. This relationship is defined in the MealPlanSummary class.

Usage

To start writing SQL queries against the database login by typing psql <database name> in the terminal. From there you can view the tables by typing \dt there you will be able to see the tables in the database. You can then begin typing queries.

Sample Queries

Insert Data

INSERT INTO trainer (id, name, email) VALUES ('123', 'John Doe', 'john@example.com');

INSERT INTO client (id, trainer_id, name, email) VALUES ('456', '123', 'Jane Doe', 'jane@example.com');

INSERT INTO workout (id, client_id, name, description) VALUES ('789', '456', 'Workout 1', 'This is a sample workout');

Select Data

SELECT * FROM trainer;

SELECT * FROM client;

SELECT * FROM workout;

Troubleshooting Steps

  1. Check your database connection: Verify that your Flask app is able to connect to the PostgreSQL database. Check that the database server is running and that your app's database configuration settings are correct. If the connection is unsuccessful, check the error message to identify the cause of the problem.

  2. Verify that the database schema exists: Make sure that the database schema you are using in your Flask app has been created in the PostgreSQL database. If the schema does not exist, create it using the appropriate SQL commands or by using a database migration tool like Alembic.

  3. Check your SQL queries: Review your SQL queries to ensure that they are correct and formatted properly. Use a tool like pgAdmin to test your queries directly against the PostgreSQL database. You can also use logging to see the SQL queries generated by your Flask app.

  4. Debug your Flask app: Enable Flask's built-in debugging features to help identify any issues with your app's code. This can include using Flask's debug=True option, setting breakpoints in your code, and using logging to track the flow of your app.

  5. Check your PostgreSQL logs: Examine the PostgreSQL server logs to see if there are any errors or issues reported by the database server. This can help identify problems with your database configuration, queries, or schema.

  6. Check your dependencies: Make sure that all the dependencies used by your Flask app and PostgreSQL database are up-to-date and compatible with each other. Use a virtual environment to isolate your app's dependencies and prevent conflicts.

  7. Verify your server configuration: Check your server configuration to ensure that it is set up correctly to run your Flask app and PostgreSQL database. This can include verifying the installation of required packages, checking system resources like memory and disk space, and making sure that the server is configured to allow connections to the database.

By following these troubleshooting steps, you can identify and resolve issues with your Flask app and PostgreSQL database, and ensure that your app is running smoothly.

About

A growing Personal Training database to store client workouts and meal plans. Contributions Welcome!

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Welcome to the Trainer App

This app is designed to help personal trainers and their clients manage their workouts. It includes the following models:

Trainer Client Workout The Trainer model stores information about the trainer, including their name and email address.

The Client model stores information about each client, including their name and email address.

The Workout model stores information about each workout, including its name and description.

This app is built using Flask, SQLAlchemy, and Python.

How to Install

  • Be sure to have postgres installed on your machine
  • Fork this repo then create a new branch for your changes
  • In the terminal cd to the new directory pt-database cd pt-database
  • Create a new virtual environment python3 -m venv venv
  • Next install the dependencies pip install -r requirements.txt
  • In the terminal run createdb <database name> replace database name with the name you want
  • In the root directory create a .env file and add your database URI postgresql://<username>:<password>@localhost/<database name>
  • Run the seed.py file to pre-fill the database, type python3 seed.py in the terminal and press enter
  • Login to the database type, psql <database name> in the terminal
  • Finally type \dt and you should see the schema

Database Models

This section contains the database models used in this application.

Trainer

The Trainer model is used to store information about trainers.

AttributeTypeDescription
idStringUnique identifier for the trainer
nameStringName of the trainer
emailStringEmail address of the trainer
clientsArrayArray of associated Client objects

Client The Client model is used to store information about clients.

AttributeTypeDescription
idStringUnique identifier for the client
trainer_idStringUnique identifier for the trainer
nameStringName of the client
emailStringEmail address of the client
workoutsArrayArray of associated Workout objects

Workout The Workout model is used to store information about workouts.

AttributeTypeDescription
idStringUnique identifier for the workout
client_idStringUnique identifier for the client
nameStringName of the workout
descriptionStringDescription of the workout

MealPlan

This is a class that represents a meal plan in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan
dayStringDay of the week for a particular meal
meal_typeStringType of meal (e.g. breakfast, lunch, dinner)
mealStringName of the meal
caloriesFloatNumber of calories in the meal
proteinFloatAmount of protein in the meal
carbsFloatAmount of carbohydrates in the meal
fatFloatAmount of fat in the meal
meal_plan_idIntegerForeign key to the id column of the meal_plan_summary table

Relationships

  • meal_plan: A relationship to the MealPlanSummary class via the meal_plan attribute. This relationship is defined in the MealPlan class.

MealPlanSummary

This is a class that represents a meal plan summary in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan summary
nameStringName of the meal plan

Relationships

  • meal_plan: A relationship to the MealPlan class via the meal_plan attribute. This relationship is defined in the MealPlanSummary class.

Usage

To start writing SQL queries against the database login by typing psql <database name> in the terminal. From there you can view the tables by typing \dt there you will be able to see the tables in the database. You can then begin typing queries.

Sample Queries

Insert Data

INSERT INTO trainer (id, name, email) VALUES ('123', 'John Doe', 'john@example.com');

INSERT INTO client (id, trainer_id, name, email) VALUES ('456', '123', 'Jane Doe', 'jane@example.com');

INSERT INTO workout (id, client_id, name, description) VALUES ('789', '456', 'Workout 1', 'This is a sample workout');

Select Data

SELECT * FROM trainer;

SELECT * FROM client;

SELECT * FROM workout;

Troubleshooting Steps

  1. Check your database connection: Verify that your Flask app is able to connect to the PostgreSQL database. Check that the database server is running and that your app's database configuration settings are correct. If the connection is unsuccessful, check the error message to identify the cause of the problem.

  2. Verify that the database schema exists: Make sure that the database schema you are using in your Flask app has been created in the PostgreSQL database. If the schema does not exist, create it using the appropriate SQL commands or by using a database migration tool like Alembic.

  3. Check your SQL queries: Review your SQL queries to ensure that they are correct and formatted properly. Use a tool like pgAdmin to test your queries directly against the PostgreSQL database. You can also use logging to see the SQL queries generated by your Flask app.

  4. Debug your Flask app: Enable Flask's built-in debugging features to help identify any issues with your app's code. This can include using Flask's debug=True option, setting breakpoints in your code, and using logging to track the flow of your app.

  5. Check your PostgreSQL logs: Examine the PostgreSQL server logs to see if there are any errors or issues reported by the database server. This can help identify problems with your database configuration, queries, or schema.

  6. Check your dependencies: Make sure that all the dependencies used by your Flask app and PostgreSQL database are up-to-date and compatible with each other. Use a virtual environment to isolate your app's dependencies and prevent conflicts.

  7. Verify your server configuration: Check your server configuration to ensure that it is set up correctly to run your Flask app and PostgreSQL database. This can include verifying the installation of required packages, checking system resources like memory and disk space, and making sure that the server is configured to allow connections to the database.

By following these troubleshooting steps, you can identify and resolve issues with your Flask app and PostgreSQL database, and ensure that your app is running smoothly.

About

A growing Personal Training database to store client workouts and meal plans. Contributions Welcome!

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Welcome to the Trainer App

This app is designed to help personal trainers and their clients manage their workouts. It includes the following models:

Trainer Client Workout The Trainer model stores information about the trainer, including their name and email address.

The Client model stores information about each client, including their name and email address.

The Workout model stores information about each workout, including its name and description.

This app is built using Flask, SQLAlchemy, and Python.

How to Install

  • Be sure to have postgres installed on your machine
  • Fork this repo then create a new branch for your changes
  • In the terminal cd to the new directory pt-database cd pt-database
  • Create a new virtual environment python3 -m venv venv
  • Next install the dependencies pip install -r requirements.txt
  • In the terminal run createdb <database name> replace database name with the name you want
  • In the root directory create a .env file and add your database URI postgresql://<username>:<password>@localhost/<database name>
  • Run the seed.py file to pre-fill the database, type python3 seed.py in the terminal and press enter
  • Login to the database type, psql <database name> in the terminal
  • Finally type \dt and you should see the schema

Database Models

This section contains the database models used in this application.

Trainer

The Trainer model is used to store information about trainers.

AttributeTypeDescription
idStringUnique identifier for the trainer
nameStringName of the trainer
emailStringEmail address of the trainer
clientsArrayArray of associated Client objects

Client The Client model is used to store information about clients.

AttributeTypeDescription
idStringUnique identifier for the client
trainer_idStringUnique identifier for the trainer
nameStringName of the client
emailStringEmail address of the client
workoutsArrayArray of associated Workout objects

Workout The Workout model is used to store information about workouts.

AttributeTypeDescription
idStringUnique identifier for the workout
client_idStringUnique identifier for the client
nameStringName of the workout
descriptionStringDescription of the workout

MealPlan

This is a class that represents a meal plan in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan
dayStringDay of the week for a particular meal
meal_typeStringType of meal (e.g. breakfast, lunch, dinner)
mealStringName of the meal
caloriesFloatNumber of calories in the meal
proteinFloatAmount of protein in the meal
carbsFloatAmount of carbohydrates in the meal
fatFloatAmount of fat in the meal
meal_plan_idIntegerForeign key to the id column of the meal_plan_summary table

Relationships

  • meal_plan: A relationship to the MealPlanSummary class via the meal_plan attribute. This relationship is defined in the MealPlan class.

MealPlanSummary

This is a class that represents a meal plan summary in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan summary
nameStringName of the meal plan

Relationships

  • meal_plan: A relationship to the MealPlan class via the meal_plan attribute. This relationship is defined in the MealPlanSummary class.

Usage

To start writing SQL queries against the database login by typing psql <database name> in the terminal. From there you can view the tables by typing \dt there you will be able to see the tables in the database. You can then begin typing queries.

Sample Queries

Insert Data

INSERT INTO trainer (id, name, email) VALUES ('123', 'John Doe', 'john@example.com');

INSERT INTO client (id, trainer_id, name, email) VALUES ('456', '123', 'Jane Doe', 'jane@example.com');

INSERT INTO workout (id, client_id, name, description) VALUES ('789', '456', 'Workout 1', 'This is a sample workout');

Select Data

SELECT * FROM trainer;

SELECT * FROM client;

SELECT * FROM workout;

Troubleshooting Steps

  1. Check your database connection: Verify that your Flask app is able to connect to the PostgreSQL database. Check that the database server is running and that your app's database configuration settings are correct. If the connection is unsuccessful, check the error message to identify the cause of the problem.

  2. Verify that the database schema exists: Make sure that the database schema you are using in your Flask app has been created in the PostgreSQL database. If the schema does not exist, create it using the appropriate SQL commands or by using a database migration tool like Alembic.

  3. Check your SQL queries: Review your SQL queries to ensure that they are correct and formatted properly. Use a tool like pgAdmin to test your queries directly against the PostgreSQL database. You can also use logging to see the SQL queries generated by your Flask app.

  4. Debug your Flask app: Enable Flask's built-in debugging features to help identify any issues with your app's code. This can include using Flask's debug=True option, setting breakpoints in your code, and using logging to track the flow of your app.

  5. Check your PostgreSQL logs: Examine the PostgreSQL server logs to see if there are any errors or issues reported by the database server. This can help identify problems with your database configuration, queries, or schema.

  6. Check your dependencies: Make sure that all the dependencies used by your Flask app and PostgreSQL database are up-to-date and compatible with each other. Use a virtual environment to isolate your app's dependencies and prevent conflicts.

  7. Verify your server configuration: Check your server configuration to ensure that it is set up correctly to run your Flask app and PostgreSQL database. This can include verifying the installation of required packages, checking system resources like memory and disk space, and making sure that the server is configured to allow connections to the database.

By following these troubleshooting steps, you can identify and resolve issues with your Flask app and PostgreSQL database, and ensure that your app is running smoothly.

About

A growing Personal Training database to store client workouts and meal plans. Contributions Welcome!

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Welcome to the Trainer App

This app is designed to help personal trainers and their clients manage their workouts. It includes the following models:

Trainer Client Workout The Trainer model stores information about the trainer, including their name and email address.

The Client model stores information about each client, including their name and email address.

The Workout model stores information about each workout, including its name and description.

This app is built using Flask, SQLAlchemy, and Python.

How to Install

  • Be sure to have postgres installed on your machine
  • Fork this repo then create a new branch for your changes
  • In the terminal cd to the new directory pt-database cd pt-database
  • Create a new virtual environment python3 -m venv venv
  • Next install the dependencies pip install -r requirements.txt
  • In the terminal run createdb <database name> replace database name with the name you want
  • In the root directory create a .env file and add your database URI postgresql://<username>:<password>@localhost/<database name>
  • Run the seed.py file to pre-fill the database, type python3 seed.py in the terminal and press enter
  • Login to the database type, psql <database name> in the terminal
  • Finally type \dt and you should see the schema

Database Models

This section contains the database models used in this application.

Trainer

The Trainer model is used to store information about trainers.

AttributeTypeDescription
idStringUnique identifier for the trainer
nameStringName of the trainer
emailStringEmail address of the trainer
clientsArrayArray of associated Client objects

Client The Client model is used to store information about clients.

AttributeTypeDescription
idStringUnique identifier for the client
trainer_idStringUnique identifier for the trainer
nameStringName of the client
emailStringEmail address of the client
workoutsArrayArray of associated Workout objects

Workout The Workout model is used to store information about workouts.

AttributeTypeDescription
idStringUnique identifier for the workout
client_idStringUnique identifier for the client
nameStringName of the workout
descriptionStringDescription of the workout

MealPlan

This is a class that represents a meal plan in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan
dayStringDay of the week for a particular meal
meal_typeStringType of meal (e.g. breakfast, lunch, dinner)
mealStringName of the meal
caloriesFloatNumber of calories in the meal
proteinFloatAmount of protein in the meal
carbsFloatAmount of carbohydrates in the meal
fatFloatAmount of fat in the meal
meal_plan_idIntegerForeign key to the id column of the meal_plan_summary table

Relationships

  • meal_plan: A relationship to the MealPlanSummary class via the meal_plan attribute. This relationship is defined in the MealPlan class.

MealPlanSummary

This is a class that represents a meal plan summary in a database. It is a subclass of db.Model, which suggests that it is designed to work with a SQLAlchemy database.

AttributeTypeDescription
idIntegerUnique identifier for the meal plan summary
nameStringName of the meal plan

Relationships

  • meal_plan: A relationship to the MealPlan class via the meal_plan attribute. This relationship is defined in the MealPlanSummary class.

Usage

To start writing SQL queries against the database login by typing psql <database name> in the terminal. From there you can view the tables by typing \dt there you will be able to see the tables in the database. You can then begin typing queries.

Sample Queries

Insert Data

INSERT INTO trainer (id, name, email) VALUES ('123', 'John Doe', 'john@example.com');

INSERT INTO client (id, trainer_id, name, email) VALUES ('456', '123', 'Jane Doe', 'jane@example.com');

INSERT INTO workout (id, client_id, name, description) VALUES ('789', '456', 'Workout 1', 'This is a sample workout');

Select Data

SELECT * FROM trainer;

SELECT * FROM client;

SELECT * FROM workout;

Troubleshooting Steps

  1. Check your database connection: Verify that your Flask app is able to connect to the PostgreSQL database. Check that the database server is running and that your app's database configuration settings are correct. If the connection is unsuccessful, check the error message to identify the cause of the problem.

  2. Verify that the database schema exists: Make sure that the database schema you are using in your Flask app has been created in the PostgreSQL database. If the schema does not exist, create it using the appropriate SQL commands or by using a database migration tool like Alembic.

  3. Check your SQL queries: Review your SQL queries to ensure that they are correct and formatted properly. Use a tool like pgAdmin to test your queries directly against the PostgreSQL database. You can also use logging to see the SQL queries generated by your Flask app.

  4. Debug your Flask app: Enable Flask's built-in debugging features to help identify any issues with your app's code. This can include using Flask's debug=True option, setting breakpoints in your code, and using logging to track the flow of your app.

  5. Check your PostgreSQL logs: Examine the PostgreSQL server logs to see if there are any errors or issues reported by the database server. This can help identify problems with your database configuration, queries, or schema.

  6. Check your dependencies: Make sure that all the dependencies used by your Flask app and PostgreSQL database are up-to-date and compatible with each other. Use a virtual environment to isolate your app's dependencies and prevent conflicts.

  7. Verify your server configuration: Check your server configuration to ensure that it is set up correctly to run your Flask app and PostgreSQL database. This can include verifying the installation of required packages, checking system resources like memory and disk space, and making sure that the server is configured to allow connections to the database.

By following these troubleshooting steps, you can identify and resolve issues with your Flask app and PostgreSQL database, and ensure that your app is running smoothly.

About

A growing Personal Training database to store client workouts and meal plans. Contributions Welcome!

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages