Commit Graph

519 Commits

Author SHA1 Message Date
Aaron Po
678ee21bbd Format ./web/backend/API/API.Core 2026-06-20 15:14:20 -04:00
Aaron Po
3d046e369c Format ./web/backend/Domain/Domain.Exceptions 2026-06-20 15:13:58 -04:00
Aaron Po
034436d018 Format ./web/backend/Domain/Domain.Entities 2026-06-20 15:13:57 -04:00
Aaron Po
58833f330c Format ./web/backend/Database/Database.Seed 2026-06-20 15:13:32 -04:00
Aaron Po
bfda60d831 Format ./web/backend/Database/Database.Migrations 2026-06-20 15:13:31 -04:00
Aaron Po
39b5d5bf1d Format ./web/backend/Infrastructure/Infrastructure.Sql 2026-06-20 15:13:02 -04:00
Aaron Po
e5d08c9ec8 Format ./web/backend/Infrastructure/Infrastructure.PasswordHashing 2026-06-20 15:13:02 -04:00
Aaron Po
1272a7ff40 Format ./web/backend/Infrastructure/Infrastructure.Jwt 2026-06-20 15:13:02 -04:00
Aaron Po
0933ded022 Format ./web/backend/Infrastructure/Infrastructure.Email.Templates 2026-06-20 15:13:01 -04:00
Aaron Po
a37f2971a7 Format ./web/backend/Infrastructure/Infrastructure.Email 2026-06-20 15:13:01 -04:00
Aaron Po
9ac039dfeb Format ./web/backend/Features/Features.UserManagement.Tests 2026-06-20 15:09:43 -04:00
Aaron Po
1875dcc8bf Format ./web/backend/Features/Features.UserManagement 2026-06-20 15:09:43 -04:00
Aaron Po
c19af68c7c Format ./web/backend/Features/Features.Emails.Tests 2026-06-20 15:09:42 -04:00
Aaron Po
433c3fbe3d Format ./web/backend/Features/Features.Emails 2026-06-20 15:09:42 -04:00
Aaron Po
aadeab3afa Format ./web/backend/Features/Features.Breweries.Tests 2026-06-20 15:09:42 -04:00
Aaron Po
0f77ae43b5 Format ./web/backend/Features/Features.Breweries 2026-06-20 15:09:41 -04:00
Aaron Po
4de455f34d Format ./web/backend/Features/Features.Auth.Tests 2026-06-20 15:09:41 -04:00
Aaron Po
2bdd7bb0c0 Format ./web/backend/Features/Features.Auth 2026-06-20 15:09:40 -04:00
Aaron Po
5b882ac51c code style cleanup 2026-06-20 13:55:17 -04:00
Aaron Po
0c3b0e99e8 Update documentation to reflect new architecture and previous refactors 2026-06-20 02:13:54 -04:00
Aaron Po
a1a63b11bb Migrate Auth and Emails to vertical slices (Features.Auth, Features.Emails)
Auth and Emails land together since Auth's registration/resend flows need
Emails to exist first. Service.Auth's four services (Register, Login,
Confirmation, Token) collapse into MediatR commands/queries in
Features.Auth; TokenService stays as a slice-internal service since
multiple handlers call it. Auth no longer references Emails directly —
it sends SendRegistrationEmailCommand/SendResendConfirmationEmailCommand
(defined in Shared.Application) which Features.Emails handles, so neither
slice has a project reference on the other.

Service.Emails' IEmailService becomes Features.Emails' IEmailDispatcher,
simplified to take (firstName, email, token) instead of a full UserAccount
since that's all it ever used. API.Specs' TestApiFactory/MockEmailService
are updated to swap in the relocated interface.

Also deletes Infrastructure.Repository now that Breweries, UserManagement,
and Auth have all moved their repos out of it, and replaces the two
now-dead docker-compose test services (repository.tests, service.auth.tests,
both pointing at deleted Dockerfiles) with a single unit.tests service that
runs every Features.*.Tests project via Dockerfile.tests.
2026-06-20 01:49:12 -04:00
Aaron Po
6db004066f Migrate UserManagement to a vertical slice (Features.UserManagement)
Same pattern as the Breweries migration: Service.UserManagement and the
UserAccount repository fold into Features.UserManagement, with MediatR
queries replacing UserService. UpdateUserCommand/Handler carry forward
IUserService.UpdateAsync as-is (it has no HTTP route today, and adding one
is a separate decision from this migration). Adds handler/repository test
coverage that didn't exist before, since Service.UserManagement had no
test project.
2026-06-20 01:49:12 -04:00
Aaron Po
a8c1b17095 Migrate Breweries to a vertical slice (Features.Breweries)
Moves brewery CRUD from the Service.Breweries/Infrastructure.Repository
layered split into a single Features.Breweries project: MediatR
commands/queries replace BreweryService, and the repository moves in
alongside its own controller. Extracts Infrastructure.Sql out of
Infrastructure.Repository (just the generic ADO.NET connection/base-repo
plumbing) since Breweries no longer needs the rest of that project, while
Auth and UserAccount repos still do until their own migration.

