Skip to content

πŸŽ₯ Professional Camera Studio - Modern web app showcasing advanced Browser APIs, real-time media processing, and responsive design. Built with Vanilla JS, Webpack 5, and glassmorphism UI.

Notifications You must be signed in to change notification settings

siddharthharshraj/open-cam

Repository files navigation

πŸŽ₯ Open Cam - Professional Camera Studio

A modern, professional web camera application showcasing advanced Browser API capabilities and modern web development practices. Built with vanilla JavaScript and cutting-edge web technologies to demonstrate expertise in client-side media handling, responsive design, and progressive web app development.

🌐 Live Demo

πŸš€ Coming Soon: Live demo will be available shortly at a dedicated URL for interactive testing and portfolio showcase.

πŸ‘¨β€πŸ’» Developer Information

Built by: Siddharth Harsh Raj
Role: Full Stack Developer & UI/UX Designer
Specialization: Modern Web Technologies, Media APIs, Progressive Web Apps

Technical Expertise Demonstrated:

  • Advanced JavaScript: ES6+, Async/Await, Modular Architecture
  • Modern CSS: Custom Properties, Glassmorphism, Responsive Design
  • Browser APIs: MediaDevices, Screen Capture, MediaRecorder, Canvas, IndexedDB
  • Build Tools: Webpack 5, Babel, CSS Optimization, Code Splitting
  • Deployment: Netlify, Performance Optimization, Security Headers

πŸš€ Enhanced Features

Core Functionality

  • Advanced Camera Controls: Multi-device support with resolution selection (480p to 4K)
  • Screen Recording: Full screen, window, or tab capture using Screen Capture API
  • Real-time Filters: Live video filters with smooth transitions
  • Professional Gallery: Modern grid layout with enhanced media management
  • Responsive Design: Optimized for desktop, tablet, and mobile devices

Professional UI/UX

  • Glassmorphism Design: Modern dark theme with backdrop blur effects
  • Smooth Animations: CSS transitions and micro-interactions
  • Keyboard Shortcuts: Power user productivity features
  • Accessibility: ARIA labels, screen reader support, and keyboard navigation

Recording Modes

  • Camera Only: Traditional webcam recording
  • Screen Only: Screen capture and recording
  • Camera + Screen: Combined recording mode (demo implementation)

πŸ›  Technology Stack

Frontend Technologies

  • HTML5: Semantic markup and modern web standards
  • CSS3: Custom properties, flexbox, grid, and advanced animations
  • JavaScript ES6+: Modern JavaScript with async/await and modules

Browser APIs

  • MediaDevices API: Camera/microphone enumeration and control
  • Screen Capture API: Professional screen recording capabilities
  • MediaRecorder API: High-quality video/audio recording
  • Canvas API: Real-time image processing and filters
  • IndexedDB: Client-side media storage and management

External Libraries

  • Font Awesome: Professional icon library
  • Material Icons: Google's material design icons
  • ShortID: Unique identifier generation

πŸ“± Device Support

  • Desktop: Full feature set with advanced controls
  • Tablet: Optimized touch interface
  • Mobile: Responsive design with gesture support
  • Cross-browser: Chrome, Firefox, Safari, Edge

🎯 Key Features for Portfolio

Advanced Media Handling

  • Multiple camera/microphone device switching
  • Dynamic resolution adjustment
  • Real-time filter application
  • Professional recording controls

Modern Web Development

  • CSS custom properties and modern layout techniques
  • Responsive design with mobile-first approach
  • Progressive enhancement and graceful degradation
  • Performance optimized with efficient DOM manipulation

User Experience

  • Intuitive interface with visual feedback
  • Smooth animations and transitions
  • Error handling with user-friendly messages
  • Keyboard shortcuts for power users

πŸš€ Getting Started

Quick Start (Development)

# Clone the repository
git clone <repository-url>
cd open-cam29-main

# Install dependencies
npm install

