INfamis (Integrated Facilities and Asset Management Information System) is a modern replacement for the University of Idaho's legacy FAMIS system. It provides facilities management, asset tracking, and maintenance operations through a modern web interface.
Built from the UI-Insight TEMPLATE-app using patterns from OpenERA.
- Python 3.11+
- Node.js 22+ and npm
- Docker and Docker Compose (optional, for containerized development)
Backend (Terminal 1):
cd backend
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp ../.env.example ../.env # Then edit .env with your settings
uvicorn app.main:app --reload --port 8000Frontend (Terminal 2):
cd frontend
npm install
npm run devThe frontend dev server runs at http://localhost:5173 and proxies API requests to http://localhost:8000.
docker compose up --buildAccess the application at http://localhost:9200. The frontend nginx container proxies /api/ requests to the backend.
├── backend/ # FastAPI application
│ ├── app/
│ │ ├── api/v1/ # Route handlers
│ │ ├── auth/ # Authentication logic
│ │ ├── db/ # Database engine and seeds
│ │ ├── models/ # SQLAlchemy ORM models
│ │ ├── schemas/ # Pydantic schemas
│ │ ├── services/ # Business logic
│ │ ├── config.py # Settings
│ │ └── main.py # App entry point
│ └── tests/
├── frontend/ # React application
│ └── src/
│ ├── api/ # API client modules
│ ├── components/ # UI components
│ ├── pages/ # Route pages
│ └── types/ # TypeScript interfaces
├── docs/ # MkDocs documentation
├── CLAUDE.md # Canonical tracked AI agent context
├── .claude/README.md # Local tool-helper guidance
└── docker-compose.yml
See CLAUDE.md for the complete project structure and conventions.
# Backend
cd backend && pytest -v --tb=short
# Frontend
cd frontend && npm run build && npm test# Backend
cd backend && ruff check . && ruff format .
# Frontend
cd frontend && npx eslint .cd e2e
npm install
npm testThe Playwright config starts the frontend dev server automatically on
http://127.0.0.1:4173 for the homepage smoke test.
If Playwright reports that Chromium is missing on first run, install it with:
cd e2e
npm run install:browserspip install mkdocs-material
python scripts/check_template_docs.py
mkdocs serveSee CONTRIBUTING.md for guidelines.
All contributors must follow the Code of Conduct.
See SECURITY.md for vulnerability reporting instructions. CI also generates dependency audit artifacts and SBOMs from the GitHub Actions workflows.
- Built on patterns from OpenERA by the University of Idaho
- Part of the UI-Insight initiative