Setup Instructions
GitHubFollow these steps to set up your own FIRST TeamMatch instance for your state or region.
Prerequisites
- • Node.js 18+ and npm
- • A Firebase account (free tier works)
- • A GitHub account (for cloning the repository)
- • Basic knowledge of command line and web development
1Clone and Install
Clone the repository and install dependencies:
$ git clone https://github.com/your-org/first-teammatch.git
$ cd first-teammatch
$ npm install
2Configure Your Instance
Copy the environment template and customize it:
$ cp env-template.txt .env.local
Open .env.local and customize the following:
# State/Region Information
NEXT_PUBLIC_STATE_NAME=YourState
NEXT_PUBLIC_STATE_ABBREVIATION=XX
NEXT_PUBLIC_REGION_NAME=YourState
# Organization Information
NEXT_PUBLIC_ORG_NAME=Your Team Name
NEXT_PUBLIC_ORG_LOCATION=City, State
NEXT_PUBLIC_ORG_WEBSITE=https://your-team-website.org
NEXT_PUBLIC_ORG_EMAIL=your-email@example.com
# Contact & Branding
NEXT_PUBLIC_CONTACT_EMAIL=your-email@example.com
NEXT_PUBLIC_APP_NAME=FIRST TeamMatch YourState
NEXT_PUBLIC_APP_DESCRIPTION=Connecting students...
3Set Up Database
Create Firebase Project
- Go to Firebase Console
- Click "Add project" and enter a project name
- Follow the setup wizard (Google Analytics is optional)
Enable Authentication
- Go to Authentication → Get started
- Click Sign-in method tab
- Enable Email/Password provider
- Click Save
Create Firestore Database
- Go to Firestore Database → Create database
- Choose Start in production mode
- Select a location closest to your users
- Click Enable
- Go to Rules tab, replace with rules from firestore.rules in this repository, click Publish
Set Up Firebase Storage
- Go to Storage → Get started
- Choose Start in production mode
- Use the same location as your Firestore database
- Click Done
- Go to Rules tab, replace with rules from storage.rules in this repository, click Publish
Get Firebase Configuration
- Go to Project Settings (gear icon) → Your apps
- Click the Web icon to add a web app
- Register your app (nickname is optional)
- Copy the Firebase configuration values
- Add them to your .env.local file
NEXT_PUBLIC_FIREBASE_API_KEY=your-api-key-here
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your-project-id.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your-project-id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your-project-id.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your-messaging-sender-id
NEXT_PUBLIC_FIREBASE_APP_ID=your-app-id
4Test Locally
Start the development server:
$ npm run dev
Open http://localhost:3000 in your browser. You should see your customized homepage.
5Create Your First Admin Account
- Register a new team account through the app (use "I'm a Team" button)
- Use the admin management script to promote them to admin:$ npm run manage:admins -- add your-email@example.com
Or manually in Firebase Console: Go to Firestore Database, create a document in the admins collection with the user's UID as the document ID, and add an email field.
6Deploy Your Instance
Deploy to Vercel (Recommended)
- Push your code to GitHub
- Go to Vercel and sign in with GitHub
- Click "Add New Project" and import your repository
- Add ALL environment variables from your
.env.localfile - Click "Deploy"
Other Deployment Options
The app can be deployed to any platform that supports Next.js:
- AWS Amplify
- Netlify
- Railway
- Your own server (build with
npm run buildand run withnpm start)
Security Checklist
Click each item to check it off as you complete it. (This checklist resets when you reload the page.)
- Firestore security rules are published
- Storage security rules are published
- Admin accounts are properly set up
- Environment variables are set in production
- Firebase Authentication is enabled
- You've tested the registration flow
- You've tested the admin dashboard
Need Help?
For questions or issues, contact the original developers:
Email