Skip to content

taralshah09/webOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

35 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ–ฅ๏ธ WebOS - Web-Based Operating System

A fully functional, browser-based operating system built with React and Node.js, featuring a complete desktop environment, advanced file system, and professional text editor.

image image image


Live Demo


๐ŸŒŸ Key Features

๐Ÿ’ป Complete Desktop Environment

  • Modern UI: Windows-style interface with taskbar, system tray, and start menu
  • Window Management: Resizable, draggable windows with minimize/maximize/close controls
  • Desktop Customization: Drag-and-drop icons, customizable wallpapers
  • Multi-App Support: Run multiple applications simultaneously

๐Ÿ“ Advanced File System

  • Full CRUD Operations: Create, read, update, delete files and folders
  • Real-Time Persistence: All changes saved to MongoDB database
  • Smart File Explorer: Tree view navigation with grid/list display modes
  • Search Functionality: Search by filename and content across entire file system
  • Drag & Drop: Intuitive file management with context menus

๐Ÿ“ Professional Text Editor (Notepad)

  • Monaco Editor Integration: Same editor used in Visual Studio Code
  • Syntax Highlighting: Support for 20+ programming languages (JavaScript, Python, HTML, CSS, Markdown, etc.)
  • Auto-Save: Automatic saving after 2 seconds of inactivity
  • Manual Save: Ctrl+S for immediate saving to database
  • Multiple Themes: Dark, light, and high contrast themes
  • IntelliSense: Auto-completion, code suggestions, and error detection

๐Ÿ” Secure Authentication System

  • User Registration & Login: JWT-based authentication
  • Session Management: Persistent login with secure token handling
  • User Isolation: Each user has their own private file system
  • Password Security: Bcrypt hashing for secure password storage

๐Ÿš€ System Applications

  • File Explorer: Navigate and manage your file system
  • Notepad: Professional code and text editor
  • Terminal: Command-line interface (coming soon)
  • Browser: Web browsing capabilities (coming soon)
  • Settings: System configuration and preferences

๐Ÿ› ๏ธ Technology Stack

Frontend

React Vite Monaco Editor CSS3

  • React 18 - Modern UI framework with hooks and context API
  • Vite - Fast build tool and development server
  • Monaco Editor - Professional code editor component
  • CSS3 - Custom styling with animations and responsive design
  • Context API - State management for authentication and file system

Backend

Node.js Express MongoDB JWT

  • Node.js - JavaScript runtime environment
  • Express.js - Web application framework
  • MongoDB - NoSQL database for data persistence
  • Mongoose - MongoDB object modeling library
  • JWT - JSON Web Tokens for authentication
  • bcrypt - Password hashing and security

Deployment & DevOps

Vercel Render MongoDB Atlas

  • Vercel - Frontend hosting and deployment
  • Render - Backend API hosting
  • MongoDB Atlas - Cloud database hosting
  • GitHub Actions - CI/CD pipeline (coming soon)

๐Ÿ—„๏ธ Data Architecture

๐Ÿ“Š Database Schema Overview

  • Database Schema
  • Detailed data modeling diagram created with Eraser.io

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 16+
  • MongoDB 5+
  • npm or yarn

Quick Start

  1. Clone the repository

    git clone https://github.com/yourusername/webos.git
    cd webos
  2. Backend Setup

    cd backend
    npm install
    cp .env.example .env
    # Update .env with your MongoDB URL and JWT secret
    npm run dev
  3. Frontend Setup

    cd ../frontend
    npm install
    cp .env.example .env
    # Update .env with your backend URL
    npm run dev
  4. Access the Application

    • Frontend: http://localhost:5173
    • Backend: http://localhost:5000

Environment Variables

Backend (.env)

NODE_ENV=development
PORT=5000
MONGO_URL=mongodb://localhost:27017/webos
JWT_SECRET=your-super-secure-jwt-secret
FRONTEND_URL=http://localhost:5173

Frontend (.env)

VITE_API_URL=http://localhost:5000/api

๐Ÿ“‹ API Documentation

Authentication Endpoints

POST /api/auth/register  # Register new user
POST /api/auth/login     # User login
POST /api/auth/logout    # User logout

File System Endpoints

GET    /api/filesystem           # Get file system structure
GET    /api/filesystem/file      # Get file content
POST   /api/filesystem/file      # Create new file
POST   /api/filesystem/file/save # Save file content
POST   /api/filesystem/folder    # Create new folder
POST   /api/filesystem/item/rename # Rename file/folder
POST   /api/filesystem/item/delete # Delete file/folder
GET    /api/filesystem/search    # Search files

Desktop Endpoints

GET  /api/desktop         # Get desktop configuration
PUT  /api/desktop/icons   # Update desktop icons
PUT  /api/desktop/wallpaper # Update wallpaper

๐Ÿ”ฎ Upcoming Features & Roadmap

**Version 2.0 **

  • ๐Ÿ–ฅ๏ธ Terminal Application - Full bash-like command-line interface
  • ๐Ÿ“ฆ Package Manager - Install/uninstall third-party applications
  • ๐ŸŽจ Theme System - Customizable UI themes and color schemes
  • ๐Ÿ‘ฅ Multi-user Workspaces - Shared folders and collaborative editing
  • ๐Ÿ” Advanced Search - Full-text search with filters and indexing
  • ๐Ÿ“ฑ Mobile Support - Responsive design for tablets and phones

**Version 3.0 **

  • โšก Real-time Collaboration - Google Docs-style collaborative editing
  • ๐Ÿ”Œ Plugin System - Third-party app development framework
  • โ˜๏ธ Cloud Storage Integration - Google Drive, Dropbox, OneDrive sync
  • ๐Ÿค– AI Assistant - Built-in AI for code completion and file management
  • ๐Ÿ”’ Advanced Security - End-to-end encryption, 2FA, audit logs
  • ๐Ÿ“Š Analytics Dashboard - Usage statistics and performance metrics

**Version 4.0 **

  • ๐ŸŒ WebAssembly Support - Run native applications in browser
  • ๐ŸŽฎ Application Store - Marketplace for WebOS applications
  • ๐Ÿ”„ Offline Support - Progressive Web App with offline functionality
  • ๐Ÿข Enterprise Features - SSO, LDAP integration, admin controls

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Style

  • Follow ESLint configuration
  • Write unit tests for new features
  • Update documentation for API changes
  • Use conventional commits

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments

  • Monaco Editor - For providing the excellent code editor component
  • React Team - For the amazing frontend framework
  • MongoDB - For the flexible NoSQL database
  • Vercel & Render - For reliable hosting and deployment
  • Open Source Community - For inspiration and countless helpful libraries

๐Ÿ“ž Contact & Support


Made with โค๏ธ by Taral Shah

About

Operating System simulation on your browser!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors