People Manager is a full-stack web app for engineering managers to track people, teams, one-on-ones, goals, feedback, and check-ins.
- Client: React 18, TypeScript, Vite, Apollo Client, MUI Joy/Material
- Server: Node.js, TypeScript, Apollo Server, Express middleware, Mongoose
- Data: MongoDB
client/: frontend appserver/: GraphQL API and domain logicAGENTS.md: contributor and coding-agent guardrailsTODOS.md: prioritized backlog
- Node.js
23.x(required byserver/package.jsonengines) - npm
10+ - MongoDB instance (local or remote)
MONGO_URI: MongoDB connection stringJWT_SECRET: secret used for auth token signing/verification (required)PORT: API port (optional, defaults to4000)NODE_ENV:developmentorproduction(optional)
VITE_GRAPHQL_ENDPOINT: GraphQL endpoint URL (example:http://localhost:4000/)
- Install server dependencies:
cd server
npm install- Create server env file:
cp .env.sample .env- Start API in dev mode:
npm run start-dev- In a second terminal, install client dependencies:
cd client
npm install- Ensure
client/.env.developmenthas the correct API URL. - Start client:
npm run devDefault local URLs:
- Client:
http://localhost:5173 - API:
http://localhost:4000/
npm run dev: start Vite dev servernpm run build: production buildnpm run lint: eslintnpm run generate: GraphQL codegen and copy generated server types
npm run start-dev: start via nodemon + ts runtimenpm run start-dev:force: ts runtime without type checksnpm run build: compile TypeScript todist/npm run start: run compiled output
When GraphQL operations or schema types change:
- Update operation files under
client/src/graphql/**. - Run:
cd client
npm run generateThis project uses local schema files for codegen (client/src/graphql/schema-base.graphql + server/src/models/**/typeDefs.ts), so a running API is not required.
3. Commit generated updates in:
client/src/generated.tsserver/src/generated.ts
- Core CRUD for people, teams, roles, notes, goals, check-ins, and feedback exists.
- Dashboard and reporting flows are implemented.
- Legacy GitHub/Jira/OpenAI/Anthropic integration code paths have been removed to simplify the baseline.
- Root documentation and test coverage are still early-stage and being improved.
JWT_SECRETis required and should be high-entropy in every environment.- Never log bearer tokens or auth headers.
- Keep API tokens in environment variables only.
See TODOS.md for prioritized work, including:
- Frontend CRUD UX polish for people/teams/roles/notes
- Baseline test coverage and CI
- Additional security and reliability hardening