How owlcoder/studium works
STUDIUM is an early-stage teaching-support system scaffold, not a complete implementation of its ST-001–ST-100 specification. Its working user flow is a console or HTTP request to list/search demo courses, through an application handler, to an in-memory reader and back. The repository also contains an unwired course-creation use case and a mock submission-overview capability. Edges reflect the README and shown/indexed source references; unsampled wiring is omitted.
Main entry points: MockSubmissionOverviewService.cs Mock overview service · Program.cs HTTP API · ListCoursesHandler.cs Course listing · ICourseReader.cs Course reader port
Components 21
User entry points
- HTTP API
src/Api/Program.cs - Console UI
src/ConsoleUi/Program.cs
Course application
- Course listing
src/Application/Courses/ListCoursesHandler.cs - Course search
src/Application/Courses/SearchCoursesHandler.cs - Course creation
src/Application/Courses/CreateCourseHandler.cs - Course reader port
src/Application/Courses/ICourseReader.cs - Course repository port
src/Application/Courses/ICourseRepository.cs - Course list result
src/Application/Courses/CourseListItem.cs - Search result
src/Application/Courses/CourseSearchResult.cs - Create command
src/Application/Courses/CreateCourseCommand.cs - Overview service port
src/Application/ISubmissionOverviewService.cs - Overview results
src/Application/SubmissionOverviewDto.cs
Domain models
- Course entity
src/Domain/Courses/Course.cs - Member contract
src/Domain/MemberContract.cs - Task contract
src/Domain/TaskContract.cs - Submission contract
src/Domain/SubmissionContract.cs - Submission status
src/Domain/SubmissionStatus.cs
Infrastructure adapters
- Demo data factory
src/Infrastructure/Demo/DemoData.cs - In-memory reader
src/Infrastructure/Courses/InMemoryCourseReader.cs - Mock overview service
src/Infrastructure/MockSubmissionOverviewService.cs
Other components
- User
Connections 25
- User → HTTP API: sends request
README.md - User → Console UI: runs demo
README.md - HTTP API → Course listing: calls listing
src/Api/Program.cs - HTTP API → Course search: calls search
src/Api/Program.cs - HTTP API → Demo data factory: configures reader
src/Api/Program.cs - Console UI → Course listing: calls listing
src/ConsoleUi/Program.cs - Console UI → Demo data factory: creates reader
src/ConsoleUi/Program.cs - Course listing → Course reader port: reads courses
src/Application/Courses/ListCoursesHandler.cs - Course search → Course reader port: reads courses
src/Application/Courses/SearchCoursesHandler.cs - Course listing → Course list result: projects results
src/Application/Courses/ListCoursesHandler.cs - Course search → Search result: projects results
src/Application/Courses/SearchCoursesHandler.cs - Course creation → Course repository port: checks and saves
src/Application/Courses/CreateCourseHandler.cs - Course creation → Create command: reads command
src/Application/Courses/CreateCourseHandler.cs - Course creation → Course entity: creates entity
src/Application/Courses/CreateCourseHandler.cs - Course reader port → Course entity: returns courses
src/Application/Courses/ICourseReader.cs - In-memory reader → Course reader port: implements
src/Infrastructure/Courses/InMemoryCourseReader.cs - In-memory reader → Course entity: reads entities
src/Infrastructure/Courses/InMemoryCourseReader.cs - Mock overview service → Overview service port: implements
src/Infrastructure/MockSubmissionOverviewService.cs - Mock overview service → Submission contract: reads submissions
src/Infrastructure/MockSubmissionOverviewService.cs - Mock overview service → Member contract: reads members
src/Infrastructure/MockSubmissionOverviewService.cs - Mock overview service → Task contract: reads tasks
src/Infrastructure/MockSubmissionOverviewService.cs - Mock overview service → Overview results: builds overviews
src/Infrastructure/MockSubmissionOverviewService.cs - Overview service port → Overview results: returns results
src/Application/ISubmissionOverviewService.cs - Overview results → Submission status: uses status
src/Application/SubmissionOverviewDto.cs - Submission contract → Submission status: uses status
src/Domain/SubmissionContract.cs