Skip to content

TomRadford/shootdrop

Repository files navigation

✨ ShootDrop 🎥

Version Maintenance License: GPL--3.0--only

Shoot asset list creation made easy 🎥💡🎤🎬

A tool to generate and share resource lists for film and television productions quickly.

✨Register to try it out at shootdrop.com

What is this?

During pre-production for video/film projects, making gear lists is time-consuming. I created ShootDrop as a simple, easy-to-use tool to quickly create gear lists.

Features

Drops

A drop is tied to a shoot in the real world, it serves as the home for all gear-related info pertaining to the shoot.

  • Collaborators can be added here. They can edit any lists attached to the drops they're on.
  • The URL is publically sharable for everyone on the production to stay up to date.
  • Overview of all list items - giving you an idea of the shoot at a glance.
  • PDF Generation to easily print and share with production teams.

Lists

A list is tied to a drop, it consists of Gear Items in a particular category (either camera, lighting, grips or sound).

  • Comments and preferences can be added for each list item.
  • Last edited by with time and user to keep track of who added what.

image

Gear

  • Categories (grips/lighting/camera/sound)
  • Tagging for easy filtering. Tags are either generic (eg: cable) or tied to categories (eg: lens or recorder)
  • Preferences (eg: Lens Mount or Power Solution)

image

Tech

Web

  • NextJS (React)
  • TailwindCSS
  • Apollo Client (GraphQL client and state management library)
  • Zustand (minimal state management where Apollo reactive variables would be overkill)

Api

  • NodeJS
  • Apollo Server
  • MongoDB (with Mongoose ODM)
  • AWS S3
  • AWS SES (Email Service)

Dev Setup

You need pnpm as your package manager. Install it globally with npm install -g pnpm if you don't have it already.

You can give this a spin on your local machine by installing NodeJS version 16 or higher.

Make sure you setup the environment variables in .example env files

Commands for running the app locally

In root directory of repo, open terminal.

pnpm install

pnpm dev:services

# Setup local bucket

chmod +x minio-setup.sh

./minio-setup.sh

pnpm dev:api

pnpm dev:web

Seed db

Get prod dump and then:

mongorestore --uri="mongodb://root:example@localhost:27017" dumps/240501_02-00

# open shell
db.createUser({
     user: "appuser",
     pwd: "yourpassword",
     roles: [ { role: "readWrite", db: "shootdrop" } ]
})

DEV_MONGODB_URI=mongodb://appuser:yourpassword@localhost:27017/shootdrop

Author

👤 Tom Radford

🤝 Issues and Feature requests

Feel free to check the issues page to request fixes and new features! Alternatively you can drop me a mail on [email protected]

🤝 Contributing

Drop me a mail [email protected]

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2025 Tom Radford.
See license.


Thanks for your interest in this project!

About

Shoot resource organisation made simple

Topics

Resources

License

Stars

Watchers

Forks