A monorepo project built with Nx workspace architecture.
- api - Firebase Functions API
- firebase-app - Main Firebase application
- game-engine - Game engine Firebase function
- github-receiver - GitHub webhooks receiver Firebase function
- @codeheroes/common - Shared utilities and models
- @codeheroes/database-seeds - Database seeding tools
- @codeheroes/external-shared - External integrations shared code
- @codeheroes/github-models - GitHub webhook models
- @codeheroes/migration - Database migration tools
- @codeheroes/migration-github-shared - GitHub migration shared code
- @codeheroes/shared - Core shared library
- Node.js
- Firebase CLI:
npm install -g firebase-tools
- NX CLI:
npm install -g nx
-
Install dependencies:
npm install
-
Configure Firebase project:
- Create a
.env
file in the root directory - Set your Firebase project ID:
FIREBASE_PROJECT_ID=your-firebase-project-id
- Run the setup script:
npm run setup
- Create a
-
Start development environment:
- To start the Firebase emulator suite with the firebase-app:
nx serve firebase-app
This will:
- Start the Firebase emulators (Functions, Firestore, Auth, etc.)
- Watch for code changes and rebuild automatically
- Import/export emulator data from
.emulators
directory
- To start the Firebase emulator suite with the firebase-app:
-
Access development environment:
- Firebase Emulator UI: http://localhost:4000
- Functions Emulator: http://localhost:5001
- Firestore Emulator: http://localhost:8080
- Auth Emulator: http://localhost:9099
- Create a feature branch
- Make your changes
- Run tests:
nx affected:test
- Run lint:
nx affected:lint
- Submit a pull request
This project is licensed under the ISC License - see the LICENSE file for details.