mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-04-05 18:09:04 +00:00
60ee2ecf74f9a68735dc0e49375e52e167ef5d10
The Biergarten App
The Biergarten App is a multi-project monorepo with a .NET backend and an active React
Router frontend in src/Website. The current website focuses on account flows, theme
switching, shared UI components, Storybook coverage, and integration with the API.
Documentation
- Getting Started - Local setup for backend and active website
- Architecture - Current backend and frontend architecture
- Docker Guide - Container-based backend development and testing
- Testing - Backend and frontend test commands
- Environment Variables - Active configuration reference
- Token Validation - JWT validation architecture
- Legacy Website Archive - Archived notes for the old Next.js frontend
Diagrams
- Architecture - Layered architecture
- Deployment - Docker topology
- Authentication Flow - Auth sequence
- Database Schema - Entity relationships
Current Status
Active areas in the repository:
- .NET 10 backend with layered architecture and SQL Server
- React Router 7 website in
src/Website - Shared Biergarten theme system with a theme guide route
- Storybook stories and browser-based checks for shared UI
- Auth demo flows for home, login, register, dashboard, logout, and confirmation
- Toast-based feedback for auth outcomes
Legacy area retained for reference:
src/Website-v1contains the archived Next.js frontend and is no longer the active website
Tech Stack
- Backend: .NET 10, ASP.NET Core, SQL Server 2022, DbUp
- Frontend: React 19, React Router 7, Vite 7, Tailwind CSS 4, DaisyUI 5
- UI Documentation: Storybook 10, Vitest browser mode, Playwright
- Testing: xUnit, Reqnroll (BDD), FluentAssertions, Moq
- Infrastructure: Docker, Docker Compose
- Security: Argon2id password hashing, JWT access/refresh/confirmation tokens
Quick Start
Backend
git clone https://github.com/aaronpo97/the-biergarten-app
cd the-biergarten-app
cp .env.example .env.dev
docker compose -f docker-compose.dev.yaml up -d
Backend access:
- API Swagger: http://localhost:8080/swagger
- Health Check: http://localhost:8080/health
Frontend
cd src/Website
npm install
API_BASE_URL=http://localhost:8080 SESSION_SECRET=dev-secret npm run dev
Optional frontend tools:
cd src/Website
npm run storybook
npm run test:storybook
npm run test:storybook:playwright
Repository Structure
src/Core/ Backend projects (.NET)
src/Website/ Active React Router frontend
src/Website-v1/ Archived legacy Next.js frontend
docs/ Active project documentation
docs/archive/ Archived legacy documentation
Key Features
Implemented today:
- User registration and login against the API
- JWT-based auth with access, refresh, and confirmation flows
- SQL Server migrations and seed projects
- Shared form components and auth screens
- Theme switching with Lager, Stout, Cassis, and Weizen variants
- Storybook documentation and automated story interaction tests
- Toast feedback for auth-related outcomes
Planned next:
- Brewery discovery and management
- Beer reviews and ratings
- Social follow relationships
- Geospatial brewery experiences
- Additional frontend routes beyond the auth demo
Testing
Backend suites:
API.Specs- integration testsInfrastructure.Repository.Tests- repository unit testsService.Auth.Tests- service unit tests
Frontend suites:
- Storybook interaction tests via Vitest
- Storybook browser regression checks via Playwright
Run all backend tests with Docker:
docker compose -f docker-compose.test.yaml up --abort-on-container-exit
See Testing for the full command list.
Configuration
Common active variables:
- Backend:
DB_SERVER,DB_NAME,DB_USER,DB_PASSWORD,ACCESS_TOKEN_SECRET,REFRESH_TOKEN_SECRET,CONFIRMATION_TOKEN_SECRET - Frontend:
API_BASE_URL,SESSION_SECRET,NODE_ENV
See Environment Variables for details.
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Workflow
- Start development environment:
docker compose -f docker-compose.dev.yaml up -d - Make changes to code
- Run tests:
docker compose -f docker-compose.test.yaml up --abort-on-container-exit - Rebuild if needed:
docker compose -f docker-compose.dev.yaml up -d --build api.core
Support
- Documentation: docs/
- Architecture: See Architecture Guide
Description
No description provided
beerbrewerycloudinary-apidaisyuinextjsopen-sourceprismareactserverless-functionssocial-networksparkpost-apitailwindcssvercel
Readme
4.6 MiB
Languages
TypeScript
76.4%
C#
18.7%
Gherkin
1.3%
HTML
1.1%
CSS
1%
Other
1.4%