# Start development server
npm run dev

Visit http://localhost:3000 and allow camera/microphone permissions when prompted.

Production Build & Deployment

# Build for production
npm run build

# Deploy to Netlify (drag & drop dist folder)
# Or use Netlify CLI
netlify deploy --prod --dir=dist

Available Scripts

  • npm run dev - Development server with hot reload
  • npm run build - Production build with optimization
  • npm run clean - Clean build directory
  • npm run serve - Serve built files locally

⌨️ Keyboard Shortcuts

  • Space: Capture photo
  • R: Start/stop recording
  • G: Open gallery
  • S: Open settings panel
  • Esc: Close active panel

🎨 Design System

Color Palette

  • Primary: #0a0a0a (Deep black)
  • Secondary: #1a1a1a (Dark gray)
  • Accent: #3b82f6 (Professional blue)
  • Success: #10b981 (Green)
  • Danger: #ef4444 (Red)

Typography

  • System fonts for optimal performance
  • Monospace for timer display
  • Consistent sizing and spacing

πŸ—οΈ Project Architecture

Modular Structure

src/
β”œβ”€β”€ index.html & gallery.html    # HTML templates
β”œβ”€β”€ index.js & gallery.js        # Entry points
β”œβ”€β”€ js/                          # Core modules
β”‚   β”œβ”€β”€ camera.js               # Camera & recording logic
β”‚   β”œβ”€β”€ database.js             # IndexedDB operations
β”‚   └── ui-controller.js        # UI interactions & events
└── styles/                     # Stylesheets
    β”œβ”€β”€ main.css               # Core application styles
    └── gallery.css            # Gallery-specific styles

Build System

  • Webpack 5: Module bundling with code splitting
  • Babel: ES6+ transpilation for browser compatibility
  • CSS Optimization: Extraction, minification, and autoprefixing
  • Asset Management: Image optimization and font loading
  • Development Tools: Hot reload, source maps, and dev server

πŸ”§ Technical Implementation

Performance Optimizations

  • Code Splitting: Separate bundles for main app and gallery
  • Lazy Loading: Dynamic imports for better initial load times
  • Caching Strategy: Content hashing for long-term caching
  • Bundle Analysis: Webpack Bundle Analyzer for optimization insights

Security & Best Practices

  • Content Security Policy: Implemented via Netlify headers
  • HTTPS Required: Camera APIs require secure context
  • Input Validation: Robust error handling and user feedback
  • Progressive Enhancement: Graceful degradation for older browsers

πŸ“Š Browser Compatibility

Feature Chrome 88+ Firefox 85+ Safari 14+ Edge 88+
Camera Access βœ… βœ… βœ… βœ…
Screen Recording βœ… βœ… ⚠️ Limited βœ…
IndexedDB βœ… βœ… βœ… βœ…
MediaRecorder βœ… βœ… βœ… βœ…

πŸ“§ Developer Contact

Siddharth Harsh Raj
Full Stack Developer & UI/UX Designer

Skills Demonstrated in This Project:

  • Frontend: Vanilla JS, Modern CSS, Responsive Design, PWA Development
  • APIs: MediaDevices, Screen Capture, Canvas, IndexedDB, MediaRecorder
  • Tools: Webpack, Babel, npm, Git, Netlify, Performance Optimization
  • Design: Glassmorphism UI, Mobile-First Design, Accessibility, UX/UI

πŸ“„ License & Usage

Β© 2025 Siddharth Harsh Raj. All rights reserved.

This project demonstrates advanced web development skills and is available for portfolio review and technical assessment.


Open Cam Studio - Showcasing the future of web-based media applications through advanced Browser API integration, modern build tools, and professional web development practices.

About

πŸŽ₯ Professional Camera Studio - Modern web app showcasing advanced Browser APIs, real-time media processing, and responsive design. Built with Vanilla JS, Webpack 5, and glassmorphism UI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published