Skip to content

Repulsiveprogress/ReitingDobra-WebApp

Repository files navigation

ReitingDobra

Учебный (университетский) веб-проект: ASP.NET Core 9 backend + статический SPA-фронтенд + PostgreSQL. Публикуется как open-source под лицензией MIT.

Стек

  • Backend: ASP.NET Core 9 (Web API), Entity Framework Core 9, JWT-аутентификация
  • БД: PostgreSQL 16
  • Frontend: статические файлы в CourseProject/wwwroot (отдаются тем же приложением)
  • Документация API: Swagger UI на /swagger
  • Деплой: Docker / docker-compose

Структура

CourseProject/
  API/              контроллеры (Auth, Event, User)
  Aplication/       сервисы и helpers (JWT, password hashing)
  Domain/           сущности и модели
  DTOs/             DTO для API
  Infrastructure/   AppDbContext, репозитории
  Migrations/       миграции EF Core
  wwwroot/          фронтенд (SPA)
  Program.cs        точка входа

Быстрый старт (Docker)

  1. Скопируй пример окружения и заполни значения:

    cp .env.example .env

    Сгенерируй надёжный JWT_SECRET (минимум 32 символа), задай пароль БД.

  2. Подними сервисы:

    docker compose up --build
  3. Открой:

    • API + SPA: http://localhost:7234
    • Swagger: http://localhost:7234/swagger

Миграции EF Core применяются автоматически при старте приложения.

Локальный запуск без Docker

Нужен .NET 9 SDK и работающий PostgreSQL.

Передай конфигурацию через переменные окружения (двойное подчёркивание = вложенность):

export ConnectionStrings__DefaultConnection="Host=localhost;Port=5432;Database=CourseProjectDB;Username=postgres;Password=..."
export JwtSettings__Secret="долгая-случайная-строка-минимум-32-символа"
export JwtSettings__Issuer="CourseProjectServer"
export JwtSettings__Audience="CourseProjectClient"
export JwtSettings__ExpiryMinutes=60

dotnet run --project CourseProject

Файл CourseProject/appsettings.json намеренно не содержит секретов — заполни их через переменные окружения, .env (для Docker) или dotnet user-secrets (для локальной разработки).

Конфигурация

Переменная Назначение
POSTGRES_USER / _PASSWORD / _DB Учётные данные PostgreSQL (docker-compose)
APP_PORT Внешний порт приложения
JWT_SECRET Подписной ключ JWT (≥ 32 символов)
ConnectionStrings__DefaultConnection Строка подключения к БД
JwtSettings__Issuer / __Audience Issuer/audience для JWT
JwtSettings__ExpiryMinutes Время жизни токена в минутах

Авторы

Лицензия

MIT.

About

University course project - event rating web app. ASP.NET Core 9 + EF Core + PostgreSQL backend with JWT auth, served alongside a static SPA frontend. Dockerized.

Resources

License

Stars

Watchers

Forks

Contributors