Skip to content

Repository files navigation

Yet Another BSC Thesis

Recipe management web application and thesis project workspace.

Project status

This repository contains:

  • a running full-stack web application (frontend + backend + proxy + PostgreSQL),
  • API specification and generated client/server artifacts,
  • project documentation (DocFX, use cases, wireframes)
  • thesis LaTeX sources.

Architecture

Runtime services (via Docker Compose):

  • proxy: Nginx reverse proxy on port 9393
  • frontend: Vue 3 + Vite app served via Nginx
  • backend: ASP.NET Core Web API (net10.0)
  • recipe_database: PostgreSQL 17
  • adminer: optional database UI in dev profile on port 8082

Routing through proxy:

  • http://localhost:9393/ -> frontend
  • http://localhost:9393/api/ -> backend

Optional HTTPS:

  • TLS terminates at the proxy only.
  • Frontend and backend traffic inside Docker stays on HTTP.
  • Set PROXY_TLS_ENABLED=true in .env and place cert files in ./certs/.

Tech stack

  • Frontend: Vue 3, Vite, TypeScript, Pinia, Tailwind CSS, Vitest
  • Backend: ASP.NET Core 10, Entity Framework Core, Npgsql, Swagger
  • API tooling: OpenAPI Generator CLI
  • DevOps: Docker Compose / Buildx, GitVersion
  • Docs: DocFX, Bruno collections, LaTeX thesis sources

Quick start (recommended)

Use Docker for the fastest setup:

./dev.ps1

This starts the app stack with development overrides.

Useful URLs:

  • App: http://localhost:9393
  • API (via proxy): http://localhost:9393/api
  • Swagger (through proxy): http://localhost:9393/api/swagger
  • Adminer: http://localhost:8082

Common commands

Run development stack

./dev.ps1

Run production-like stack locally

./prod.ps1

Enable HTTPS at the proxy

  1. Put your certificate and key into ./certs/.
  2. Set these values in .env:
PROXY_TLS_ENABLED=true
PROXY_TLS_CERTIFICATE_FILE=tls.crt
PROXY_TLS_CERTIFICATE_KEY_FILE=tls.key
  1. Start the stack as usual with ./start.ps1, ./dev.ps1, or ./prod.ps1.

Once enabled, use https://localhost:9393 or https://<APP_HOST>:<APP_PORT>.

Refresh generated assets and print build plan

./build.ps1

Build and push images

./publish.ps1

Regenerate API server/client code

./scripts/generate_api.ps1

Regenerate API and build frontend client package

./scripts/update_api.ps1

Regenerate versions and update project versions

./scripts/generate_versions.ps1

Repository structure

  • src/backend: backend solution and API projects
  • src/frontend: frontend app and generated API client workspace
  • src/proxy: reverse proxy (Nginx)
  • docs/api: OpenAPI spec and generator configs
  • docs/usecases: use case documentation
  • docs/wireframes: UI wireframes
  • docs/thesis-latex: thesis sources and build script

Notes

  • Backend startup runs EF Core migration at app boot.
  • scripts/generate_api.ps1 installs OpenAPI Generator CLI globally with pnpm.
  • build.ps1 currently prints Docker buildx bake output, it does not execute the image build.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages