Rosheta is a modern, cross-platform prescription management system designed for healthcare professionals. Built on ASP.NET Core 9.0, it adheres to strict Clean Architecture principles to ensure scalability, testability, and future support for Desktop/Mobile clients via .NET MAUI.
- .NET 9.0 SDK
- Visual Studio 2022 or VS Code
The solution is split into layers. The entry point is the Web project.
# Clone the repository
git clone https://github.com/YourUsername/rosheta.git
cd rosheta
# Restore dependencies
dotnet restore
# Run the Web Application
dotnet run --project Presentation/Rosheta.Web.csprojNote: The application uses SQLite. The database file (roshta.db) will be automatically created in the Presentation folder upon first run.
The solution follows the Dependency Rule, where dependencies flow inwards.
| Project | Path | Layer | Responsibility |
|---|---|---|---|
| Rosheta.Core | src/Core |
Domain | Entities, Enums, Interfaces, Business Logic. (No Dependencies) |
| Rosheta.Infrastructure | src/Infrastructure |
Infrastructure | Database (EF Core), File System, External Adapters. |
| Rosheta.Web | src/Presentation |
Presentation | UI (Razor Pages), Middleware, Composition Root. |
| Rosheta.UnitTests | tests/Rosheta.UnitTests |
Testing | xUnit tests for Core logic using Moq. |
For a deep dive, see Architecture Blueprint.
We maintain comprehensive documentation in the docs/ folder:
- 👩💻 Developer Guide: Best practices, how to run migrations, and coding standards.
- 🛣️ Roadmap: Future plans (MAUI, API, etc.).
- 📋 Task Board: Detailed progress tracking.
- 📝 Changelog: Version history.
- Clean Architecture: Strict physical separation of concerns.
- Patient Management: CRUD operations with unique contact validation.
- Prescription Engine: Dynamic item addition, validation, and status tracking.
- Search: Live autocomplete for Patients and Medications.
- Settings System: JSON-based user preferences persistence.
- Security: Global Error Handling Middleware and Domain Exceptions.
We use xUnit, Moq, and FluentAssertions.
# Run all tests
dotnet test- Read the Developer Guide.
- Ensure you adhere to the Dependency Rule (Core never references Infrastructure).
- Write Unit Tests for new Services.
Built with ❤️ using .NET 9