KeeperCloud is a File Management Platform developed using C# ASP.NET Core and Angular. It provides a secure and efficient way to store files in repositories, similar to buckets in AWS. With KeeperCloud, users can perform CRUD operations on files using the Manage API from external services. The platform ensures security by encrypting and compressing files. The architecture style follows a monolithic approach with Clean Architecture principles.
- User Management: KeeperCloud provides APIs to manage users and their permissions.
- Repository Management: Users can create, update, and delete repositories.
- File Operations: Users can upload, download, update, and delete files within repositories.
- Encryption and Compression: Files are encrypted and compressed for enhanced security.
- External Service Integration: KeeperCloud exposes APIs for external services to perform CRUD operations on files.
- Backend: C# ASP.NET Core.
- Frontend: Angular 15, NgRx.
- Database: Microsoft SQL server.
- Authentication: JWT, custom API auth keys.
- Encryption: AES-256.
KeeperCloud follows the Clean Architecture principles, which provides separation of concerns and maintainability. The architecture consists of the following layers:
- Presentation Layer: This layer contains the API controllers and Angular frontend which is responsible for providing a user-friendly interface to interact with the platform.
- Application Layer: This layer handles the business logic and application workflows. It defines the application services and interfaces with the infrastructure layer.
- Domain Layer: The domain layer represents the core business entities, including users, repositories, and files.
- Infrastructure Layer: This layer interacts with external resources and services, such as databases, file storage, and APIs. It implements the interfaces defined in the application layer.
To add a new migration, open a command prompt or terminal and navigate to the root directory of the project. Then run the following command:
dotnet ef migrations add "migration name" --project src\Keeper.Infrastructure --startup-project src\Keeper.WebApi
To apply the pending migrations and update the database, run the following command:
dotnet ef database update --project src/Keeper.Infrastructure --startup-project src/Keeper.WebApi
To help you understand how to use the KeeperCloud API, I have provided an example project that demonstrates the usage of various API endpoints. The example project showcases repository and files operations.
You can find the example project in the examples directory of the KeeperCloud repository.
Here are some demo images showcasing the user interface and features of the KeeperCloud platform: