Skip to content

Repository files navigation

StudentINT

A hybrid-stack academic records platform — .NET MAUI mobile + ASP.NET Core 8 API + PostgreSQL, offline-first, containerized, and deployed to Railway. Built as my WGU B.S. capstone across four one-week sprints: 18 issues, 24 passing tests, 11 graded commits, and a full Agile/Scrum paper trail.

API Status Tests License

Live API: https://studentint-production.up.railway.app  ·  Web demo: coming soon — see roadmap  ·  Predecessor project: studentint-mobile-c971


Proposal → Delivery

This project was graded across four formal submissions, from written proposal to deployed production system. Recruiters who want to see end-to-end project ownership (not just code) should start here:

Stage Artifact What it proves
Proposal (Task 2) Task2_ORamey.docx Business case, SDLC plan, timeline, costs, test methodology — written before any code
Delivery (Task 3) task3_ORamey.docx + video Full-stack product, complete documentation, 24-test suite, rubric-complete
Deploy & Demo (Task 4) task4_ORamey.docx + video Hosting justification, live Railway deployment, end-to-end walkthrough

Full submission-trail narrative: docs/SUBMISSIONS.md. Sprint history and 11 graded commits: docs/PROCESS.md.


Watch it run (2 min each, plays inline)

Task 4 — Build, Test & Deploy walkthrough

Task 3 — SDLC, Planning & Documentation

Full timestamps and chapter breakdown: docs/DEMOS.md.


Architecture

Class diagram

  • Mobile client — .NET MAUI 8 (Android + Windows). Offline-first with SQLite; syncs to the API when online.
  • Web API — ASP.NET Core 8 with JWT auth, BCrypt password hashing, EF Core 8, and PostgreSQL 16.
  • Domain model — an abstract AcademicRecord base class with three concrete subclasses (Term, Course, Assessment) and cascade-delete relationships, so deleting a term cleans up everything beneath it.
  • Deployment — multi-stage Docker build, containerized API, managed Postgres on Railway. Source and deploy repos are split so README changes don't trigger rebuilds.

Full class diagram source: docs/class_diagram.md. System-level integration notes: Documentation/MAUI_API_INTEGRATION.md.


Stack

Layer Technology
Mobile App .NET MAUI 8 (Android + Windows)
Offline Storage SQLite
Web API ASP.NET Core 8
Database PostgreSQL 16
ORM Entity Framework Core 8
Auth JWT Bearer + BCrypt
Containerization Docker (multi-stage)
Cloud Railway.app (API + managed Postgres)
Testing xUnit + EF Core InMemory (24 tests)
Process GitLab — Agile/Scrum, 4 sprints, 18 issues

Quick start

Run the API locally

dotnet run --project StudentINT.API
# Listens on http://localhost:8080
curl http://localhost:8080/health

Run with Docker (API + Postgres)

docker compose up -d
# Wait ~45s for Postgres init
curl http://localhost:8080/health
docker compose down

Run the MAUI app (Windows)

dotnet build StudentINT/StudentINT.csproj -f net8.0-windows10.0.19041.0
dotnet run --project StudentINT/StudentINT.csproj -f net8.0-windows10.0.19041.0

Run the tests

dotnet test StudentINT.Tests --verbosity normal
# Passed!  - Failed: 0, Passed: 24, Skipped: 0, Total: 24

API surface

Method Endpoint Auth Description
GET /health Health check
POST /api/auth/register Register user, returns JWT
POST /api/auth/login Login, returns JWT
GET · POST · PUT · DELETE /api/terms[/{id}] JWT Terms CRUD (cascade on delete)
GET · POST · PUT · DELETE /api/courses[/{id}] JWT Courses CRUD (max 6 per term)
GET · POST · PUT · DELETE /api/assessments[/{id}] JWT Assessments CRUD
GET /api/search?q={query} JWT Cross-entity search
GET /api/reports/{type} JWT terms-summary, courses-by-status, assessments-due

Controllers live under StudentINT.API/Controllers/; DTOs under StudentINT.API/DTOs/.


Seed data

On first run the database seeds with:

  • TermSpring 2026 (Mar 1 – Aug 31, In Progress)
  • CourseC971 Mobile Application Development (Instructor: Anika Patel)
  • Assessments — C971 OA + C971 PA

Docs index

Doc What's in it
docs/SUBMISSIONS.md Proposal → Delivery arc across Task 2 / 3 / 4 with links to each doc and video
docs/PROCESS.md Sprint history, 11 graded commits, rubric → artifact mapping
docs/DEMOS.md Video chapter timestamps and poster-frame generation notes
docs/class_diagram.md Mermaid class diagram source
Documentation/Task2_ORamey.docx Task 2 — Capstone Proposal (business case, SDLC, timeline, testing)
Documentation/task3_ORamey.docx Task 3 — Delivery (full rubric compliance, running system, docs)
Documentation/task4_ORamey.docx Task 4 — Deploy & Demo (hosting justification, live walkthrough)
Documentation/EntityFramework_README.md EF Core context, migrations, cascade rules
Documentation/MAUI_API_INTEGRATION.md How the MAUI client talks to the API
Documentation/TEST_COVERAGE.md 24-test breakdown across 4 classes
Documentation/UNPUT_VALIDATION.md Input validation strategy (data annotations, regex, date ranges)
Documentation/Wireframe/ 9 wireframes (Terms, Courses, Assessments, Search, Reports, forms)
Wiki Agile/Scrum run-book, branch pattern, label system, rubric mapping

Roadmap

Phase 1 — shipped. You're reading it: source repo, live API, videos, full docs, MIT-licensed, ready for recruiters to clone and run.

Phase 2 — studentint-web (in progress). Blazor WASM web client deployed to GitHub Pages at orionramey.github.io/studentint-web, hitting the same Railway API. One-click "Try as demo" button logs visitors into a pre-seeded sample account — no registration, no install, full CRUD in the browser.

Phase 3 — MSSWE-AI era. Embedding-based semantic search over the Wiki + course notes, deployed as a companion AI service. This is how the project grows into the AI-Engineer track of my upcoming Master's at WGU.


License

MIT — see LICENSE.

Acknowledgments

Built for WGU D424 Software Engineering Capstone. Instructor: Anika Patel. The academic source-of-truth — including sprint issues, merge requests, and burndown charts — lives on a private GitLab instance; the public artifacts (code, docs, wiki) are mirrored here.

About

WGU capstone: hybrid-stack academic records platform. .NET MAUI + ASP.NET Core + PostgreSQL, live on Railway. 24 xUnit tests, 4 Agile sprints.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages