Esta plantilla está diseñada para proyectos fullstack utilizando las siguientes tecnologías:
project-root/
├── backend/ # Backend con Flask y SQLAlchemy
│ ├── app/ # Código principal del backend
│ │ ├── __init__.py
│ │ ├── models.py
│ │ ├── routes.py
│ ├── config.py # Configuración del backend
│ └── wsgi.py # Punto de entrada del backend
├── frontend/ # Frontend con React y Vite
│ ├── src/ # Código principal del frontend
│ │ ├── components/
│ │ ├── pages/
│ │ ├── App.jsx
│ │ ├── main.jsx
│ │ ├── i18n.js # Configuración de i18n
│ └── vite.config.js # Configuración de Vite
├── public/ # Recursos públicos del frontend
│ └── locales/ # Archivos de traducción i18n
├── Pipfile # Archivo para manejar dependencias y scripts del backend
└── README.md # Este archivo
Ve a la carpeta backend
:
cd backend
Instala las dependencias usando pipenv
:
pip install pipenv
pipenv install
Configura tu conexión a la base de datos PostgreSQL en config.py
:
SQLALCHEMY_DATABASE_URI = 'postgresql://<usuario>:<contraseña>@localhost:5432/<nombre_base_datos>'
Usa los scripts definidos en el Pipfile
para ejecutar tareas comunes:
Iniciar el servidor:
pipenv run start
Crear migraciones:
pipenv run migrate
Aplicar migraciones:
pipenv run upgrade
Borrar todas las migraciones y datos de la base de datos:
pipenv run reset
El backend estará disponible en http://127.0.0.1:5000
.
La base de datos estará disponible en http://127.0.0.1:5000/admin
Flask-Migrate se utiliza para manejar cambios en los modelos y reflejarlos en la base de datos. Sigue estos pasos:
Crear una migración:
pipenv run migrate
Esto genera un archivo en la carpeta migrations/versions
que describe los cambios realizados.
Aplicar la migración a la base de datos:
pipenv run upgrade
Esto actualizará la base de datos con los cambios definidos en los modelos.
Reiniciar las migraciones (en desarrollo): Si necesitas borrar todas las migraciones y reiniciar:
pipenv run reset
Esto elimina la carpeta migrations
y limpia la base de datos.
GET /ms
{
"message": "Welcome to the Flask API"
}
Descargar e instalar PostgreSQL:
postgres
).5432
), salvo que necesites cambiarlo.Verificar que PostgreSQL está corriendo:
services.msc
) y asegúrate de que el servicio PostgreSQL
esté iniciado.sudo systemctl status postgresql
Conectarte a PostgreSQL:
psql
para conectarte al servidor:psql -U postgres
Crear una base de datos:
psql
, ejecuta:CREATE DATABASE <nombre_base_datos>;
<nombre_base_datos>
con el nombre que desees para tu base de datos.Probar la conexión desde el backend:
config.py
contiene las credenciales correctas.Ve a la carpeta front
:
cd front
Instala las dependencias:
npm install
Inicia el servidor de desarrollo:
npm run dev
El frontend estará disponible en http://localhost:5173
.
La internacionalización está configurada para cargar archivos JSON desde la carpeta public/locales
. La estructura es la siguiente:
public/
└── locales/
├── en/
│ ├── common.json
│ ├── footer.json
├── es/
│ ├── common.json
│ ├── footer.json
Crea o edita los archivos JSON en los idiomas deseados.
Cada archivo puede representar un namespace (por ejemplo, common
, footer
).
Utiliza el hook useTranslation
de react-i18next
en tus componentes. Ejemplo:
import React from 'react';
import { useTranslation } from 'react-i18next';
const Home = () => {
const { t, i18n } = useTranslation();
const changeLanguage = (lng) => {
i18n.changeLanguage(lng);
};
return (
<div>
<h1>{t('welcome')}</h1>
<button onClick={() => changeLanguage('en')}>English</button>
<button onClick={() => changeLanguage('es')}>Español</button>
</div>
);
};
export default Home;
Tailwind CSS está configurado y listo para usar. Para agregar estilos:
Edita src/index.css
para agregar las directivas de Tailwind:
@tailwind base;
@tailwind components;
@tailwind utilities;
Usa clases utilitarias directamente en tus componentes React:
<div className="bg-blue-500 text-white p-4">
Hola, Tailwind CSS!
</div>
npm run build
para generar la versión de producción del frontend.