A modern property management application built with React and Vite, featuring automated testing and CI/CD pipelines.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel (or oxc when used in rolldown-vite) for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.
# Install dependencies
npm install
# Start development server
npm run devOpen http://localhost:5173 in your browser.
# Run linter
npm run lint
# Run unit tests
npm test
# Run E2E tests (requires Playwright)
npm run test:e2e
# Run all test agents
npm run test:agents# Build for production
npm run build
# Preview production build
npm run previewThis project uses GitHub Actions for continuous integration and deployment:
- ✅ ESLint - Code quality and style checks
- ✅ Unit Tests - Vitest with coverage reporting
- ✅ E2E Tests - Playwright browser tests
- ✅ Build Verification - Ensures the app builds successfully
- 🌙 Full Test Agent Analysis - Comprehensive code quality report
- 🤖 Automated Issue Creation - Creates GitHub issues when tests fail
.github/workflows/ci.yml- Main CI pipeline.github/workflows/nightly-agents.yml- Scheduled test agents
Pull requests automatically receive:
- Linting results
- Test coverage reports
- E2E test results
- Build status
To trigger additional agent analysis in a PR, include [run-agents] in your commit message.
This application is designed to be maintained in a public repository without leaking your personal data.
- All data (properties, tenants, costs, etc.) is stored locally in your browser's IndexedDB.
- It is never sent to a server or stored as files within this repository.
- This means your data stays on your machine and is not tracked by Git.
- Never put real personal information in
src/db/migration.js. This file is for library defaults or demo data and will be committed. - If you want to export data for backup, save it in the
data/folder (which is ignored by Git) or anywhere outside this project directory. - Be careful when sharing screenshots of the application if it contains real tenant or property details.
(Coming Soon) Export/Import functionality to easily move your data between browsers or devices.