A full-stack movie studio management and entertainment-industry simulation game. Build a cinematic empire by hiring creative talent, producing films, planning marketing campaigns, releasing movies, and growing your studio through box-office revenue, fans, and prestige.
This repository participates in ECSOC 2026 and ELUSOC 2026. The project has also been selected for Nexus Spring of Code (NSoC) Winter Edition 2026.
- NSoC project: Box Office Inc - Movie Studio Simulator
- Project Admin / Project Kernel: Sahil Raj Verma
- Tech stack: React, Node.js, Express.js, MongoDB
- Program website: NSoC
- Project repository: GitHub
NSoC is a 45-day open-source program centered on meaningful issues, reviewed pull requests, and contributions that ship useful improvements. Contributors should start from a clear issue, discuss substantial changes with the project maintainer, and submit a focused pull request for review. Duplicate, spam, and low-effort changes are not welcome. Read CONTRIBUTING.md and follow the current official NSoC guidance for participation and contribution tracking. A merged contribution is not guaranteed to qualify for program recognition; eligibility and scoring are determined by the organizers.
Create and use these four repository labels for NSoC contributions:
nsoc26— required on every NSoC issue and pull request.level1— use for a Level 1 task.level2— use for a Level 2 task.level3— use for a Level 3 task.
Every NSoC pull request must carry nsoc26 and exactly one appropriate level label (level1, level2, or level3). Label the related issue consistently. The labels help organize project work; follow any additional instructions published by the NSoC organizers.
Merge a pull request only when every requirement below is satisfied:
- The PR is assigned to a contributor and linked to a valid, relevant issue.
- It contains meaningful code or documentation changes—not a zero-line change or a trivial edit made only to claim participation.
- The implementation works, and the code is clean, understandable, and consistent with the project.
- Documentation is added or updated wherever needed.
- The PR has the
nsoc26label and the correct single level label. - The PR has been properly reviewed and approved by a maintainer.
- The
.gitignorefile is used correctly: do not commit secrets, local environment files, dependencies, build output, or other generated/local-only files. - Relevant tests, lint checks, and build checks have been run; results are reported honestly in the PR.
Do not merge a PR if any requirement is missing. Ask the contributor to address the gap first. These are repository review requirements and do not guarantee NSoC points or official recognition.
Become the head of your own movie studio and experience every stage of filmmaking—from discovering scripts and hiring actors to managing production, marketing, and worldwide theatrical releases. Your decisions affect the studio's reputation, finances, and long-term success.
- Financial management
- Studio reputation system
- Weekly payroll
- Revenue and expense tracking
- Hire writers and directors
- Recruit actors
- Manage production crews
- Progress talent over time
- Script marketplace
- Multi-stage production pipeline
- Marketing campaigns
- Movie release management
- Weekly simulation engine
- Dynamic box office
- Audience and critic ratings
- Financial analytics
| Layer | Technologies |
|---|---|
| Frontend | React, Vite, Redux Toolkit, Tailwind CSS |
| Backend | Node.js, Express.js |
| Database | MongoDB |
| Deployment | Vercel (frontend deployment configuration) |
- Node.js (use the version supported by the project package files)
- npm
- MongoDB connection string
git clone https://github.com/SRV30/Box_Office_Inc-Movie_Sim.git
cd Box_Office_Inc-Movie_SimCreate local environment files from the provided examples:
- Copy
backend/.env.exampletobackend/.env - Copy
frontend/.env.exampletofrontend/.env
Fill in the required values locally. Never commit real secrets or production credentials. See the environment-variable reference below.
cd backend
npm install
npm run devIn a second terminal, from the repository root:
cd frontend
npm install
npm run devUse the local URLs printed by the development servers. Confirm the actual scripts and required environment variables in the relevant package files before troubleshooting setup issues.
To seed the simulation with competitor studios and talent records, run the following from the repository root:
cd backend
node src/scripts/seedIndustryMarket.jsRun seed scripts only against the intended development database. Review the script before running it against any database containing data you need to preserve.
| Variable | Required | Description | Example |
|---|---|---|---|
MONGO_URI |
Yes | MongoDB connection string | mongodb+srv://<user>:<password>@<cluster>/<database> |
JWT_ACCESS_SECRET |
Yes | Secret used to sign access tokens | Generate a unique random secret |
JWT_REFRESH_SECRET |
Yes | Secret used to sign refresh tokens | Generate a different random secret |
CLIENT_URL |
Yes | Frontend origin used for CORS | http://localhost:5173 |
PORT |
No | Backend port | 5000 |
NODE_ENV |
No | Runtime environment | development |
JWT_ACCESS_EXPIRE |
No | Access-token lifetime | 15m |
JWT_REFRESH_EXPIRE |
No | Refresh-token lifetime | 30d |
| Variable | Required | Description | Example |
|---|---|---|---|
VITE_BACKEND_API_URL |
Yes | Backend API base URL | http://localhost:5000/api |
Use the committed .env.example files as the source of truth for required keys. Do not put server-side secrets in frontend environment variables; Vite-exposed variables are included in client-side code.
- System architecture
- V1 release architecture and quality gate
- V1 simulation acceptance report
- Contribution guidelines
- Security policy
- Code of conduct
backend/
api/
src/
config/
controllers/
models/
routes/
services/
utils/
frontend/
src/
api/
app/
components/
features/
pages/
This is a simplified overview; consult the actual directories and ARCHITECTURE.md for details.
Before opening a pull request, run the relevant tests and build commands available in the frontend and backend package files. Include the commands run and their results in the PR description. Do not claim tests passed unless they were actually run.
We welcome focused contributions that improve gameplay, reliability, accessibility, security, testing, and documentation.
- Read CONTRIBUTING.md.
- Search existing issues and pull requests to avoid duplicates.
- Ask for issue assignment or maintainer approval before beginning substantial work.
- Keep changes scoped to the issue and add or update tests where appropriate.
- Open a pull request that explains the problem, solution, testing, and any user-visible changes.
For NSoC issues and pull requests, apply nsoc26 and exactly one of level1, level2, or level3, as described above. For ECSOC/ELUSOC-specific contribution labels, follow the instructions in CONTRIBUTING.md. Always follow the current official program guidance and any additional instructions from the organizers.
Potential future improvements include AI studios, an awards system, franchises and sequels, seasonal events, dynamic industry trends, and multiplayer features. These are roadmap ideas and should not be interpreted as already implemented.
This project is distributed under the MIT License.