Skip to content

sal0115/resource-ai

ResourceAI

Open-source, AI-assisted resource management for agencies and teams: allocation grids, conflict awareness, an AI assistant (“Remi”) via Anthropic Claude, and cross-PM approvals.

ResourceAI Dashboard

Features

  • Department View — Allocation grid with bookings and utilisation
  • Project View — Single-project resource breakdown
  • Unassigned Requests — Open resource requests
  • AI assistant — Availability, bookings, and project help (requires ANTHROPIC_API_KEY)
  • Conflict detection — Overallocation and suggestions
  • Cross-PM approvals — Changes affecting another PM’s work can require approval
  • Real-time — Socket.IO for live updates

Tech stack

Layer Technology
Backend Node.js 20+, Express 4, TypeScript
Database PostgreSQL 16, Prisma
Frontend React, TypeScript, Vite, Tailwind CSS
AI Anthropic Claude (tool use)
Real-time Socket.IO
Auth JWT

Prerequisites

  • Node.js 20+ (see .nvmrc for a recommended major)
  • Docker (for PostgreSQL via Compose)
  • Anthropic API key for AI features

Quick start

git clone <repo-url> resource-ai
cd resource-ai
npm install
cd frontend && npm install && cd ..
cp .env.example .env
# Edit .env — set ANTHROPIC_API_KEY at minimum
docker compose up -d
npx prisma migrate dev
npm run seed
npm run dev

Environment

Copy .env.example to .env. Important variables:

Variable Description
DATABASE_URL PostgreSQL connection string
JWT_SECRET Signing secret; in production must be ≥32 characters
FRONTEND_URL Comma-separated browser origins for CORS (default: http://localhost:5173)
ANTHROPIC_API_KEY Required for AI chat
TRUST_PROXY Set to 1 when behind a reverse proxy (for correct client IP / rate limits)

Seeding

  • npm run seed (default) — Small synthetic dataset only (@example.com people). No Excel file required.
  • npm run seed:xlsx — Load a workbook; set SEED_XLSX_PATH or see docs/README.md. Use this for private full datasets; do not commit proprietary spreadsheets to a public repo.

Default demo accounts (after minimal seed)

Role Email Password
Superadmin superadmin@example.com superadmin123
PM / CS users alex.morgan@example.com, dana.singh@example.com changeme123

These passwords are for local development only. Change them before any production or public deployment. Override superadmin via SEED_SUPERADMIN_* in .env, or run npm run ensure-superadmin against your database.

Project layout

resource-ai/
├── prisma/ # Schema, migrations, seed
├── src/              # Express API, services, AI
├── frontend/         # Vite + React UI
├── docs/             # Technical PRD (reference), seed notes
├── scripts/          # Utilities (e.g. ensure-superadmin, private snapshot)
└── docker-compose.yml

API

  • Prefix: /api/v1
  • Except POST /api/v1/auth/login, routes expect Authorization: Bearer <jwt>.
  • Response shape: { data, meta, errors }.

Scripts

Command Description
npm run dev Backend + frontend
npm run typecheck Typecheck API and UI
npm run build Production build
npm run seed Synthetic minimal seed
npm run seed:xlsx Seed from Excel (SEED_SOURCE=xlsx)
npm run ensure-superadmin Ensure superadmin user from env

Private backup of your repo

To keep a full private copy of history before open-sourcing:

chmod +x scripts/create-private-snapshot.sh
./scripts/create-private-snapshot.sh ~/resource-ai-private.bundle
# Later: git clone ~/resource-ai-private.bundle my-private-copy

Or: git clone --mirror <your-remote-url> resource-ai-private-mirror

Security

See SECURITY.md for reporting issues and self-hosting notes.

Contributing

See CONTRIBUTING.md.

Code of Conduct

See CODE_OF_CONDUCT.md.

License

MIT

Acknowledgements

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages