← 输入框|github.com|刷新
Skip to content
decoder-devPublic

About

University schedules, news and student services. Android with .NET MAUI, iPhone with SwiftUI, and a FastAPI gateway.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

MAUverce

MAUverce is a student mobile application for Murmansk Arctic University. The repository contains a .NET MAUI Android client, a native SwiftUI iPhone client, and a FastAPI gateway.

Repository layout

  • mauverse_mobile - .NET MAUI application for Android.
  • MauverseIOS - native SwiftUI application for iPhone.
  • mauverse-api - FastAPI gateway for EIOS, schedules, news, debts, contacts, and student forms.
  • .github/workflows/ci.yml - backend, container, Android, and native iPhone verification.
  • docs - production audit, release process, and release records.

Backend development

Python 3.11 is the supported runtime.

cd mauverse-api
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --requirement requirements-dev.txt
Copy-Item .env.example .env
python main.py server main --reload

Populate every required database value in .env; never commit that file.

Run the same checks used by CI:

python -m pip check
python -m unittest discover -s tests -v
ruff check .
python -m compileall -q apps tests main.py

API container

The image is pinned to a multi-architecture Python base digest, runs as UID/GID 10001, and exposes a liveness healthcheck at /health.

docker build --pull --tag mauverce-api:local mauverse-api
docker run --rm --env-file mauverse-api/.env -p 8000:8000 mauverce-api:local

/health confirms that the process can serve HTTP. /ready checks both database connections and returns 503 when either is unavailable. Moodle and mail remain runtime dependencies and require separate monitoring and incident policy.

Android development

Install .NET SDK 9.0.313, JDK 17, Android SDK, and the MAUI Android workload.

cd mauverse_mobile
dotnet workload install maui-android --skip-manifest-update
dotnet restore mau.csproj
dotnet build mau.csproj --configuration Release --framework net9.0-android --no-restore

The API endpoint can be overridden without changing source:

dotnet build mau.csproj --configuration Release --framework net9.0-android `
  -p:MauverseApiBaseUrl=https://example.edu/campus-api/

The Android toolchain may generate a *-Signed.apk using the Android Debug certificate when no production keystore is configured. That file is an engineering build and must not be distributed as a production release.

iPhone development

The shipping iPhone app is native SwiftUI in MauverseIOS. It uses system Liquid Glass on iOS 26 and native materials on iOS 18–25. Generate the Xcode project with XcodeGen, then build or archive in Xcode 26.5+. See native iPhone app.

brew install xcodegen
cd MauverseIOS
xcodegen generate --spec project.yml
open MAUverse.xcodeproj

CI and releases

GitHub Actions uses minimal contents: read permission, immutable action SHAs, pip and NuGet caches, bounded job timeouts, and concurrency cancellation. It runs backend tests, Ruff, compileall, a non-root container health smoke test, the Android MAUI Release build, and the native SwiftUI iPhone Release build. CI uploads unsigned Android packages and an unsigned native iPhone IPA container; it never imports signing certificates or provisioning profiles.

Production signing, device smoke testing, deployment, and rollback are explicit promotion gates. See CI and release engineering, the production audit, and the release checklist. Naming, comments, and review rules are defined in code style.

About

University schedules, news and student services. Android with .NET MAUI, iPhone with SwiftUI, and a FastAPI gateway.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages