Next-generation community platform for Gems of War Guild Masters and players. Track progress, manage guilds, analyze statistics, simulate battles, and much more.
- Guild Management: Multi-tenant per-guild configuration and member tracking
- Discord Bot: Fully integrated Discord bot with slash commands
- Battle Simulator: Test team compositions and strategies
- Recommendation Engine: Get suggestions for optimal teams and strategies
- Analytics Pipeline: Comprehensive analytics and reporting
- Admin UI: RBAC-based admin panel with moderator tools
- Feature Flags: Dynamic feature toggling per guild or globally
- Job Scheduler: Cron and queue-based background jobs
- Import/Export: Google Sheets integration and CSV tools
- Audit Logs: Complete audit trail for all actions
This is a TypeScript monorepo using pnpm workspaces and Turbo:
StarForge/
βββ packages/
β βββ backend/ # Fastify REST API
β βββ bot/ # Discord.js bot
β βββ frontend/ # Vue 3 + Vite + Pinia + Router
β βββ admin-ui/ # Admin panel with RBAC
β βββ battle-sim/ # Battle simulation engine
β βββ recommendation/ # Recommendation engine
β βββ import-export/ # Data import/export tools
β βββ shared/ # Shared types and utilities
βββ database/ # Postgres/Supabase schema
βββ docker/ # Docker configurations
βββ .github/workflows/ # GitHub Actions CI/CD
- Fastify: High-performance REST API
- Supabase/Postgres: Database with Row Level Security
- Redis: Caching and job queue
- JWT: Authentication
- Vue 3: Progressive JavaScript framework
- Vite: Lightning-fast build tool
- Pinia: State management
- Vue Router: Client-side routing
- discord.js: Discord bot framework
- Slash Commands: Modern Discord interactions
- Docker Compose: Local development
- GitHub Actions: CI/CD pipeline
- Turbo: Monorepo build system
- Node.js 18+
- pnpm 8+
- Docker and Docker Compose
- PostgreSQL 15+ (or use Docker)
- Clone the repository:
git clone https://github.com/CorentynDevPro/StarForge.git
cd StarForge- Install dependencies:
pnpm install- Copy environment variables:
cp .env.example .env
# Edit .env with your configuration- Start the database:
docker-compose up -d postgres redis- Run database migrations:
psql -h localhost -U starforge -d starforge -f database/schema.sql
psql -h localhost -U starforge -d starforge -f database/seeds.sqlStart all services in development mode:
pnpm run devOr start individual packages:
pnpm run dev --filter @starforge/backend
pnpm run dev --filter @starforge/frontend
pnpm run dev --filter @starforge/bot
pnpm run dev --filter @starforge/admin-uiServices will be available at:
- Backend API: http://localhost:3000
- Frontend: http://localhost:5173
- Admin UI: http://localhost:5174
Start everything with Docker:
docker-compose upStop all services:
docker-compose downRun all tests:
pnpm testRun tests for a specific package:
pnpm test --filter @starforge/backendLint all packages:
pnpm run lintFormat code:
pnpm run formatCheck formatting:
pnpm run format:checkBuild all packages:
pnpm run buildBuild a specific package:
pnpm run build --filter @starforge/backend- Features Documentation - Detailed feature list
- API Documentation - Backend API endpoints
- Database Schema - Database structure
- Discord Bot Commands - Bot command reference
See .env.example for all required environment variables.
Key variables:
DATABASE_URL: PostgreSQL connection stringDISCORD_TOKEN: Discord bot tokenJWT_SECRET: JWT signing secretSUPABASE_URL: Supabase project URLSUPABASE_ANON_KEY: Supabase anonymous key
Build production images:
docker build -f docker/Dockerfile.backend -t starforge-backend .
docker build -f docker/Dockerfile.bot -t starforge-bot .
docker build -f docker/Dockerfile.frontend -t starforge-frontend .- Build all packages:
pnpm run build-
Set production environment variables
-
Start services:
pnpm start --filter @starforge/backend
pnpm start --filter @starforge/bot- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Gems of War community
- Taran's World website (predecessor)
- All contributors and supporters
For support, join our Discord server or open an issue on GitHub.
Made with β€οΈ for the Gems of War community