Un sistema operativo web simulado construido con React, Next.js y TypeScript que replica la experiencia de un escritorio moderno.
El sistema incluye un escritorio interactivo con iconos arrastrables, ventanas redimensionables y una barra de tareas funcional.
- Framework: Next.js 16
- Lenguaje: TypeScript 5
- UI: React 19
- Estilos: Tailwind CSS 4
- Componentes: Radix UI + shadcn/ui
- Iconos: Lucide React
- Ventanas arrastrables y redimensionables
- Minimizar, maximizar y cerrar
- Z-index dinámico (ventana activa siempre al frente)
- Botones de control estilo macOS
| Aplicación | Descripción |
|---|---|
| Navegador | Navegador web funcional con iframe |
| Finder | Explorador de archivos con navegación |
| Paint | Aplicación de dibujo con canvas |
| Buscaminas | Juego clásico de buscaminas |
| Tetris | Juego Tetris completo |
| Snake | Juego de la serpiente |
| 2048 | Puzzle numérico 2048 |
- Herramientas: Lápiz y Borrador
- Selector de color
- Control de tamaño del pincel
- Guardar imágenes (PNG)
- Las imágenes se guardan en el Finder
- Navegación por carpetas
- Búsqueda en tiempo real
- Visualización de imágenes guardadas desde Paint
- Reproductor de música integrado
- Accesos directos a aplicaciones
- Menú de inicio con aplicaciones
- Iconos de acceso rápido
- Centro de control con reproductor de música
- Reloj del sistema
- Ventanas minimizadas
- Iconos arrastrables
- Menú contextual (click derecho)
- Accesos directos a aplicaciones
# Clonar el repositorio
git clone https://github.com/JairoMS27/ejemplOS.git
# Entrar al directorio
cd ejemplOS
# Instalar dependencias
npm install
# Ejecutar en desarrollo
npm run devEl proyecto estará disponible en http://localhost:3000
npm run dev # Servidor de desarrollo
npm run build # Construir para producción
npm run start # Iniciar servidor de producción
npm run lint # Ejecutar linterejemplOS/
├── app/ # Next.js App Router
│ ├── layout.tsx # Layout principal
│ └── page.tsx # Página principal (OS)
├── components/
│ ├── apps/ # Aplicaciones
│ │ ├── browser-window.tsx
│ │ ├── finder-window.tsx
│ │ ├── paint-window.tsx
│ │ ├── minesweeper-window.tsx
│ │ ├── tetris-window.tsx
│ │ ├── snake-window.tsx
│ │ └── game-2048.tsx
│ ├── window.tsx # Componente ventana base
│ ├── window-manager.tsx # Gestor de ventanas
│ ├── desktop.tsx # Escritorio
│ ├── taskbar.tsx # Barra de tareas
│ └── ui/ # Componentes UI (shadcn)
├── lib/ # Utilidades
│ ├── audio-context.tsx # Contexto de audio
│ └── utils.ts
├── styles/
│ └── globals.css # Estilos globales
└── public/ # Assets estáticos
- Crear componente en
components/apps/mi-app-window.tsx - Registrar tipo en
app/page.tsx(openWindows type) - Añadir renderizado en
components/window-manager.tsx - Opcional: Añadir icono en desktop y/o taskbar
- localStorage: Imágenes de Paint, configuraciones
- Las imágenes guardadas en Paint aparecen automáticamente en el Finder
MIT License - Ver archivo LICENSE para más detalles.
Desarrollado por Jairo
Versión: BETA 1.0