A web application that enables independent film directors to share project updates and receive pledges from supporters without needing technical expertise.
Margaret Bertoni
Utkarsh Dev
FundFilm website (Note: Admin password to access pledge edits is 123).
FundFilm simplifies film fundraising by providing directors with an easy-to-use platform to:
Share behind-the-scenes updates and project progress Engage directly with supporters without technical knowledge Track funding goals and pledges in real-time Build community around their film projects
The platform serves multiple user stories:
Film Directors: Post updates quickly without dealing with technical complexities Film Fans: Stay informed about project developments Prospective Patrons: Learn about films and pledge support Film Producers: Monitor donor details and manage communications
For Directors & Producers
Private Update Form: Accessible via direct link (not in navbar) for secure posting Quick Dashboard: View donor count and total funds raised at a glance Simple Update Interface: Post project updates without formatting knowledge Donor Management: Access detailed information about supporters
For Supporters & Fans
Project Overview: Learn about the film, director, and team Pledge System: Support projects with simple pledge forms (no payment processing) Transparency: View total funds raised and all pledges Updates Feed: Follow project progress with director updates
Pages
Home Page with Director/team Info and Pledge Info Pledge Form Updates Submission Form (Private Link Only) Updates Page
Quick summary
- Recommended Node.js: v18+ (Express v5 and some dev tools expect modern Node).
- Tested on macOS. MongoDB (local or Atlas) required.
Prerequisites (mac)
- Homebrew (optional): /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Node.js v18+ — install with Homebrew: brew install node@18
- MongoDB: use MongoDB Atlas or install locally:
- brew tap mongodb/brew && brew install mongodb-community
- Start local MongoDB: brew services start mongodb-community
Install and run locally
-
Clone and open project
- git clone
- cd FundFilm
- The primary branch is margaret-testing (we worked on separate branches & tried to merge into main but ran into issues, so ultimately Margaret pulled Utkarsh's files to her branch and manually merged)
-
Install dependencies
- npm install
-
Environment
- Create a file named .env at project root. Example: PORT=3000 MONGO_URI=mongodb://localhost:27017/fundfilm SESSION_SECRET=change_this_secret NODE_ENV=development
- If using MongoDB Atlas, set MONGO_URI to the Atlas connection string.
-
Run the app
- npm start
- package.json "start" uses nodemon to run backend.js
- To run without nodemon (production-like): NODE_ENV=production node backend.js
- npm start
-
Database seeding (optional)
- There is no seed script in package.json. If you need sample data:
- Add a seed script (e.g., scripts/seed.js) and run with node scripts/seed.js
- Or insert documents manually via MongoDB Compass / mongo shell / Atlas UI.
- There is no seed script in package.json. If you need sample data:
How to verify
- Open http://localhost:3000 (or the PORT you set).
- Check API endpoints (example):
Troubleshooting
- "npm start" fails because port in use:
- lsof -i :3000
- kill
- MongoDB connection errors:
- Verify MONGO_URI and that MongoDB is running.
- If using Atlas, whitelist your IP or use 0.0.0.0/0 for demos (not recommended for production).
- Wrong Node version: check with node -v and use nvm or Homebrew to switch.
- Missing script / different entry file:
- Inspect package.json to confirm start script and entry file (package.json currently runs backend.js via nodemon).
Notes
- package.json uses nodemon in the start script. For CI / production, run node backend.js or add a separate production script.
- Update .env and package.json scripts if your entry file or DB details differ.
Utkarsh
Director user story implementation Private updates form with secure link access Updates database schema and API Updates display page
Margaret
Pledgee user story implementation Homepage design and content Pledge form and database integration Pledges page with fundraising totals
This README was initially generated using Claude Sonnet 4.5 using the following query: Help me generate a README file for the FundFilm repo that has the following: Author Class Link :https://johnguerra.co/classes/webDevelopment_online_fall_2025/ Project Objective : Screenshot Instructions to build AI Usage section. and showcasing the following info... [pulled from Project Proposal]: The build instructions were developed with Github Copilot GPT-5 mini based on the package.json file and the existing README.
The logo was made using Adobe Illustrator's GenAI image generator. Asked it to make a logo for a film production company called "Husky Productions" using the Northeastern University colors.
When deploying to Render, there were deployment errors. Screenshots of the error log were submitted to Claude Sonnet 4.5 to help explain and troubleshoot what was causing the deployment issue.
Asked Claude Sonnet 4.5 questions about Express and Mongo to better understand routing, like the following question: As a full stack engineer, help me to learn how to get data out of a form where the submission is a http post type using Express or As a full stack engineer, without coding for now, please explain how you can redirect a user to another page using Express , As a full stack engineer, can you explain to me how to use the mongo node driver to add a new document using Express routes
Initially was revealing the connection key to MongoDB Atlas. Asked Claude to explain what options there were for not revealing the key: As a fullstack engineer, without coding yet, explain how to access a mongodb collection without publicalyy revealing the password
Frontend: HTML, CSS, Bootstrap, JavaScript Backend: Node.js, Express Database: MongoDB (Atlas)
MIT




