Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
Plataforma de propinas digitales. Los trabajadores reciben propinas vía QR único o búsqueda por username; los clientes pagan con tarjeta a través de Stripe Connect. • Frontend: React 18 + Vite + Tailwind CSS + PWA (vite-plugin-pwa) • Backend: Node.js + Express.js • Base de datos: MongoDB (Mongoose) • Pagos: Stripe (PaymentIntents + Connect Express) • Auth: JWT (24h) + bcrypt • Node.js 18+ • MongoDB (local o Atlas) • Cuenta de Stripe (modo test) con Connect habilitadoRead the full README ↗
Plataforma de propinas digitales. Los trabajadores reciben propinas vía QR único o búsqueda por username; los clientes pagan con tarjeta a través de Stripe Connect.
vite-plugin-pwa)tip-it/
├── backend/ API REST (Express + MongoDB + Stripe)
│ └── src/
│ ├── config/ conexión a Mongo, cliente de Stripe
│ ├── models/ User, Worker, Transaction
│ ├── middleware/ auth (JWT), rate limiting, validación, errores
│ ├── controllers/ lógica de negocio por dominio
│ └── routes/ definición de endpoints
└── frontend/ PWA React (mobile-first)
└── src/
├── pages/ landing, auth, worker, client, historial, perfil
├── components/ nav, tarjetas, rating, rutas protegidas
├── context/ AuthContext (sesión JWT)
└── services/ cliente axios
El proyecto incluye un mongod real (v8.2.6) en backend/.mongo/bin que guarda sus
datos en backend/.mongo/data — no requiere Homebrew ni permisos de administrador.
cd backend
npm run mongo:start # arranca MongoDB en localhost:27017
npm run mongo:status # verifica que está corriendo
npm run mongo:stop # lo detiene
MONGO_URI=mongodb://localhost:27017/tip-it en .env ya apunta a este Mongo local.
Si prefieres MongoDB Atlas, simplemente reemplaza MONGO_URI por tu cadena de conexión.
cd backend
cp .env.example .env # completa con tus valores reales
npm install
npm run mongo:start # levanta MongoDB local (una sola vez por sesión de trabajo)
npm run dev # http://localhost:5050 (ver nota de macOS abajo)
Variables de entorno (backend/.env):
| Variable | Descripción |
|---|---|
PORT | Puerto del servidor API (default 5000) |
CLIENT_URL | URL del frontend, usada por CORS y para construir los links del QR |
MONGO_URI | Cadena de conexión a MongoDB |
JWT_SECRET | Secreto para firmar tokens JWT |
JWT_EXPIRES_IN | Expiración del token (default 24h) |
STRIPE_SECRET_KEY | Clave secreta de Stripe |
STRIPE_WEBHOOK_SECRET | Secreto del endpoint de webhooks de Stripe |
STRIPE_CONNECT_REFRESH_URL / STRIPE_CONNECT_RETURN_URL | URLs de retorno del onboarding de Stripe Connect |
PLATFORM_FEE_PERCENT | Comisión de TIP-IT sobre cada propina (4–6 recomendado) |
macOS: el puerto 5000 suele estar ocupado por AirPlay Receiver (Control Center). Por eso
backend/.envyfrontend/.enven esta máquina ya están configurados conPORT=5050/VITE_API_URL=http://localhost:5050/api. Sinpm run devfalla conEADDRINUSEen otra máquina, cambiaPORT(yVITE_API_URL) a un puerto libre, o desactiva AirPlay Receiver en Preferencias del Sistema → General → AirDrop y Handoff.
cd frontend
cp .env.example .env # completa con tus valores reales
npm install
npm run dev # http://localhost:5173
Variables de entorno (frontend/.env):
| Variable | Descripción |
|---|---|
VITE_API_URL | URL base de la API (http://localhost:5000/api en desarrollo) |
VITE_STRIPE_PUBLISHABLE_KEY | Clave publicable de Stripe |
pk_test_...) → frontend/.env → VITE_STRIPE_PUBLISHABLE_KEYsk_test_...) → backend/.env → STRIPE_SECRET_KEYEl proyecto incluye el Stripe CLI en
backend/.stripe-cli (descargado directo del release oficial, sin Homebrew) y ya
está autenticado con tu STRIPE_SECRET_KEY — no hace falta stripe login.
cd backend
npm run stripe:listen # reenvía eventos de Stripe a localhost:5050/api/webhooks/stripe
Déjalo corriendo en una terminal aparte mientras trabajas (junto con npm run dev y
npm run mongo:start). El whsec_... que imprime ya está guardado en
STRIPE_WEBHOOK_SECRET dentro de backend/.env; si alguna vez cambia, actualízalo ahí.
Para probar que el webhook funciona sin hacer un pago completo:
./.stripe-cli/stripe trigger payment_intent.succeeded --api-key "$(grep STRIPE_SECRET_KEY .env | cut -d= -f2)"
Deberías ver 200 OK tanto en la terminal del listener como en los logs del backend.
Ya está todo configurado en esta máquina. Para trabajar necesitas 3 terminales:
# Terminal 1
cd backend && npm run mongo:start && npm run dev
# Terminal 2
cd backend && npm run stripe:listen
# Terminal 3
cd frontend && npm run dev
Luego abre http://localhost:5173. Cuentas de prueba ya creadas:
[email protected] / password123 (@ana_barber, Stripe Connect activo)[email protected] / password123This is the beginning of the README. Read the rest at the original. Read the full README ↗