Pymex es una aplicacion SaaS multi-tenant para la gestion de pequenas y medianas empresas. Permite administrar inventario, ventas, gastos, clientes y mas, todo en una sola plataforma.
| Categoria | Tecnologia |
|---|---|
| Frontend | React 18 + Vite + TypeScript |
| UI | Tailwind CSS + shadcn/ui |
| Routing | React Router v6 (HashRouter) |
| Estado | TanStack Query |
| Auth | Firebase Auth |
| Database | Firestore |
| Forms | React Hook Form + Zod |
| Hosting | GitHub Pages |
/PYMEX
├── apps/
│ └── web/ # Frontend React
│ ├── src/
│ │ ├── components/ # Componentes UI
│ │ ├── contexts/ # AuthContext, TenantContext
│ │ ├── guards/ # AuthGuard, TenantGuard
│ │ ├── hooks/ # Custom hooks
│ │ ├── lib/ # Firebase config, utils
│ │ ├── modules/ # Modulos (inventory, sales, etc.)
│ │ ├── pages/ # Paginas principales
│ │ ├── router/ # Configuracion de rutas
│ │ ├── services/ # Servicios Firestore
│ │ └── types/ # TypeScript types
│ └── public/
├── firebase/
│ ├── firestore.rules # Reglas de seguridad
│ └── firestore.indexes.json # Indices
├── scripts/
│ └── set-super-admin.js # Script para crear admin
└── .github/
└── workflows/
└── deploy.yml # GitHub Actions
git clone https://github.com/tu-usuario/pymex.git
cd pymex
cd apps/web
npm install
Crea un archivo .env.local en apps/web/:
VITE_FIREBASE_API_KEY=tu-api-key
VITE_FIREBASE_AUTH_DOMAIN=tu-proyecto.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=tu-proyecto
VITE_FIREBASE_STORAGE_BUCKET=tu-proyecto.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=tu-sender-id
VITE_FIREBASE_APP_ID=tu-app-id
Copia el contenido de firebase/firestore.rules a tu proyecto de Firebase:
npm run dev
La app estara disponible en http://localhost:5173
isSuperAdmin a trueConfigura los siguientes secretos en Settings > Secrets and variables > Actions:
VITE_FIREBASE_API_KEYVITE_FIREBASE_AUTH_DOMAINVITE_FIREBASE_PROJECT_IDVITE_FIREBASE_STORAGE_BUCKETVITE_FIREBASE_MESSAGING_SENDER_IDVITE_FIREBASE_APP_IDtu-usuario.github.ioapps/web/public/CNAME ya contiene pymex.appEl deploy se ejecuta automaticamente al hacer push a main.
# Desarrollo
npm run dev
# Build produccion
npm run build
# Preview build
npm run preview
# Linting
npm run lint
src/modules/nuevo-modulo/src/router/index.tsxsrc/components/layout/Sidebar.tsxTenantModules en src/types/index.tsMIT