Sistema web full-stack para la gestión integral de un taller presencial de reparación de celulares y computadoras.
CELLMARCK administra clientes, equipos, órdenes de trabajo, diagnósticos, cotizaciones, inventario, proveedores, ventas, fidelización y reportes. Incluye un portal privado para clientes, catálogo público y seguimiento seguro de reparaciones.
- Autenticación JWT y permisos por roles.
- Administración de usuarios del personal.
- Registro de clientes con validaciones ecuatorianas.
- Equipos con IMEI o número de serie opcional.
- Órdenes con numeración y código de seguimiento únicos.
- Flujo controlado de estados e historial auditable.
- Diagnósticos y cotizaciones con aprobación del cliente.
- Inventario, movimientos, proveedores y alertas de stock.
- Punto de venta presencial y comprobantes imprimibles.
- Programa de fidelización por ciclos de compras.
- Dashboard diferenciado para administradores y técnicos.
- Reportes por período, exportación CSV e impresión.
- Catálogo y consulta de reparaciones sin iniciar sesión.
- Portal de cliente para trabajos, compras, cotizaciones y perfil.
- React 18
- TypeScript
- Vite
- React Router
- Zustand
- Axios
- React Hook Form y Zod
- Tailwind CSS
- Lucide React
- Python y FastAPI
- Pydantic v2
- SQLAlchemy 2.0 Async
- Alembic
- PostgreSQL mediante
asyncpg - JWT con
python-jose - Passlib y bcrypt
- Pytest y HTTPX
- Supabase PostgreSQL
- Render para la API
- Vercel para el frontend
frontend/ React + TypeScript
│
│ REST/JSON + JWT
▼
backend/ FastAPI + SQLAlchemy Async
│
▼
Supabase PostgreSQL
El frontend no accede directamente a Supabase. Todas las operaciones pasan por FastAPI para aplicar permisos, validaciones y reglas de negocio.
CELLMARCK/
├── backend/
│ ├── alembic/ # Migraciones
│ ├── app/
│ │ ├── api/v1/ # Endpoints REST
│ │ ├── core/ # Configuración, seguridad y middleware
│ │ ├── db/ # Sesiones y datos iniciales
│ │ ├── models/ # Modelos SQLAlchemy
│ │ ├── schemas/ # Esquemas Pydantic
│ │ └── services/ # Lógica de negocio
│ ├── tests/ # Pruebas de integración
│ └── requirements.txt
├── frontend/
│ ├── public/ # Recursos estáticos
│ ├── src/
│ │ ├── components/
│ │ ├── layouts/
│ │ ├── pages/
│ │ ├── services/
│ │ ├── store/
│ │ ├── types/
│ │ └── utils/
│ └── package.json
├── DEPLOYMENT.md
├── INFORME_TECNICO.md
└── render.yaml
- Python 3.11 o superior
- Node.js 18 o superior
- npm
- PostgreSQL o un proyecto de Supabase
Para preparar el proyecto en otro computador Windows:
- Copia o clona la carpeta completa.
- Ejecuta
INSTALAR_Y_EJECUTAR.batcon doble clic. - Si Python 3.11+ o Node.js 18+ no están disponibles, el instalador intentará
instalarlos mediante
winget. - Si no existe
backend/.env, pega la cadenaDATABASE_URLde Supabase cuando el instalador la solicite. También puedes presionar Enter para usar SQLite. - Espera a que se instalen dependencias, se apliquen migraciones y se valide la compilación.
El instalador abrirá el backend y el frontend en ventanas separadas y después
abrirá http://127.0.0.1:5173.
En los usos posteriores basta con ejecutar:
INICIAR_CELLMARCK.bat
Este lanzador no reinstala dependencias. Si se actualizan requirements.txt o
package-lock.json, vuelve a ejecutar INSTALAR_Y_EJECUTAR.bat.
git clone https://github.com/marco4u41/CELLMARCK.git
cd CELLMARCKcd backend
python -m venv venvEn Windows:
.\venv\Scripts\Activate.ps1
pip install -r requirements.txtEn Linux o macOS:
source venv/bin/activate
pip install -r requirements.txtCopia backend/.env.example como backend/.env y configura:
ENVIRONMENT=development
DATABASE_URL=postgresql+asyncpg://USUARIO:CONTRASEÑA@HOST:5432/postgres
SECRET_KEY=una-clave-larga-y-aleatoria
BACKEND_CORS_ORIGINS=["http://localhost:5173","http://127.0.0.1:5173"]No publiques el archivo .env.
Aplica las migraciones y carga los datos demostrativos:
alembic upgrade head
python -m app.db.init_dbInicia la API:
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000Documentación interactiva:
- Swagger UI:
http://127.0.0.1:8000/api/v1/docs - Health check:
http://127.0.0.1:8000/api/v1/health
En otra terminal:
cd frontend
npm installOpcionalmente crea frontend/.env.local:
VITE_API_URL=http://127.0.0.1:8000/api/v1Inicia Vite:
npm run devAbre http://127.0.0.1:5173.
Los datos iniciales crean cuentas destinadas exclusivamente a desarrollo:
| Rol | Correo | Contraseña |
|---|---|---|
| Administrador | admin@cellmarck.com |
AdminPassword123! |
| Técnico | tecnico@cellmarck.com |
TecnicoPassword123! |
| Cliente | cliente1@cellmarck.com |
ClientePassword123! |
Cambie estas credenciales antes de utilizar el sistema fuera de un entorno académico o demostrativo.
Backend:
cd backend
python -m pytest -qFrontend:
cd frontend
npm run buildEl repositorio incluye:
render.yamlpara desplegar FastAPI en Render;frontend/vercel.jsonpara conservar las rutas SPA en Vercel;DEPLOYMENT.mdcon las variables y verificaciones requeridas.
En producción:
- configure
DATABASE_URLySECRET_KEYen Render; - ejecute
alembic upgrade head; - configure
VITE_API_URLen Vercel; - limite
BACKEND_CORS_ORIGINSal dominio real; - no incluya
.env, bases SQLite ni credenciales reales en Git.
Proyecto académico desarrollado para la gestión digital de CELLMARCK.