Skip to content

ever-co/ever-rec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ever Rec Platform

Gitpod Ready-to-Code Gitter Get help on Codementor

🌟 What is it

Ever® Rec™ - Screen Capture, Screen Recording, Images & Video Sharing Platform.

NOTE: Platform is currently in active development stage / WIP, please use with caution!

Ever® Rec™ is a powerful, all-in-one platform for effortlessly capturing, annotating, and sharing screen, webcam, and microphone recordings. Available as a standalone web app, Chrome extension, or desktop application, it adapts to your workflow, wherever you work.

The desktop version goes even further by converting continuous screenshots into smooth, high-quality videos, making it ideal for creating tutorials, recording gameplay, tracking workflows, and more.

Designed to run discreetly in the background, Ever® Rec™ lets you stay focused on what matters while it handles recording with speed and simplicity.

✨ Platform Features Overview

  • Web-based Platform (React/NextJs)
  • Chrome Extension
  • Desktop App (Electron)
  • Screen Capture / Screen Recording
  • Mic Capture / Webcam Capture
  • Images / Videos Storage, Annotations and Sharing
  • Secure Video Upload: Enables users to directly upload the generated videos to an S3 bucket for secure storage and easy sharing.

✨ Desktop Application Features

  • Continuous Screen Capture: automatically captures high-resolution screenshots at user-defined intervals, ensuring every critical moment is preserved.
  • Video Compilation: converts sequences of screenshots into smooth, high-quality video files with just a few clicks.
  • Customizable Settings:
  • Configure capture intervals to suit your workflow (e.g., every second, every minute).
  • Select video resolutions (e.g., 720p, 1080p) and output formats.
  • Resource Efficiency: Optimized for minimal impact on system performance and resource usage, ensuring smooth operation even during intensive tasks.
  • Intuitive Interface: Offers a clean and user-friendly interface for starting, stopping, and configuring screen capture sessions.
  • Cross-Platform Compatibility: Fully compatible with Windows, macOS, and Linux environments.

📑 Table of Contents

🌼 Screenshots

Show / Hide Screenshots

TODO

🔗 Links

📊 Activity

Alt

Prerequisites

Before you begin, ensure you have the following installed:

Technology Stack

Project Structure

Mono-repo

A mono-repo containing three main applications:

ever-rec/
├── apps/
│   ├── api/          # API Server (NestJS)
│   ├── portal/       # Web UI Portal
│   ├── desktop/      # Desktop Application
│   └── extensions/   # Browser Extensions Portal

Desktop App

Usage

  1. Start Recording
  • Launch the application and press the Start Capturing button to begin screen recording.
  • Screenshots will be captured continuously at the configured intervals.
  1. Stop Recording
  • Press the Stop Capturing button to end the recording session.
  • The application will automatically compile the captured screenshots into a video file.
  1. Configure Settings
  • Access the settings menu to adjust the capture interval (e.g., 1 second, 10 seconds).
  • Select the desired video resolution (e.g., 720p, 1080p).
  • Configure S3 bucket details for direct video upload.

Development

Prerequisites

  • Ensure Node.js and npm are installed on your system.
  • Confirm that your development environment supports NX for build processes.

Build Commands

  1. Install dependencies:

    yarn install
  2. Build the project:

    yarn run build
  3. Create a desktop application build:

    yarn run make

Publishing to a Private NPM Registry

Step 1: Configure npm

  1. Set npm to use your private registry:

    npm set registry https://your-private-registry.com
    npm adduser --registry https://your-private-registry.com
    npm set scope=@your-org
  2. Provide your credentials (username, password, email).

Step 2: Publish a Package

  1. Publish an individual package:

    nx run lib-name:publish
  2. Verify the package appears in your private registry.

Step 3: Publish All Packages (Optional)

  1. Publish all packages or affected libraries:

    yarn run publish:all or yarn run publish:affected:libraries
  2. Verify all packages are listed in your private registry.

Platform Getting Started

Development Environment Setup

  1. System Requirements Check
  • Node.js: Version 20.x or higher
# Verify Node.js version
node --version
# Should output v20.x.x or higher
  • PNPM: Latest stable version
# Install PNPM globally
npm install -g pnpm

# Verify PNPM installation
pnpm --version
  1. Clone the Repository
git clone https://github.com/ever-co/ever-rec
cd ever-rec
  1. Install Dependencies
pnpm install

Environment Configuration

API Environment Setup

  1. Configure API Environment
# For development
cp apps/api/.env.sample apps/api/.env.dev

# For production
cp apps/api/.env.sample apps/api/.env.prod
  1. Required API Environment Variables
# Firebase Configuration
FIREBASE_API_KEY=your_api_key
FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
FIREBASE_DATABASE_URL=https://your_project.firebaseio.com
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_STORAGE_BUCKET=your_project.appspot.com
FIREBASE_MESSAGING_SENDER_ID=your_sender_id
FIREBASE_APP_ID=your_app_id
FIREBASE_MEASUREMENT_ID=your_measurement_id

# Firebase Admin Configuration
FIREBASE_ADMIN_PRIVATE_KEY=your_private_key
FIREBASE_ADMIN_CLIENT_EMAIL=your_client_email

