mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-02-16 02:39:03 +00:00
7fbdfbf542f641baca1e4de72b4371a63a5feb2e
Biergarten SQL Server - Architecture Overview
This solution is a monolith-oriented Web API with a layered structure. The current focus is a SQL Server-backed data layer with stored procedures and a repository-based DAL.
High-level projects
WebAPI/- ASP.NET Core API endpoints (controllers) and application entrypoint.BusinessLayer/- Intended home for domain/business logic (currently minimal).DataAccessLayer/- Repository implementations, entities (POCOs), and SQL helpers.DataLayer/- Database schema, seed scripts, and data sources.WebCrawler/- Separate crawler executable.DALTests/- Data access tests.
Data access architecture
- Entities (POCOs) live in
DataAccessLayer/Entities/. - Repositories live in
DataAccessLayer/Repositories/and implement interfaces likeIUserAccountRepository. - SQL execution lives in
DataAccessLayer/Sql/. - Stored procedures for CRUD live under
DataAccessLayer/Sql/crud/and are invoked by repositories.
Example flow:
WebAPI Controller -> IUserAccountRepository -> UserAccountRepository -> stored procedure
The repositories are currently responsible for:
- Opening connections using
DB_CONNECTION_STRING - Executing stored procedures
- Mapping result sets to POCOs
Database schema and seed
DataLayer/schema.sqlcontains the database schema definitions.DataLayer/database/holds application functions and CRUD procedures.DataLayer/seed/holds seed-only procedures and theSeedDB.csentry point.SeedDB.cshonorsSEED_MODE(database,seed, orall) to control which scripts run.
Key conventions
- Environment variables:
DB_CONNECTION_STRINGis required for DAL and seed tooling. - Stored procedures: CRUD operations use
usp_*procedures.
Suggested dependency direction
WebAPI -> BusinessLayer -> DataAccessLayer -> SQL Server
-> DataLayer (schema/seed/scripts)
Keep business logic in BusinessLayer and avoid direct SQL or ADO code outside DataAccessLayer.
Description
No description provided
beerbrewerycloudinary-apidaisyuinextjsopen-sourceprismareactserverless-functionssocial-networksparkpost-apitailwindcssvercel
Readme
3.9 MiB
Languages
TypeScript
83.3%
C#
14.2%
HTML
0.8%
Dockerfile
0.6%
Gherkin
0.6%
Other
0.5%