Thank you for your interest in contributing! This document explains how to set up the development environment, run the project locally, and submit changes.
Please read and follow our Code of Conduct before contributing.
- Node.js 20+ (check with
node --version) - npm 9+ (check with
npm --version) - A Firebase project with Firestore and Google Auth enabled
- An OpenRouter API key
git clone https://github.com/YOUR_USERNAME/fluentpm.git
cd fluentpmnpm installCopy the example env file and fill in your credentials:
cp .env.example .envEdit .env with your Firebase config and OpenRouter key. Never commit this file.
npm run devThe app will be available at http://localhost:5173.
npm run lintFix any ESLint errors before opening a PR. PRs with lint failures will not be merged.
npm run buildMake sure the production build passes with zero errors.
- Branch naming:
feat/short-description,fix/short-description, orchore/short-description - One concern per PR — keep changes focused and reviewable
- No direct pushes to
main— all changes must go through a PR - Describe your change in the PR body: what problem it solves, how it was tested, any screenshots for UI changes
- Reference any related Issues using
Closes #123orFixes #123
src/
components/ # React screen components
data/ # Static data (scenarios, phrases, opponents)
hooks/ # Custom React hooks
lib/ # Utilities (Firebase, OpenRouter, Speech APIs)
Open a GitHub Discussion for general questions, or open an Issue for bugs and feature requests.