Migrate frontend to TypeScript and extend user profile

Converted frontend codebase from JavaScript to TypeScript, including pages, components, and context. Added new layout and UI kit components. Updated backend user model and schemas to support profile fields (firstname, lastname, age, gender, height, weight, unit_preference) and added endpoints for reading/updating current user. Introduced food log listing endpoint and migration script for user table. Updated dependencies and build configs for TypeScript and Tailwind v4.
This commit is contained in:
Carlos Escalante
2026-01-18 19:01:00 -06:00
parent 184c8330a7
commit bd91eb4171
58 changed files with 4607 additions and 1414 deletions

View File

@@ -0,0 +1,32 @@
from sqlmodel import Session, text
from app.db import engine
def migrate():
print("Starting migration...")
with Session(engine) as session:
columns = [
("firstname", "VARCHAR"),
("lastname", "VARCHAR"),
("age", "INTEGER"),
("gender", "VARCHAR"),
("height", "FLOAT"),
("weight", "FLOAT"),
("unit_preference", "VARCHAR DEFAULT 'metric'"),
]
for col, type_ in columns:
try:
print(f"Adding {col}...")
# Using "user" with quotes to avoid reserved keyword issues, though SQLModel usually handles it
session.exec(text(f'ALTER TABLE "user" ADD COLUMN IF NOT EXISTS {col} {type_}'))
session.commit()
print(f"Added {col}")
except Exception as e:
print(f"Error adding {col}: {e}")
session.rollback()
if __name__ == "__main__":
migrate()