# Extension Configuration
EXTENSION_ID=your_extension_id

Portal Environment Setup

  1. Configure Portal Environment
cp apps/portal/.env.sample apps/portal/.env.local
  1. Required Portal Environment Variables
# API Configuration
NEXT_PUBLIC_API_BASE_URL=http://localhost:3000
NEXT_PUBLIC_WEBSITE_URL=http://localhost:4200
NEXT_PUBLIC_STATIC_FILES_URL=your_static_files_url

# Extension Configuration
EXTENSION_ID=your_extension_id

Extensions Environment Setup

  1. Configure Extensions Environment
# For development
cp apps/extensions/.env.sample apps/extensions/.env.dev

# For production
cp apps/extensions/.env.sample apps/extensions/.env.prod
  1. Required Extensions Environment Variables
EXTENSION_ID=your_extension_id

API_BASE_URL=http://localhost:3000
WEBSITE_URL=http://localhost:4200
STATIC_FILES_URL=your_static_files_url

Development Workflow

  1. Start Development Server
pnpm dev
  1. Access Development Environment

Browser Extension Development

Building Extensions

# Development build
pnpm dev:extensions

# Production build
pnpm build:extensions

Installing in Chrome

  1. Access Chrome Extensions

    • Open Chrome
    • Navigate to chrome://extensions
    • Enable "Developer mode" (toggle in top-right)
  2. Load Extension

    • Click "Load unpacked"
    • Navigate to the project directory
    • Select the appropriate build folder:
      • Development: apps/extensions/build/dev
      • Production: apps/extensions/build/prod
  3. Extension Development Notes

    • Check the extension's background page console for logs
    • Use Chrome's developer tools to debug popup and content scripts

Other browsers

Firebase Integration

Firebase Project Configuration

  1. Create Firebase Project

  2. Web App Setup

    • In Firebase Console, click "Add app"
    • Select web platform (</>)
    • Register the app with a nickname
    • Copy configuration to the appropriate .env file

Authentication Setup

Enable Authentication Methods

- In Firebase Console, go to Authentication > Sign-in method
- Enable required providers:
    - Google
    - Email/Password

Database Configuration

  1. Realtime Database Setup
    • Create a new Realtime Database
    • Start in test mode
    • Update security rules using database.rules.json:
      {
      	"rules": {
      		// Add the database rules here
      	}
      }

Storage Setup

  1. Configure Storage
    • Enable Firebase Storage
    • Set up security rules using storage.rules
    • Configure CORS if needed

Google OAuth Configuration

  1. Visit https://console.cloud.google.com/apis/credentials
  2. Select your Firebase project
  3. Create OAuth Client ID credentials
  4. Download credentials and configure for all apps:
    • GOOGLE_CLIENT_ID
    • GOOGLE_CLIENT_SECRET
  5. Configure the OAuth consent screen

Production Build

# Build all packages
pnpm build

# Build specific app
pnpm build:api      # Build API server
pnpm build:portal   # Build web portal
pnpm build:extensions  # Build extensions

💌 Contact Us

🔐 Security

Ever Rec Platform follows good security practices, but 100% security cannot be guaranteed in any software! Ever Rec Platform is provided AS IS without any warranty. Use at your own risk! See more details in the LICENSES.md.

In a production setup, all client-side to server-side (backend, APIs) communications should be encrypted using HTTPS/WSS/SSL (REST APIs, GraphQL endpoint, Socket.io WebSockets, etc.).

If you discover any issue regarding security, please disclose the information responsibly by emailing mailto:security@ever.co and not by creating a GitHub issue.

🛡️ License

This software is available under the following licenses:

The default Ever® Rec™ Platform license, without a valid Ever® Rec™ Platform Enterprise or Ever® Rec™ Platform Small Business License agreement, is the Ever® Rec™ Platform Community Edition License

We support the open-source community. If you're building awesome non-profit/open-source projects, we're happy to help and will provide (subject to acceptance criteria) Ever Rec Enterprise edition license and free hosting option! Feel free to contact us at mailto:ever@ever.co to make a request. More details are explained in our Wiki.

Please see LICENSES for more information on licenses

FOSSA Status

™️ Trademarks

Ever® is a registered trademark of Ever Co. LTD. Ever® Rec™, Ever® Demand™, Ever® Gauzy™, Ever® Teams™ and Ever® OpenSaaS™ are all trademarks of Ever Co. LTD.

The trademarks may only be used with the written permission of Ever Co. LTD. and may not be used to promote or otherwise market competitive products or services.

All other brand and product names are trademarks, registered trademarks, or service marks of their respective holders.

🍺 Contribute

  • Please give us a ⭐ on Github, it helps!
  • You are more than welcome to submit feature requests in the separate repo
  • Pull requests are always welcome! Please base pull requests against the develop branch and follow the contributing guide.

💪 Thanks to our Contributors

See our contributors list in CONTRIBUTORS.md. You can also view a full list of our contributors tracked by Github.

⭐ Star History

Star History Chart

❤️ Powered By

Powered by Vercel

©️ Copyright

Copyright © 2024-present, Ever Co. LTD. All rights reserved


Enjoy effortless recording with Ever® Rec™! 🎥