Skip to content

NureniJamiu/screenforge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

49 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ScreenForge ๐ŸŽฌ

Live Demo License: MIT TypeScript React Node.js

A comprehensive screen recording tool with built-in video editing and sophisticated sharing controls.

Capture, Edit, Share - All in one place

๐Ÿ–ผ๏ธ Project Preview

ScreenForge Homepage

ScreenForge - Professional screen recording and video editing platform

โœจ Features

  • ๐ŸŽฅ Multiple Recording Modes: Capture entire desktop, specific windows, or browser tabs
  • โœ‚๏ธ Built-in Video Editor: Trim videos and add AI-generated captions
  • ๐Ÿ” Secure Sharing: Flexible sharing options with download permissions
  • โ˜๏ธ Cloud Storage: Powered by Cloudinary for reliable video hosting
  • ๐Ÿ“ฑ Responsive Design: Works seamlessly on desktop and mobile devices
  • ๐Ÿ”’ Authentication: Secure user authentication with Clerk
  • ๐ŸŽจ Modern UI: Clean, intuitive interface built with Tailwind CSS

๐Ÿš€ Quick Start

Prerequisites

Before you begin, ensure you have the following installed:

Installation

  1. Clone the repository

    git clone https://github.com/NureniJamiu/screenforge.git
    cd screenforge
  2. Install dependencies

    npm run install:all
  3. Set up environment variables

    Create .env files in both frontend and backend directories:

    Frontend (.env)

    VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
    
    Here are some planned features and integrations for upcoming releases:
    
    
    CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
    CLOUDINARY_API_KEY=your_cloudinary_api_key
    CLOUDINARY_API_SECRET=your_cloudinary_api_secret
    NODE_ENV=development
  4. Set up the database

    npm run prisma:generate
    npm run prisma:migrate
  5. Start the development servers

    npm run dev

    This will start:

๐Ÿ“ Project Structure

screenforge/
โ”œโ”€โ”€ ๐Ÿ“ frontend/                 # React + TypeScript frontend
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ src/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ components/       # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ pages/           # Page components
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ hooks/           # Custom React hooks
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ services/        # API services
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ store/           # Zustand state management
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ types/           # TypeScript type definitions
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ utils/           # Utility functions
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ package.json
โ”‚   โ””โ”€โ”€ ๐Ÿ“„ vite.config.ts
โ”œโ”€โ”€ ๐Ÿ“ backend/                  # Node.js + Express backend
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ src/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ controllers/     # Route controllers
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ middleware/      # Express middleware
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ routes/          # API routes
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ utils/           # Utility functions
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ prisma/              # Database schema and migrations
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ package.json
โ”‚   โ””โ”€โ”€ ๐Ÿ“„ vercel.json
โ”œโ”€โ”€ ๐Ÿ“„ package.json             # Workspace configuration
โ””โ”€โ”€ ๐Ÿ“„ README.md               # This file

๐Ÿ› ๏ธ Technology Stack

Frontend

Technology Description
React 18 Modern React with hooks and concurrent features
TypeScript Type-safe JavaScript development
Vite Fast build tool and development server
Tailwind CSS Utility-first CSS framework
Clerk Authentication and user management
React Router Client-side routing
Zustand Lightweight state management

Backend

Technology Description
Node.js JavaScript runtime environment
Express Web application framework
TypeScript Type-safe JavaScript development
PostgreSQL Relational database
Prisma Next-generation ORM
Cloudinary Cloud-based video storage and processing
Clerk Authentication middleware

๐Ÿ“œ Available Scripts

Root Level Scripts

npm run dev              # Start both frontend and backend in development
npm run build            # Build both applications for production
npm run install:all      # Install dependencies for all workspaces
npm run clean            # Remove all node_modules folders
npm run prisma:generate  # Generate Prisma client
npm run prisma:migrate   # Run database migrations
npm run prisma:studio    # Open Prisma Studio

Frontend Scripts

cd frontend
npm run dev      # Start Vite development server
npm run build    # Build for production
npm run lint     # Run ESLint
npm run preview  # Preview production build
npm run test     # Run tests

Backend Scripts

cd backend
npm run dev                    # Start with nodemon
npm run build                  # Build TypeScript
npm run start                  # Start production server
npm run prisma:generate        # Generate Prisma client
npm run prisma:migrate         # Run database migrations
npm run migrate:cloudinary     # Migrate to Cloudinary storage

๐Ÿš€ Deployment

Frontend (Vercel)

  1. Connect your GitHub repository to Vercel
  2. Set the build command: npm run build:frontend
  3. Set the output directory: frontend/dist
  4. Add environment variables in Vercel dashboard

Backend (Vercel)

  1. Deploy from the backend directory
  2. Vercel will automatically detect the serverless function setup
  3. Add environment variables in Vercel dashboard
  4. Run database migrations in production

๐Ÿ”ง Configuration

Clerk Authentication

  1. Create a Clerk account at clerk.com
  2. Create a new application
  3. Copy the publishable and secret keys to your environment files

Cloudinary Setup

  1. Create a Cloudinary account at cloudinary.com
  2. Get your cloud name, API key, and API secret
  3. Add them to your backend environment file

Database Setup

  1. Create a PostgreSQL database
  2. Update the DATABASE_URL in your backend .env file
  3. Run migrations: npm run prisma:migrate

๐Ÿค Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
    • Follow the coding standards in .github/copilot-instructions.md
    • Write tests for new features
    • Ensure TypeScript types are properly defined
  4. Commit your changes
    git commit -m 'Add some amazing feature'
  5. Push to the branch
    git push origin feature/amazing-feature
  6. Open a Pull Request

Development Guidelines

  • Use TypeScript strictly with proper type definitions
  • Follow React functional components with hooks
  • Use Tailwind CSS for styling with mobile-first approach
  • Implement proper error handling and loading states
  • Use Prisma Client for database operations
  • Follow RESTful API design principles

๐Ÿ“ License

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

๐Ÿ™ Acknowledgments

  • Clerk for authentication services
  • Cloudinary for video storage and processing
  • Vercel for hosting and deployment
  • Prisma for database management

๐Ÿ”ฎ Future Integrations

Planned features for upcoming releases:

  • Zoom on Cursor Point: Viewers can zoom in on specific areas of the screen recording by hovering or clicking near the cursor.
  • Comments & Reactions: Users can leave comments or emoji reactions directly on shared videos for collaborative feedback.
  • Advanced Analytics: Track viewer engagement, watch time, and interaction statistics for each video.
  • Third-Party Integrations: Connect with platforms like Slack, Trello, Notion, and Google Drive for seamless sharing and workflow automation.
  • Custom Branding: Add custom watermarks, intro/outro screens, and branding options for organizations.
  • Transcript Search: Search within AI-generated captions and transcripts for quick navigation.
  • Live Collaboration: Multiple users can annotate or edit videos in real-time.

๐Ÿ“ž Support

If you have any questions or need help, please:

  • Open an issue on GitHub
  • Check the documentation
  • Contact the maintainers

About

A comprehensive screen recording tool with built-in video editing and sophisticated sharing controls.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors