mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-02-16 10:42:08 +00:00
da84492aa4038fb12dc69c02c66f61a8502db1bf
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 logicDataAccessLayer/- Repository implementations, entities (POCOs), and SQL helpers.DataLayer/- DbUp console app that applies embedded schema/functions/procedures.DBSeed/- Console app for seeding locations and test user data.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
DataLayer/scripts/03-crud/and are invoked by repositories.
Example flow:
WebAPI Controller -> UserService -> 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 tooling
DataLayer/scripts/01-schema/schema.sqlcontains the database schema definitions.DataLayer/scripts/02-functions/holds application functions.DataLayer/scripts/03-crud/holds CRUD stored procedures.DataLayer/Program.csruns DbUp to apply embedded scripts to the database.DBSeed/Program.csruns the location and user seeders usingDB_CONNECTION_STRING.
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%