Skip to content

Plataforma web fitness desarrollada con FastAPI, React y PostgreSQL como proyecto académico en FIUBA.

Notifications You must be signed in to change notification settings

SebaB29/MyFiubaGymBro

 
 

Repository files navigation

🏋️‍♂️ MyFiubaGymBro

myFiubaGymBro es una plataforma web desarrollada como trabajo práctico para FIUBA, pensada para ayudar a estudiantes a mantenerse en forma y llevar un registro saludable de sus hábitos. Está compuesta por un backend en FastAPI, un frontend en React + TypeScript, y una base de datos PostgreSQL, todo orquestado con Docker y lista para correr en DevContainers.


📚 Índice


📦 Tecnologías principales

  • 🐍 Python + FastAPI + SQLAlchemy
  • 🧠 Arquitectura en capas (routers, dtos, services, repositories)
  • 🐘 PostgreSQL + Alembic
  • ⚛️ React + TypeScript + Vite
  • 🐳 Docker + Docker Compose
  • 🛠️ DevContainer para entorno de desarrollo consistente

🧱 Estructura del proyecto

.
├── .devcontainer/  # Configuración para DevContainer
├── backend/        # Backend FastAPI
├── frontend/       # Frontend React + Vite
├── local-running/  # Scripts para correr con Docker Compose
├── README.md
├── package-lock.json
└── setup.sh

⚙️ Requisitos previos


🧪 Desarrollo local con DevContainer

  1. Abrí el proyecto en VS Code.
  2. Si se te solicita, hacé clic en "Reabrir en contenedor".
  3. El entorno se levantará automáticamente con:
    • Backend: http://localhost:8000
    • Frontend: http://localhost:8080

Si no te aparece la opción, usá Ctrl+Shift+P → Dev Containers: Reopen in Container.


🐘 Configuración de la base de datos

La base PostgreSQL está definida en docker-compose.yml.

Datos de conexión

Host: db
Puerto: 5432
Usuario: postgres
Contraseña: secret
Base de datos: myfiubagymbro

Agregar en el .env del backend:

DATABASE_URL=postgresql://postgres:secret@db:5432/myfiubagymbro

🛠️ Backend (FastAPI)

Instalación

cd backend
pip install -r requirements.txt

Correr migraciones

alembic upgrade head

Crear nueva migración

alembic revision --autogenerate -m "descripcion"
alembic upgrade head

Ejecutar el servidor

fastapi run src/main.py --port 8000

Acceder a la API

Tests

pytest

💻 Frontend (React + Vite)

Instalación

cd frontend
npm install

Modo desarrollo

npm run dev

Acceder en http://localhost:8080

Build de producción

npm run build
npm run preview

🐳 Docker Compose

Si preferís usar Docker Compose directamente (fuera del DevContainer):

./start.sh   # Inicia todos los servicios
./stop.sh    # Detiene todos los servicios

Accesos:


👥 Integrantes

Nombre Usuario de GitHub
Sebastián Brizuela @SebaB29
Federico Solari @FedericoSolari
Luciano Gamberale @lucianogamberale
Joaquín Velurtas @joaquinvelurtas
Santiago Rocco @SantiagoRocco

About

Plataforma web fitness desarrollada con FastAPI, React y PostgreSQL como proyecto académico en FIUBA.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 80.7%
  • Python 18.6%
  • Dockerfile 0.2%
  • JavaScript 0.2%
  • CSS 0.1%
  • Shell 0.1%
  • HTML 0.1%