Веб-приложение для учета учебного процесса: структура обучения, задания, оценки, посещаемость, ведомости и итоговые результаты.
- GitHub Actions workflow:
.github/workflows/ci.yml - Проверки в CI:
- backend lint:
dotnet format --verify-no-changes - backend unit tests:
dotnet test
- backend lint:
Блок ниже обновляется автоматически при публикации GitHub Release workflow-ом release-report.
- Backend: ASP.NET Core 8, EF Core, PostgreSQL
- Frontend: Angular 19 (
WebStudentsUI) - Оркестрация: Docker Compose
- Метрики: Prometheus endpoint на
GET /metrics
WebStudents/— backend API- solution:
WebStudents/WebStudents.sln - project:
WebStudents/WebStudents.csproj
- solution:
WebStudentsUI/— frontend Angulardb/datainstall.sql— полный reset + демо-данныеscripts/datainstall.sh— запуск datainstall в контейнере PostgreSQLdocker-compose.yml— инфраструктура проекта
- Аутентификация и ролевая модель (
Admin,Professor,Student) - Учебная структура:
- учебные годы и семестры
- группы
- дисциплины
- назначения дисциплин на группу/семестр/преподавателя
- Учебный процесс:
- задания
- оценки
- посещаемость
- Аттестация:
- ведомости
- итоговые оценки
- Профили пользователей
UserAccount— учетная запись, роль, связь с персоной (LinkedPersonId)Student— студент, привязка к группеProffessor— преподавательAcademicYear— учебный годSemester— семестр учебного годаStudentGroup— учебная группаDiscipline— дисциплина и тип контроляDisciplineOffering— назначение дисциплины на группу/семестр/преподавателяAssignment— задание по назначениюGrade— оценка студента за заданиеAttendance— отметка посещаемостиGradeSheet— ведомость по назначениюFinalGrade— итоговая оценка студента в ведомости
- Создать
.envиз шаблона:
cp .env.example .env- Запустить проект:
docker compose up -d --build- Доступные сервисы:
- Frontend:
http://localhost:${FRONTEND_PORT}(по умолчанию4200) - API:
http://localhost:${API_PORT}(по умолчанию5006) - Swagger:
http://localhost:${API_PORT}/swagger - Metrics:
http://localhost:${API_PORT}/metrics - pgAdmin:
http://localhost:${PGADMIN_PORT}(по умолчанию5050)
Скрипт datainstall полностью очищает таблицы и заполняет реалистичным русскоязычным набором данных.
./scripts/datainstall.shАльтернатива:
docker compose --profile tools run --rm datainstall- Admin:
admin / admin123 - Professors:
prof_igor / prof123prof_elena / prof123prof_oleg / prof123prof_marina / prof123
- Students:
stud_* / stud123
Backend:
cd WebStudents
dotnet build WebStudents.slnFrontend:
cd WebStudentsUI
npm ci
npm run buildСм. .env.example:
POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DB,POSTGRES_PORTPGADMIN_DEFAULT_EMAIL,PGADMIN_DEFAULT_PASSWORD,PGADMIN_PORTAPI_PORT,ASPNETCORE_ENVIRONMENTFRONTEND_PORTDB_SERVICE