Modern utility meter management system for apartment buildings with user-friendly interface and reliable backend.
Apartment Meters is a full-featured system for managing utility meters in apartment buildings. The application allows residents to easily submit water meter readings, while administrators can monitor resource consumption and manage user accounts.
The project is built using clean architecture principles:
API/
āāā apartment-meters.API # Presentation layer (Controllers, Middleware)
āāā apartment-meters.Application # Application layer (Use Cases, DTOs, Validators)
āāā apartment-meters.Domain # Domain layer (Entities, Repositories interfaces)
āāā apartment-meters.Infrastructure# Infrastructure layer (External services)
āāā apartment-meters.Persistence # Data access layer (EF Core, Repositories)
āāā apartment-meters.Tests # Unit and integration tests
Clone the repository:
git clone https://github.com/vladkozhuhov/apartment-meters.git
cd apartment-meters
Start the application using Docker Compose:
docker-compose up
Navigate to the API directory:
cd apartment-meters/API
Restore dependencies and run the project:
dotnet restore
dotnet run --project apartment-meters.API
Navigate to the UI directory:
cd apartment-meters/UI
Install dependencies and start the application:
npm install
npm start
main
ā main branch containing stable release codedevelop
ā development branch containing code for the next releaseCreate a new branch from develop
:
git checkout develop
git pull
git checkout -b feature/my-feature
Implement the feature and create a pull request to develop
The project uses GitHub Actions for automation:
CI Pipeline (.github/workflows/ci.yml) ā runs on every push and PR
CD Pipeline (.github/workflows/cd.yml) ā runs after successful CI on main branch
Release Pipeline (.github/workflows/release.yml) ā runs when a version tag is created
Detailed CI/CD documentation is available in .github/CI_CD_README.md