f-nunez / veterinaryclinic Goto Github PK
View Code? Open in Web Editor NEWVeterinary Clinic in .NET 7 with clean architecture for Blazor Web Assembly ASP.NET Core hosted model and built with Radzen Components
License: MIT License
Veterinary Clinic in .NET 7 with clean architecture for Blazor Web Assembly ASP.NET Core hosted model and built with Radzen Components
License: MIT License
As a product owner, I want turn the current applications into Docker containers as an alternative for development and deployment.
SharedKernel's nuget packages should be imported as local source on each required solution to avoid developers build those nugets on their own.
An explicit folder should be created for handling Patient's photos between solutions on the repository for fast development. Consider that could be mounted into a Volume on ClinicManagement Api and Scheduling Api.
Self-Signed SSL should be implemented on each deployment.
Configure local host/machine DNS to simulate a DNS server. Naming subdomains for each public app like clinicmanagement-blazor.vc.local, scheduling-blazor.vc.local and identity-api.vc.local.
On each existing application it must perform the following tasks:
Scaffold application.
Create a Dockerfile.
Create a Docker ignore file.
Build image.
Run container.
Criteria:
Plus (Extra):
As a product owner I want an initial framework to apply Domain Driven Design and Clean architecture for the Veterinary Clinic applications.
Add empty solutions that will contains applications based on bounded contexts:
Add solution to implement models on multiple bounded contexts:
As a product owner I want a web application to arrange appointments in the veterinary clinic.
Criteria:
web api as back-end.
web application in Blazor as front-end.
As a product owner, I want every solution to be up to date for backend and frontend.
As a product owner, all information should be saved forever. Means that delete is going to be a soft delete. The decision was taken from domain experts and described like cancel/non-active register.
Criteria:
As a product owner I want a web application based on MVC architecture to show appointments confirmed by the users. Users can put the link for appointment confirmation.
Criteria:
Notes:
No interoperations are considered in this story. It is just a simple demo app for public environment.
Example of incoming URL: https://localhost/Appointment/Confirm?id=3F2504E0-4F89-11D3-9A0C-0305E82C3301
As a product owner I want a web application to manage the veterinary clinic.
Criteria:
As a product owner I want have specification pattern into Shared Kernel layer to produce better filter criterias against the data bases.
As a product owner, I want a Notification Center on ClinicManagement and Scheduling applications to notify the Users about changes that have been made in the entire application.
A mechanism must be implemented to display these notifications to Users. For the notification UI, a component from the Radzen framework must be used.
The users must be auditable "record User's id on entities that create/change on upstream contexts".
Criteria:
As a product owner, I want the whole backend organized where MassTransit is implemented. Messages and Consumers should be organized per context.
Events are multicast for multiple consumers, commands for single consumer. So consumer has their own input queue which messages are being routed via exchanges.
Each message type, MassTransit creates (by default ) a fanout exchange based on the message type, fanout exchange and queue for each consumer.
Three dependency like:
EventTypeExchange > ConsumerExchange > ConsumerQueue
As a product owner, I want the backend side being automated tests to ensure that application code does what its intended to do. Each solution should contains its own tests isolated per testing types (unit and integration).
eg. .../ClinicManagement/tests/
Enforce Integration tests to application layer.
Criteria:
As a product owner, I want the whole System being fully tested and deployed into a Virtual Private Server (VPS) to be ready for the first release. Include documentation (including README file or linked to others).
Criteria:
As a product owner, I want an application to authenticate and authorize employees (Users) that will have roles.
Creteria:
Notes:
Permissions is out of this story. Just integrate IdentityServer for authentication/authorization.
As a product owner, I want that Scheduling application send emails to Clients about their appointments statuses.
An email must be send to Client with information about the appointment and a link (Public Site link) to confirm the appointment (booked, updated or cancelled). The Publis Site should show a friendly confirmation message and care about Client's preferred language.
Users must receive an app notification about the confirmed appointment by the Client.
Add SchedulingEmailSender api to build emails.
Add EmailService api to send emails.
Expected flow for a created appointment up to being confirmed:
Expected flow for an updated appointment (only if the start date is changed) up to being confirmed:
Expected flow for a deleted appointment:
Criteria:
As a product owner, I want improve the current Docker files and composes involved on each project. Should be applying best practices to care about security and performance. Inpsect and find standard conventions used on Docker Compose files that could had been missed into existing.
Criteria:
Plus (Extra):
As a product owner, I want the Clinic Management app have a decent user interface for better experience of managing staff.
Criteria:
As a product owner, I want a functionality to synchronize data between downstream boundary contexts (distributed applications).
Criteria:
Notes:
As a product owner, I want the whole System being fully tested and deployed into a Virtual Private Server (VPS) to be ready for the second release.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.