A comprehensive, production-ready web application framework built with modern technologies and enterprise-grade architecture patterns.
This project implements a Clean Architecture pattern with CQRS (Command Query Responsibility Segregation) using MediatR, providing a scalable and maintainable foundation for enterprise applications.
Backend:
- ASP.NET Core 8.0 - Web API framework
- Entity Framework Core 8.0 - ORM with PostgreSQL
- MediatR - CQRS implementation
- FluentValidation - Input validation
- AutoMapper - Object mapping
- ASP.NET Core Identity - Authentication & Authorization
- JWT Bearer Tokens - Stateless authentication
- Google OAuth 2.0 - Social authentication
- Stripe.NET - Payment processing
- Serilog - Structured logging
- Swagger/OpenAPI - API documentation
Frontend:
- Vite 5.x - Build tool and dev server
- React 18.x - UI framework
- TypeScript 5.x - Type safety
- Tailwind CSS 3.x - Utility-first CSS
- React Router 6.x - Client-side routing
- React Query (TanStack Query) - Server state management
- React Hook Form - Form handling
- Zod - Schema validation
- Axios - HTTP client
- Stripe.js - Payment integration
Infrastructure:
- PostgreSQL 15+ - Primary database
- Redis - Caching and session storage
- Elasticsearch 8.x - Full-text search
- Apache Kafka - Event streaming and message queuing
- Snowflake - Data warehouse (planned)
- Docker - Containerization
- Kubernetes (EKS) - Container orchestration
- Terraform - Infrastructure as Code
DevOps & Quality:
- NUnit - Unit testing
- TestContainers - Integration testing
- Playwright - End-to-end testing
- ESLint & Prettier - Code quality
- StyleCop & Roslynator - .NET code analysis
- GitHub Actions - CI/CD pipeline
- .NET 8.0 SDK
- Node.js 18+ and npm
- Docker and Docker Compose
- PostgreSQL (or use Docker)
- Git
-
Clone the repository
git clone <repository-url> cd Core
-
Start infrastructure services
cd docker docker-compose up -d postgres redis elasticsearch kafka -
Configure environment variables
# Backend cp src/backend/RentalManager.API/appsettings.Development.json.example src/backend/RentalManager.API/appsettings.Development.json # Frontend cp src/frontend/env.example src/frontend/.env.development
-
Start the backend
cd src/backend dotnet restore dotnet run --project RentalManager.API -
Start the frontend
cd src/frontend npm install npm run dev -
Access the application
- Frontend: http://localhost:3000
- Backend API: https://localhost:7001
- Swagger UI: https://localhost:7001/swagger
- Database Admin: http://localhost:8080 (Adminer)
For a fully containerized development environment:
cd docker
docker-compose -f docker-compose.yml -f docker-compose.dev.yml upCore/
βββ src/
β βββ backend/ # .NET Backend
β β βββ RentalManager.API/ # Web API layer
β β βββ RentalManager.Application/ # CQRS handlers, DTOs, validators
β β βββ RentalManager.Domain/ # Entities, value objects, domain events
β β βββ RentalManager.Infrastructure/ # EF Core, external services
β β βββ RentalManager.Database/ # Database schema management
β βββ frontend/ # React Frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API services
β β βββ types/ # TypeScript type definitions
β β βββ utils/ # Utility functions
β β βββ contexts/ # React contexts
βββ tests/ # Test projects
β βββ RentalManager.UnitTests/ # NUnit unit tests
β βββ RentalManager.IntegrationTests/ # Integration tests
β βββ RentalManager.E2ETests/ # Playwright E2E tests
βββ docker/ # Docker configurations
βββ kubernetes/ # K8s manifests
βββ terraform/ # Infrastructure as Code
βββ docs/ # Documentation
- Google OAuth 2.0 integration
- JWT token authentication with refresh tokens
- Role-based and policy-based authorization
- Secure password policies
- Stripe integration for credit/debit cards and ACH
- Subscription billing with prorated changes
- One-time payments with idempotency
- Webhook handling for payment events
- Payment method management
- Refund processing
- User registration and profile management
- Account verification and email notifications
- User preferences and settings
- Admin user management
- Elasticsearch full-text search
- Event streaming with Apache Kafka
- Data warehouse integration (Snowflake)
- Real-time search indexing
- Hangfire for scheduled jobs
- Kafka consumers for event processing
- Async workflows for underwriting
- Email notifications and reporting
cd tests/RentalManager.UnitTests
dotnet testcd tests/RentalManager.IntegrationTests
dotnet testcd tests/RentalManager.E2ETests
npm install
npx playwright testcd docker
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -dcd kubernetes
kubectl apply -f .cd terraform
terraform init
terraform plan
terraform apply- Architecture Overview
- API Documentation
- API Versioning Strategy
- Authentication Guide
- Payment Processing
- Deployment Guide
- Contributing Guidelines
- Getting Started Guide
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the docs folder
- Issues: Create an issue on GitHub
- Discussions: Use GitHub Discussions for questions
- Phase 1: Core authentication and user management
- Phase 2: Payment processing and subscriptions
- Phase 3: Search and analytics capabilities
- Phase 4: Advanced features and optimizations
- Phase 5: Mobile app integration
Built with β€οΈ using modern web technologies