Also fixes the API.Core and Infrastructure.Repository.Tests Dockerfiles,
which were restoring against COPY destinations that didn't match the
projects' actual relative paths (silently working only because of the
COPY . . that followed); both now restore against Core.slnx with correctly
nested paths, verified with a real docker build.
2026-06-20 01:49:12 -04:00
Aaron Po
62d682472e Scaffold vertical-slice migration: Shared.Contracts, Shared.Application, MediatR
Begins the move to vertical-slice architecture. ResponseBody moves out of
API.Core into Shared.Contracts so slices won't have to depend on the API
host project for it. Shared.Application adds the MediatR pipeline's
ValidationBehavior plus the cross-slice email commands that Features.Auth
will send and Features.Emails will handle, keeping slices decoupled from
each other.
2026-06-20 01:49:12 -04:00
Aaron Po
e07b46fcce add tests 2026-06-20 01:49:12 -04:00
Aaron Po
d896f04274 finish brewery feature set 2026-06-20 01:49:12 -04:00
Aaron Po
254b2afb9f add xmldoc comments 2026-06-20 01:49:12 -04:00
6a66619c70 Add multithreaded logging infrastructure for preparation for future designs (#225)
* Update class diagrams

* Implement BoundedChannel and multithreaded logging infra

* Integrate logging channel system

* Update string concatenations to use std::format

* Add pretty print log
2026-05-22 22:00:38 -04:00
2ee7b3d2a2 Add timeout to wikipedia enrichment to avoid breaking rate limits, add mock enrichment (#224)
* Add timeout for enrichment, refactor json deserialization

* Add location count to application options and as a cli arg

* Add mock enrichment process
2026-05-14 19:15:51 -04:00
b7c0b1c8d4 Fix mistake in .gitattributes
archive/* is incorrect as it will ignore sub-dirs
2026-05-12 01:05:07 -04:00
b8ebe03921 Pipeline: Add Runpod docker configuration (#222)
* Begin work on Runpod docker config

* Reduce docker image size

* Create .dockerignore
2026-05-12 00:44:09 -04:00
26635ace84 Organize and consolidate header files (#220) 2026-05-03 21:44:37 -04:00
031be8ad5d Pipeline: Remove CURL as a dependency, add new HTTP module (#219)
Rationale: 

HTTP is a supporting concern in the pipeline, used only for Wikipedia enrichment calls. libcurl's C API required significant boilerplate to wrap safely. cpp-httplib is a header-only library that covers the same functionality with far less overhead and no manual resource management.
2026-05-03 13:35:58 -04:00
f316fabcb0 Update CMakeLists.txt (#218) 2026-05-02 19:27:44 -04:00
b1dc8e0b5d refactor(pipeline): restructure config, add PromptDirectory, consolidate SQLite layer (#217)
* Refactor ApplicationOptions to separate config concerns

* add prompt dir app option

* readability updates: remove magic numbers, update comments

* codebase formatting

* Update docs

* Extract argument parsing, timer out of
2026-05-02 18:27:14 -04:00
641a479b6a Refactor SQLite Export Service and ProcessRecord Method Signatures (#216)
* Helper cleanup

update bind to use dto for params
consolidate translation units


* Update planned class diagram
2026-04-30 19:03:45 -04:00
d80e15b55e Add docs symlink to top level docs/pipeline (#214) 2026-04-30 18:35:46 -04:00
Aaron Po
1fcaf6e174 misc deletions 2026-04-27 18:47:39 -04:00
Aaron Po
ef97bf0a75 remove misc directory 2026-04-27 18:47:39 -04:00
Aaron Po
4c8a8e43ed update readmes 2026-04-27 18:47:39 -04:00
Aaron Po
8db6992296 move diagrams and documentation 2026-04-27 18:47:39 -04:00
Aaron Po
7925fc6caf Format all markdown files in active directories 2026-04-27 18:47:39 -04:00
Aaron Po
b1f4ff2641 remove legacy doc 2026-04-27 18:47:39 -04:00
Aaron Po
a852beff21 add git attributes to ignore archive dir 2026-04-27 18:47:39 -04:00
Aaron Po
e17afe909f move docker compose files 2026-04-27 18:47:39 -04:00
Aaron Po
9ed37806dd Move pipeline directory 2026-04-27 18:47:39 -04:00
Aaron Po
5a21589029 Move website directory 2026-04-27 18:47:39 -04:00
Aaron Po
189bce040b Move dotnet api into new directory 2026-04-27 18:47:39 -04:00
e8c5b8a80c Add future plans, new design, and ethics document updates to Pipeline (#212) 2026-04-27 15:41:28 -04:00
Aaron Po
d47e3ed7f0 Move next js project to archive (#207) 2026-04-20 02:30:25 -04:00