App web para vendedores de arriendo. Filtra el inventario de Assetplan (por comuna, precio, dormitorios, baños, m², disponibilidad) y genera posts automáticos para redes con link directo a WhatsApp.
- Frontend: React 18 + Vite + Tailwind CSS
- Backend: FastAPI + SQLAlchemy + SQLite
- Datos: CSV centralizado en
backend/data/export.csv(sin carga manual)
confianza-inmobiliaria/
├── backend/ FastAPI
│ ├── main.py app + sincronización del CSV
│ ├── run.py python run.py -> :8000
│ ├── app/
│ │ ├── config.py settings por entorno
│ │ ├── database.py conexión SQLite
│ │ ├── models.py modelo Property
│ │ ├── schemas.py schemas Pydantic
│ │ ├── routes/ properties, posts
│ │ └── utils/ csv_parser, filters
│ └── data/export.csv inventario (fuente de verdad)
├── frontend/ React + Vite + Tailwind
│ └── src/
│ ├── App.jsx
│ ├── api.js
│ └── components/ Dashboard, Filters, PropertyCard, PostGenerator, Loader
└── README.md
cd backend
python -m venv venv
venv\Scripts\activate # Windows (Linux/Mac: source venv/bin/activate)
pip install -r requirements.txt
copy .env.example .env # Linux/Mac: cp .env.example .env
python run.py- API: http://localhost:8000
- Docs (Swagger): http://localhost:8000/docs
Al iniciar, el backend sincroniza la base de datos con backend/data/export.csv.
cd frontend
npm install
copy .env.example .env.local # Linux/Mac: cp .env.example .env.local
npm run devEl CSV es la fuente de verdad. Para actualizar el inventario:
- Reemplaza
backend/data/export.csvcon el nuevo export de Assetplan. - Súbelo al repo (
git add,commit,push). - Reinicia / redespliega el backend: detecta el cambio y resincroniza la BD.
Los vendedores solo usan la web; no manipulan archivos.
| Método | Ruta | Descripción |
|---|---|---|
| GET | /health |
Estado del servidor |
| GET | /properties |
Lista filtrada (comuna, precio, dormitorios, baños, m², disponibilidad, orden) |
| GET | /properties/comunas |
Comunas disponibles |
| GET | /properties/{op} |
Detalle de una unidad |
| POST | /posts/generate |
Genera texto + WhatsApp + link listing para una op |
backend/.env
DATABASE_URL=sqlite:///./confianza.db
WHATSAPP_PHONE=56975459683
CORS_ORIGINS=http://localhost:5173,http://localhost:3000
SEED_CSV_PATH=data/export.csv
frontend/.env.local
VITE_API_URL=http://localhost:8000
- Backend: Railway o Render (incluye
backend/data/export.csven el repo). - Frontend: Vercel (define
VITE_API_URLapuntando al backend público).