A modern, full-stack Blazor WebAssembly application for pharmacy point-of-sale and inventory management.
Tinker/
├── Tinker.Server # Backend API and server-side logic
├── Tinker.Client # Blazor WebAssembly frontend
├── Tinker.Shared # Shared models and interfaces
├── Tinker.Core # Core module for business logic
└── Tinker.Infrastructure # Infrastructure services and data access
The system follows Clean Architecture principles with distinct layers:
- Domain entities and business logic
- Use cases and domain services
- Domain events and validation
- Data access and persistence
- Identity and security
- Caching and monitoring
- Error handling
- GraphQL endpoints
- Security middleware
- Performance metrics
- Blazor WASM interface
- State management
- PWA support
- SEO optimization
-
🏪 Point of Sale
- Process sales transactions
- Handle payments
- Generate invoices
- Manage orders
-
📦 Inventory Management
- Stock tracking
- Expiry date monitoring
- Low stock alerts
- Batch management
-
👥 Customer Management
- Customer profiles
- Loyalty program
- Purchase history
- Contact management
-
💊 Prescription Management
- RX validation
- Refill tracking
- Compliance logging
- Patient records
-
📊 Reporting
- Sales analytics
- Inventory reports
- Compliance reports
- Customer insights
- Enhanced security measures
- Comprehensive error handling
- Performance monitoring
- Offline support
- SEO optimization
-
.NET 9.0
- Blazor WebAssembly
- ASP.NET Core
- Entity Framework Core
- Identity Framework
-
Database
- SQL Server
- Redis Cache
-
Monitoring
- Application Insights
- Serilog
- Health Checks
-
API Documentation
- Swagger/OpenAPI
- GraphQL
-
Prerequisites
- .NET 9.0 SDK
- SQL Server
- Redis (optional)
-
Configuration
{ "ConnectionStrings": { "DefaultConnection": "your_connection_string", "Redis": "your_redis_connection" } }
-
Clone the repository:
git clone https://github.com/bilalobe/Tinker.git cd Tinker -
Build the solution:
dotnet build
-
Run the server:
cd Tinker.Server dotnet run -
Run the client:
cd Tinker.Client dotnet run
- Swagger: Access the API documentation at
https://localhost:/api/docs - GraphQL: Access the GraphQL Playground at
https://localhost:/graphql
- Access health checks at
https://localhost/health
This project is licensed under the Mozilla Public License Version 2.0. See the LICENSE file for details.
For any inquiries or support, please contact us at [email protected].