AI-Powered Production Feasibility Analysis for Film Pre-Production
SceneGuard helps film production teams evaluate scene feasibility before shooting begins. It analyzes scenes for safety risks, logistics complexity, budget pressure, and technical challengesβgiving you clear, actionable insights to make better production decisions.
This project is open source and available under the MIT License.
Before you can run this project on your computer, you'll need to install a few free tools. Don't worryβthese are one-time installations!
- What it is: Software that lets you run JavaScript on your computer
- Download: Go to nodejs.org
- Which version: Download the LTS version (the green button)
- How to install:
- Windows: Double-click the downloaded file and follow the installer
- Mac: Double-click the
.pkgfile and follow the installer - Verify it worked: Open a terminal/command prompt and type:
You should see something like
node --version
v20.11.0(the exact number doesn't matter, as long as it's above v18)
- What it is: A tool that helps you download and manage code from GitHub
- Download: Go to git-scm.com
- How to install:
- Windows: Download the installer and keep clicking "Next" (default settings are fine)
- Mac: Git is usually already installed. If not, download from the website above
- Verify it worked: Open a terminal/command prompt and type:
You should see something like
git --version
git version 2.43.0
- Recommended: Visual Studio Code (it's free!)
- Why: It's beginner-friendly and works on Windows, Mac, and Linux
- How to install: Download from the website and run the installer
You'll need free accounts for these services:
-
Gemini API Key (for AI analysis):
- Go to ai.google.dev
- Click "Get API Key" β Sign in with Google β Create a new API key
- Copy the key (looks like:
AIzaSy...)
-
Clerk Keys (for user login):
- Go to clerk.com
- Sign up for free β Create a new application
- Copy the Publishable Key and Secret Key from the dashboard
-
Weather API Key (for weather feasibility):
- Go to visualcrossing.com
- Sign up for the free tier (1000 requests/day)
- Copy your API key
-
Database (for storing analysis history):
- Go to neon.tech
- Sign up for free β Create a new project
- Copy the connection string (looks like:
postgresql://...)
-
Open your terminal/command prompt:
- Windows: Press
Win + R, typecmd, press Enter - Mac: Press
Cmd + Space, typeterminal, press Enter
- Windows: Press
-
Navigate to where you want to save the project:
cd Desktop(This will save it to your Desktop. You can choose a different folder if you prefer)
-
Download the project from GitHub:
git clone https://github.com/Yaser-123/SceneGuard.git
-
Go into the project folder:
cd SceneGuard
-
Create a special file for your API keys:
In the project folder, create a new file called
.env.local- Easy way: Right-click in the folder β New β Text Document β Name it
.env.local(make sure to delete the.txtextension!) - Or use your code editor: Open VS Code β File β New File β Save As β
.env.local
- Easy way: Right-click in the folder β New β Text Document β Name it
-
Copy this template into the
.env.localfile:NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key_here CLERK_SECRET_KEY=your_clerk_secret_key_here GEMINI_API_KEY=your_gemini_api_key_here WEATHER_API_KEY=your_weather_api_key_here DATABASE_URL=your_neon_database_url_here -
Replace the placeholders with your actual API keys:
- Replace
your_clerk_publishable_key_herewith the key you copied from Clerk (starts withpk_) - Replace
your_clerk_secret_key_herewith the secret key from Clerk (starts withsk_) - Replace
your_gemini_api_key_herewith your Gemini API key (starts withAIza) - Replace
your_weather_api_key_herewith your Visual Crossing API key - Replace
your_neon_database_url_herewith your Neon database connection string (starts withpostgresql://)
- Replace
-
Save the file
"Dependencies" are like building blocks that the app needs to work. Don't worryβthis is automatic!
-
Make sure you're still in the SceneGuard folder (you should see a message showing the folder path)
-
Run this command:
npm install
-
Wait for it to finish (this might take 1-3 minutes the first time)
- You'll see a lot of text scrolling byβthis is normal!
- When it's done, you'll see your folder path again
-
Start the development server:
npm run dev
-
You'll see a message like:
β Ready in 2.5s β Local: http://localhost:3000 -
Open your web browser and go to:
http://localhost:3000 -
You should see SceneGuard running! π
When you're done testing:
- Go back to your terminal/command prompt
- Press
Ctrl + C(Windows/Mac/Linux) - Type
Yif it asks "Terminate batch job?"
Problem: Node.js isn't installed or not in your system path
Solution:
- Restart your terminal/command prompt after installing Node.js
- If that doesn't work, reinstall Node.js from nodejs.org
Problem: Another app is using port 3000
Solution:
- Stop the other app, or
- Change the port by editing
package.json: find"dev": "next dev"and change it to"dev": "next dev -p 3001"
Problem: Dependencies didn't install correctly
Solution:
rm -rf node_modules
npm install(On Windows, manually delete the node_modules folder, then run npm install)
Problem: Your .env.local file has incorrect API keys
Solution:
- Double-check that you copied the full API keys (no extra spaces)
- Make sure the file is named exactly
.env.local(not.env.local.txt) - Restart the app after changing the
.env.localfile
Problem: Your Neon database URL is incorrect or the database is sleeping
Solution:
- Check that you copied the full connection string from Neon
- Go to your Neon dashboard and make sure the project is active (free tier databases sleep after inactivity)
Here's what's in the project (you don't need to understand this to run it, but it's helpful to know):
SceneGuard/
βββ app/ # Main application pages
β βββ page.tsx # Home page
β βββ dashboard/ # Analysis dashboard
β βββ api/ # Backend API routes
βββ components/ # Reusable UI components
βββ lib/ # Analysis logic (risk, cost, weather)
βββ public/ # Images and static files
βββ .env.local # Your API keys (YOU CREATE THIS)
βββ package.json # Project dependencies
βββ README.md # This file!
Want to share your app with others? Deploy it for free on Vercel:
-
Push your code to GitHub (if you haven't already):
git add . git commit -m "Ready to deploy" git push
-
Go to vercel.com
-
Click "Import Project" β Select your GitHub repository
-
Add your environment variables:
- Go to project Settings β Environment Variables
- Add each variable from your
.env.localfile
-
Click Deploy β Your app will be live in ~2 minutes!
Found a bug? Have a feature idea? Contributions are welcome!
- Fork the repository (click "Fork" on GitHub)
- Create a new branch:
git checkout -b my-feature
- Make your changes
- Commit and push:
git add . git commit -m "Add my feature" git push origin my-feature
- Open a Pull Request on GitHub
- GitHub Issues: Report a bug or ask a question
- Documentation: See
HACKATHON_DOCUMENTATION.mdfor technical details
Built with:
- Next.js 16 - React framework
- Gemini AI - Scene analysis
- Clerk - User authentication
- Neon - Serverless Postgres database
- Tailwind CSS - Styling
Made with β€οΈ for film production teams everywhere