CloudJ is a prototype-simulator of an IT solutions marketplace built with .NET Core. The platform provides a comprehensive cloud-based ecosystem for discovering, purchasing, and deploying software solutions.
This IT solutions marketplace prototype includes the following core services:
- Authentication Service - Based on IdentityServer with support for external authentication providers
- Solutions Service - Implements business logic for software solution models (CRUD operations, filtering, review system, and pricing plans)
- Billing Service - Handles regular user orders (user balance top-up/update, solution purchase, and cloud access simulation)
- Curated Collections Service - Manages themed collections created by the marketplace owner
The application is built on .NET Core and implements RESTful APIs for all its services, significantly simplifying integration. The programming interface includes comprehensive Swagger documentation for easy API exploration and testing.
The client-side implementation uses MVC architecture for time efficiency. Future versions will transition to a Single Page Application (SPA) built with Angular for enhanced user experience.
To enable automatic deployment of user products, we utilize two approaches:
- Custom Provider Specification - Our proprietary specification for developing custom providers to access your own cloud infrastructure (with subsequent redirect to solution owner's services)
- Docker Containers - Solutions packaged in Docker containers for deployment in our cloud infrastructure
The application is divided into 2 main solutions:
The main marketplace solution follows a layered architecture:
- Data Access Layer (DataAccessLayer) - Code-first database implementation using Entity Framework Core
- Business Logic Layer (BusinessLogicLayer) - Core services for data processing and business rule implementation
- API Layer - RESTful API providing access to BLL services
- User Interface - MVC-based UI for interacting with the application API
- Contracts - Helper classes for data transfer between layers
- Infrastructure - Extension methods for Dependency Injection configuration
A standard MVC application that contains IdentityServer, database context, and supporting API for the client application. This solution provides comprehensive user identity management capabilities including:
- User authentication and authorization
- User profile editing and management
- Email verification systems
- Password recovery mechanisms
- External authentication provider integration
- .NET Core - Primary framework for backend services
- Entity Framework Core - Object-relational mapping and database management
- IdentityServer - Authentication and authorization framework
- MVC - Model-View-Controller pattern for web interface
- Swagger - API documentation and testing
- Docker - Containerization for deployment
- Angular - Planned frontend framework for future SPA implementation
- .NET Core SDK
- SQL Server or compatible database
- Docker (optional, for containerized deployment)
- Clone the repository
- Navigate to the CloudJ directory
- Restore NuGet packages:
dotnet restore - Update database:
dotnet ef database update - Run the application:
dotnet run
The application follows a clean architecture pattern with clear separation of concerns:
┌─────────────────┐ ┌─────────────────┐
│ CloudJ.Client │ │ IdentityServer │
│ (MVC) │ │ (Auth) │
└─────────────────┘ └─────────────────┘
│ │
└───────────┬───────────┘
│
┌─────────────────┐
│ CloudJ.API │
│ (REST API) │
└─────────────────┘
│
┌─────────────────┐
│ Business Logic │
│ Layer │
└─────────────────┘
│
┌─────────────────┐
│ Data Access │
│ Layer │
└─────────────────┘
│
┌─────────────────┐
│ Database │
│ (EF Core) │
└─────────────────┘
Watch these demonstration videos to see CloudJ in action:
Contributions are welcome! Please feel free to submit a Pull Request.
This project is available under the MIT License. See the LICENSE file for more details.
