# MicCheck

[![GitHub CI](https://github.com/wamplerj/mic-check/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/wamplerj/mic-check/actions/workflows/ci.yml)
[![Gitea CI](https://git.wampler.us/wamplerj/mic-check/actions/workflows/ci.yml/badge.svg?branch=main)](https://git.wampler.us/wamplerj/mic-check/actions?workflow=ci.yml)
![Coverage](badges/coverage.svg)

Open source feature flag management platform. Manage projects, environments, feature flags, segments, and identities across your apps.

Built with .NET (API) and Vue.js + Vuetify (admin UI).

## Structure

```
src/
  api/MicCheck.Api/        .NET API — REST endpoints, organized by feature (Features, Projects, Environments,
                            Segments, Identities, Organizations, Webhooks, Audit, Users)
  admin/                    Vue.js + Vuetify admin SPA
  MicCheck.AppHost/         .NET Aspire orchestration host for local dev
  MicCheck.ServiceDefaults/ Shared .NET Aspire service defaults (telemetry, health checks)
tests/
  api/MicCheck.Api.Tests.Unit/         Unit tests
  api/MicCheck.Api.Tests.Integration/  Integration tests
docs/
  admin/                    Admin implementation plans/output docs
  api/                      API implementation plans/output docs
```

Code in the API is organized by feature area (e.g. `Features`, `Segments`, `Identities`) rather than by technical layer.

## Running locally

`MicCheck.AppHost` (.NET Aspire) orchestrates the API, admin app, and supporting services for local development.

```sh
./dev-build.sh
aspire run --project src/MicCheck.AppHost
```

## Testing

```sh
dotnet test
```

## License

MIT — see [LICENSE](LICENSE).
