Skip to content

Company Structure and Objectives T2 2025

Executive Summary

Thoth Tech is an education-focused technology company located in Melbourne, Australia. Thoth Tech’s mission is to build, operate, and deploy tools that enhance education outcomes by empowering students, connecting them with tutors, and facilitating personalized learning experiences. students, connecting them with tutors, and facilitating personalized learning experiences.

We value excellence and collaboration. We strive to deliver all our products in exceptional quality, making sure it is sustainable in the long run. We continuously meet this goal while empowering our people through established frameworks and a safe and supportive learning environment.

This report will outline the company structure, objectives, and projects for Trimester 2, 2025. This trimester, Thoth Tech will be running the two main products: OnTrack and SplashKit.

Table of Contents

Leadership Team

Company Board

  • Josh Kilinc - Company Director
  • Andrew Cain - Product Owner (OnTrack & SplashKit)

Product Mentors

  • OnTrack: Brian Dang
  • SplashKit: Monica Tasmin

Student Leadership

  • Ibitope Ebenezer Fatoki - Senior Leader (OnTrack)
  • Samindi Situmya Ratnayake Mudiyanselage - Senior Leader (OnTrack)
  • Martin John Dolores- Senior Leader (OnTrack)
  • Mostafa Nouri - Senior Leader (OnTrack)
  • Joseph Kalayathankal Saji - Junior Leader (OnTrack)
  • Wael Alahmadi - Junior Leader (OnTrack)
  • Joshua Talev - Junior Leader (OnTrack)
  • Joshua Peyton Fernandes - Senior Leader (SplashKit)
  • Oliver Alexander Quail - Senior Leader (SplashKit)
  • Vishnu Vengadewaran - Senior Leader (SplashKit)
  • Paavan Kalra - Senior Leader (SplashKit)
  • Haoyu Liu - Junior Leader (SplashKit)
  • Runqi Liu - Junior Leader (SplashKit)
  • Wei Zhang - Junior Leader (SplashKit)
  • Haoxuan Yuan - Junior Leader (SplashKit)

Trimester Goals and Objectives

This trimester, Thoth Tech aims to achieve the following:

Goal 1: Foster Professional Growth and a Collaborative Team Culture

  • Encourage Lifelong Learning and Skill Development: Provide a supportive environment where team members can enhance their technical and interpersonal skills, building a strong foundation for their careers beyond graduation.
  • Promote Initiative and Teamwork: Empower team members to take ownership of their work while fostering a collaborative culture built on shared responsibility and collective success.
  • Establish Consistent Team Processes: Implement standardized workflows and standards for tools like Planner and GitHub, along with clear peer review protocols, to improve efficiency and high-quality across all teams.
  • Develop Clear and Accessible Documentation: Build comprehensive documentation across all project areas to support learning, onboarding, and smooth knowledge transfer within and between teams.
  • Champion Diversity and Inclusivity: Create an environment where all team members feel valued, supported, and empowered to reach their full potential, regardless of their background.

Goal 2: Strengthen, Elevate and Expand Thoth Tech’s Product Portfolio

  • Enhance Existing Features and Introduce New Capabilities: Continuously refine core functionalities and expand product offerings to align with user needs and Thoth Tech’s vision.
  • Address Critical Bugs and Improve User Experience: Prioritize key bug fixes and usability enhancements to maintain a high standard of quality and reliability in all products.
  • Uphold Strong Security and Industry Standards: Adhere to rigorous security protocols and best practices to ensure that Thoth Tech’s products are safe, secure, and trustworthy.
  • Promote Research-Informed Innovation: Encourage well-researched, forward-thinking ideas that keep Thoth Tech at the forefront of emerging technologies and evolving user needs.

Project 1 - OnTrack

Overview, Goals, and Objectives

OnTrack, also known as Doubtfire, is an innovative Learning Management System (LMS) designed specifically for skill-based course delivery. This platform enhances the connection between tutors and students, with a primary focus on Deakin University and other global educational institutions. OnTrack aims to elevate the educational experience by offering a structured, efficient, and interactive learning environment. The system is crafted to improve student engagement, boost learning outcomes, and streamline the teaching and learning process, benefiting both students and educators.

The OnTrack team is dedicated to continuously improving the platform by working on all planned deliverables each trimester. While the team strives to complete all objectives, any remaining deliverables are carried forward, encouraging the next generation of leaders to take ownership and drive the project forward. This approach ensures the long-term sustainability and evolution of OnTrack, fostering a culture of responsibility, innovation, and continuous enhancement for the benefit of future users.

Additionally, our team aims to maintain the quality of our work and improve the usability of OnTrack. This includes fixing bugs, improving workflows, and making the platform more accessible for all users. For example, we worked on adding color themes to support students with color blindness, reducing barriers for those users. We also prioritize documentation and transparency. By keeping clear records of what’s done, what’s in progress, and what’s next, we make sure new teams can pick up where we left off without guessing. We understand that documentation saves time, prevents repeated mistakes, and helps the project grow faster.

Other key goals include:

  • Responding to feedback – We have a strict peer review process that allows us to learn from each other.

  • Promoting sustainability – By writing clean, maintainable code and clear handover notes, we keep OnTrack stable and ready for future development.

Our objective is simple: leave OnTrack better than we found it and make the next team’s start easier.

User Manual

This section provides all the essential tutorials and contribution guides to help new team members set up their local environment and begin contributing to OnTrack confidently.

Tutorial Videos on Setting Up Your Local Development Environment

Contributing Guides

Aims for Trimester

This trimester, the OnTrack team at Thoth Tech will build upon the foundational work of T1 2025 to continue modernizing and expanding platform functionality, accessibility, and performance. Our focus will be on completing high-priority migrations, implementing user-focused features, and reinforcing system security and documentation standards. The following areas are targeted for completion or significant progress:

1. Frontend Migration: AngularJS → Angular 17

  • Complete the migration of remaining legacy components from AngularJS + CoffeeScript to Angular 17 + TypeScript.
  • Refactor UI components to match updated design language and improve accessibility (in conjunction with color theme work).
  • Test and optimize performance for responsiveness and maintainability across devices and user roles.

2. Accessibility: color Themes

  • Introduce customizable color themes with specific presets for various types of color vision deficiencies (e.g. deuteranopia, protanopia).
  • Integrate theme selector into user settings and ensure WCAG 2.1 AA compliance across themes.
  • Conduct user testing to validate effectiveness and usability of new themes.

3. Security and Authentication

  • Implement modular authentication logic that separates concerns and strengthens isolation of login/session flows.
  • Continue applying cybersecurity improvements based on outcomes of the T1 2025 audit and any new findings.
  • Begin formalizing SSO and mTLS integration prototypes for future scalability.

4. Organisational Structure Support

  • Introduce the concept of Organisations into OnTrack: allow multiple institutions or units to operate under a single instance.
  • Develop and deploy the Observer Role to support administrative oversight without direct intervention privileges.
  • Finalize RBAC mappings and permission sets to ensure scalability and maintain security.

5. Tutor Activity Tracking

  • Deliver the Tutor Time Tracking module: Stopwatch + Manual Input + Analytics dashboard.
  • Enable notifications for time limits and allow Unit Chairs to access reports via a central interface.
  • Securely store and expose tracking data via authenticated APIs for internal analytics.

6. Self-Enrolment Enhancements

  • Roll out Student Self-Enrolment for units and projects.
  • Enhance the Capstone Project Selection tool with input validation, improved form UI/UX, and backend CSV export support.

7. Staff Grant Extension

  • Add UI that allows tutors to grant extensions
  • Enable notifications for staff-granted extensions, delivered via email or in-system.
  • Finalize and thoroughly test the backend API endpoints.

8. Courseflow

  • Add Marking and Filter feature to add capability to mark units as complete.
  • Add skill tracker that displays summary of skills learned through units.
  • Display credit points achieved and add overlay component for detailed units.

9. OnTrack Documentation Website

  • Finalize API reference pages for frontend and backend endpoints.
  • Fill documentation gaps from T1 and begin “Getting Started” onboarding guide series.
  • Host tutorials and videos to support student and developer use cases.

10. New Feature Explorations

  • Identify and scope next-generation feature ideas (e.g. Panopto integration phase 2, mobile optimization, AI tutor suggestions).
  • Conduct internal design sprints and feasibility studies for selected innovations.

Deliverables – T2 2025

The following deliverables are expected to be completed or reach significant milestones during Trimester 2, 2025:

1. Frontend Migration

Trimester Priorities:

  • Ensure that all child components are reviewed and migrated to ensure parent components can be migrated.
  • Complete migrating all components that have no child/nested components.

Long Term Priorities:

  • Migration of all legacy AngularJS and CoffeeScript components to Angular 17 and TypeScript.
  • Improved UI consistency and accessibility across updated components.
  • Performance benchmarking and optimization of migrated views.

2. Accessibility Enhancements

Trimester Priorities:

  • Create a document with information on implementing a guide to CSS styles.
  • Implement style guide restrictions onto components.

Long Term Priorities:

  • Deployment of configurable color themes, including presets for various color blindness types.
  • Theme selector integrated into user profile settings.
  • Accessibility compliance testing completed and passed (WCAG 2.1 AA baseline).

3. Security and Authentication Upgrades

Trimester Priorities:

  • Patch final two vulnerabilities left from T1 Penetration Test.
  • Improve Security Documentation and integrate Security testing into CI/CD pipeline.

Long Term Priorities:

  • Modular authentication system developed and integrated.
  • Security enhancements implemented based on T1 2025 audit outcomes.
  • Baseline groundwork completed for SSO/mTLS experimentation and prototyping.

4. Multi-Organisation Support

Trimester Priorities:

  • Complete the observer role creation and database migration.

Long Term Priorities:

  • Backend schema updated to support multiple organisations.
  • Observer Role created and assigned appropriate RBAC permissions.
  • Initial organisation switching UI available to admins and superusers.

5. Tutor Activity Tracking Module

Trimester Priorities:

  • Integrate the Session Tracker Service across related entities
  • Complete backend endpoints to retrieve Marking Sessions and Session Activities.

Long Term Priorities:

  • Stopwatch and manual time entry system deployed for tutors.
  • Alerts implemented for tutors exceeding marking time limits.
  • Tutor analytics dashboard available to staff with data pulled from secured API endpoints.

6. Student Self-Enrolment

  • Self-enrolment UI deployed for units and project-based tasks (e.g. Capstone).
  • Improved form validation and CSV export integration for administrative tasks.
  • End-to-end testing completed for enrolment workflows.

7. Staff Grant Extension System

Trimester Priorities:

  • Complete the back-end and front-end integration.
  • Ensure that the notification system works when an extension is granted.

Long Term Priorities:

  • Functional staff UI for manually processing extension requests.
  • Full CRUD capability for managing extensions stored in the database.
  • API endpoints secured and unit-tested.

8. Courseflow

Trimester Priorities:

  • Complete marking unit as complete and skill summary feature.
  • Work on filtering feature and add overlay component for detailed unit descriptions.

Long Term Priorities:

  • Enhance unit information, skills summary and trimester timetables to improve functionality
  • Add course discovery and skill tracker to track progress and visualize course maps for students.

9. Documentation Website

Trimester Priorities:

  • Improve documentation across all OnTrack projects to ensure consistency and coverage.
  • Add timestamp and author to documentation.

Long Term Priorities:

  • API reference fully updated with new and refactored endpoints.
  • Backend and frontend architecture docs finalized.
  • New “Getting Started” guide and walkthroughs published for onboarding.

10. Exploratory Features (R&D Stage)

  • Capstone Feature 2.0 ideation workshops completed.
  • Design sprint prototypes for Panopto Phase 2.
  • Internal technical review of feasibility and resource impact for long-term planning.

Project Members

Member NamesRoles/ResponsibilitiesJunior/Senior
Ibitope FatokiTeam LeaderSenior
Ekamjot SinghTeam MemberSenior
Alex BrownTeam MemberSenior
Jiaying ChenTeam MemberSenior
Martin DoloresTeam LeaderSenior
Minh LamTeam MemberSenior
Duy NguyenTeam MemberSenior
Huu NguyenTeam MemberSenior
Mostafa NouriTeam LeaderSenior
Samindi RatnayakeTeam LeaderSenior
Lachlan RobinsonTeam MemberSenior
Jason VellucciTeam MemberSenior
Sahiru WithanageTeam MemberSenior
Joshua BevanTeam MemberSenior
Pasindu FernandoTeam MemberSenior
Disuru RathnayakeTeam MemberSenior
Hasindu WelarathneTeam MemberSenior
Rachith ChandrathilakeTeam MemberJunior
Joshua TalevTeam LeaderJunior
Rashi AgrawalTeam MemberJunior
Wael AlahmadiTeam LeaderJunior
Millicent AmoloTeam MemberJunior
Gaurav MyanaTeam MemberJunior
Samuel Nunes Dos SantosTeam MemberJunior
Joseph SajiTeam LeaderJunior
Syeda TabassumTeam MemberJunior
Parth VaghelaTeam MemberJunior

Completed Deliverables

1. Frontend Migration Progress

Frontend components migrated:

  • task-ilo-alignment-rater.coffee
  • analytics.coffee
  • portfolio-grade-select-step.coffee
  • unit-details-editor.component.ts
  • filters.coffee
  • content-editable.coffee
  • tutorials.coffee
  • unit-staff-editor.coffee
  • date-service.coffee
  • analytics-service.coffee
  • portfolio-welcome-step.coffee
  • group-member-contribution-assigner.coffee
  • migrate unit-dates-selector
  • migrate achievement-custom-bar-chart
  • migrate remove task-completion-box-plot
  • fix-task-viewer-routing
  • migrate portfolio-review-step
  • migrate unit-ilo-edit-modal
  • migrate runtime-service
  • update frontend migration progress list
  • remove alignment-bar-chart
  • migrate group-member-list
  • migrate recorder-service
  • migrate-outcome-service
  • migrate student-list
  • migrate create-unit-modal
  • migrate group-set-selector
  • migrate confirmation-modal

Frontend components no longer in 9.x:

  • all-projects-list.coffee
  • all.coffee
  • tutor-group-manager.coffee
  • task-definition-selector.coffee

2. Accessibility Color Themes

Extensive research is was done to identify the various types of color blindness and determine optimal color palettes to accommodate affected users. Given that OnTrack relies heavily on color to communicate task status, this accessibility feature is a high priority. The team is committed to ensuring a thoughtful and effective rollout that meets the needs of all users. Key achievements this trimester include:

  • Completed research on color blindness types and their impact on UI design.
  • Developed initial color palettes tailored for different types of color vision deficiencies.
  • Developed a contrast-safe color palette with WCAG 2.2 compliant colors including success, error, and warning variants with 4.5:1 contrast ratios.
  • Implemented shape differentiation for accessibility with distinct visual markers (circles for complete, star shapes for overdue, squares for pending)
  • Created a comprehensive style guide to ensure consistent implementation of color themes across the platform.
  • Created pattern overlay system using SVG backgrounds for color blind users.
  • Established comprehensive theme system including default, dark, high-contrast, and color-blind-safe themes
  • Implemented CSS custom properties for dynamic theme switching
  • Developed optimized color palettes for different types of color vision deficiencies

3. Security and Authentication

The team has made significant progress in improving security this trimester. Key achievements include:

  • Patched the Swagger vulnerability
  • Patched the IDOR vulnerability
  • Investigated frontend route access vulnerabilities
  • Conducted a cryptography audit
  • Standardized API authentication
  • Enabled OnTrack accounts with full password management in the database
  • Created a guide to setup and build Ontrack for Linux environments

Unfortunately, the pentesting scheduled for mid-August was delayed due to unforeseen circumstances and various build errors. The team has rescheduled this critical assessment to ensure that all security measures are thoroughly evaluated and any vulnerabilities are promptly addressed. A thorough guide on building and troubleshooting OnTrack on Linux VMs has been created to allow this proceed smoothly.

4. Observer Role Creation

The team has successfully enhanced multi-organisation support into OnTrack. Key achievements include:

  • The Observer Role has been developed and deployed, enabling administrative oversight without direct intervention privileges.
  • Database migration for multi-organisation support has been finalized and implemented.
  • Documentation for the Observer Role and multi-organisation features has been created to facilitate understanding and usage.

5. Tutor Activity Tracking

Backend development for Tutor Times is progressed well. Key achievements include:

Doubtfire-API (Backend)

  • The database schema has been updated to introduce a Marking Session table, enabling accurate tracking of marking periods associated with tutors and units.
  • A Session Activities table has been added to systematically log user interactions, such as actions taken during task assessment, supporting improved analytics and reporting.

Next steps involve:

  • Creating a Session Tracker Service to manage marking sessions based on a 15-minute activity threshold, tracking activities such as accessing and updating tasks.
  • Integrating the Session Tracker Service across related entities, including User, Unit, Project, and Task.
  • Implementing endpoints to retrieve Marking Sessions and Session Activities for enhanced visualization and analytics.

Doubtfire-Web (Frontend)

  • Completed Tutor-Time Dashboard UI for tutors
  • UI contains npx charts visualization to visualise data
  • Dummy Data is being shown with appropriate Data Structures

6. Self-Enrolment Enhancements

The student self-enrolment feature has been successfully implemented across both backend and frontend components, delivering a comprehensive solution that allows students to autonomously enroll in tutorials for specific tasks. Key achievements include:

Doubtfire-API (Backend)

Database Schema Foundation

  • The database schema has been updated to support self-enrollment functionalities, including necessary tables and relationships to manage student enrollments effectively.

ActiveRecord Model Updates

  • ActiveRecord models have been enhanced to encapsulate the logic required for self-enrollment processes, ensuring data integrity and consistency.

API Endpoints Development

  • Backend API endpoints have been developed to facilitate student self-enrollment, including robust validation and error handling mechanisms to ensure data integrity and a smooth user experience.

Complete API Controller Implementation

  • The API controller has been fully implemented to handle self-enrollment requests, providing necessary CRUD operations and ensuring secure access to enrollment data.

Doubtfire-Web (Frontend)

Administrative Interface

  • The administrative interface has been updated to include self-enrollment management features, allowing staff to oversee and manage student enrollments effectively.

Student Enrollment UI

  • The student enrollment UI has been designed to provide a seamless experience for students enrolling in tutorials. It includes intuitive forms and real-time validation to enhance usability.

Testing and Validation

  • Comprehensive testing has been conducted to ensure the reliability and functionality of the self-enrollment feature, including unit tests, integration tests, and user acceptance testing.

7. Staff Grant Extension

The staff grant extension feature has progressed significantly this trimester. A dedicated page has been developed to enable staff to grant extensions, and the necessary backend API endpoints are now in place.

Next steps include finalizing the routing for the Staff Grant Extension (SGE) page, integrating the backend and frontend components, and ensuring that notification systems—both in-system and email—function reliably for all extension requests.

Key achievements this trimester include:

  • Completed the back-end and front-end integration.
  • Completed notification system to send alerts to both students and tutors once extension has been granted. (Email and in system)

8. Courseflow

The Courseflow project has progressed quite far this trimester. The ability to mark units as complete and a skills summary feature have been successfully implemented, providing clearer progress tracking for students.

The features that have been implemented and reviewed in for CourseFlow this trimester involves:

Frontend (doubtfire-web)

  • Refactored CourseFlow’s front-end code base: maintainability and follow better architectural patterns for Angular components.
  • Enhanced the search functionality: enhancement to CourseFlow unit search including autocomplete of available units that dynamically updates as input updates.
  • Added the ability to mark unit as complete: Implemented functionality allowing users to mark units as completed, and unit cannot be modified once completed.
  • Created an overlay component to display full details regarding a unit.
  • Added more metadata to the unit card: Enhanced unit cards with additional information such as credit points and level.
  • Created a component to display credit points achieved: Built a dedicated component to show accumulated credit points, helping users track their progress toward requirements.
  • Added options to overload units to a teaching period: Implemented functionality to allow scheduling units beyond normal capacity limits for specific teaching periods.
  • Added warning logic for unit requirements: Created validation and warning systems to alert users when unit selections conflict with prerequisites or requirement rules.

Backend (doubtfire-api)

  • Created a rake script to create test data for CourseFlow, including course, course map, course map units, and their relationships for development and testing.
  • Update unit model to host more details (including credit_points, prerequisites, corequisites). This trimester, two innovative proposals have been introduced to further enhance OnTrack:

9. OnTrack Documentation Website

Documentation efforts are progressed well this trimester. The team focused on consolidating and fixing inconsistencies across the OnTrack documentation, ensuring a unified and comprehensive resource for users. Key achievements include:

  • Created documentation for 8.0.x and 9.x branch setup issues.
  • Created Powershell script to pull tasks from planner board.
  • Created Feature/validate filename.
  • Resolved Main Branch Build Errors.
  • Created Various migration and feature documentation pull requests.
  • Updated todo and migrated list frontend migration guide.
  • Added documentation setup guide for the project.
  • Added timestamp and author to documentation pages.

10. New Feature Explorations

  • A performance benchmarking initiative using Google Lighthouse, proposed by Mostafa Nouri, aims to systematically evaluate and improve the platform’s speed, accessibility, and overall user experience.
  • A gamification strategy for the OnTrack UI, proposed by Joseph Kalayathankal Saji, is designed to boost user engagement through interactive and motivational elements.

Both proposals have been currently developed and integrated into the Doubtfire-Astro repository, with ongoing expansion and refinement. These initiatives reflect the team’s commitment to continuous improvement and innovation.

List of Completed Deliverables

Note on Table Generation: The following table was generated using the Planner_Pull.ps1 PowerShell script PR#51. The script determines a contributor’s role (e.g., Main Contributor, Reviewer) using Planner’s metadata about when a user was assigned to a task. In cases where this cannot be determined reliably, the ‘Role’ cell is intentionally left blank to avoid providing inaccurate information.

NameRoleTaskAttachments
ALEX BROWNReviewerCleanup feedback.coffeePR#399
ALEX BROWNGuide to build Ontrack on Linux based VMsPR#60
ALEX BROWNReviewerSecurity Issue: Publicly Accessible API Documentation via SwaggerPR#73; PR#48
ALEX BROWNMigrate groups.coffeePR#382
ALEX BROWNReviewerCreate Script to Pull tasks from PlannerPR#51
ALEX BROWNReviewerAdd progress trackingPR#413
ALEX BROWNReviewerPopulate the content of the unit component tab with drop down menus to filter the units that get displayed.PR#411
ALEX BROWNMigrate unit-dates-selector.coffeePR#417
ALEX BROWNFrontend Migrations: Update frontend migration progress listPR#397; PR#982
ALEX BROWNMain ContributorMigrate runtime.coffeePR#398
ALEX BROWNEnhance the search functionalitiesPR#409
ALEX BROWNMigrate outcome-service.coffeePR#390
ALEX BROWNReviewerValidate File namePR#53
ALEX BROWNMigrate Portfolio Welcome StepPR#384; PR#619
ALEX BROWNMain ContributorFix change_remotes.shPR#32
ALEX BROWNEnable OnTrack accounts with full password management in the databasePR#78; PR#56; PR#57; PR#419
CHELAKA YASODHANA PATHBERIYAGEReviewerMigrate CSV result model + improvementPR#420
CHELAKA YASODHANA PATHBERIYAGEReviewerImplement ngx graphs/charts in UIPR#1003; PR#402
CHELAKA YASODHANA PATHBERIYAGEReviewerMigrate Group-member-listPR#393
CHELAKA YASODHANA PATHBERIYAGEFix Task Viewer component routingPR#404
CHELAKA YASODHANA PATHBERIYAGEAdd observer property to unit-level rolesPR#75; PR#54
CHELAKA YASODHANA PATHBERIYAGEMigrate students-list.coffeePR#597; PR#389
CHELAKA YASODHANA PATHBERIYAGECreate Enrolment Prompt CardPR#415
CHELAKA YASODHANA PATHBERIYAGEMain ContributorMigrate portfolio-review-step.coffeePR#401
CHELAKA YASODHANA PATHBERIYAGEStudent Self-Enrolment - Tutorial EnrolmentPR#415; PR#79
DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGEMain ContributorStudent Self-Enrolment - Tutorial EnrolmentPR#415; PR#79
DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGEMigrate Group-member-listPR#393
DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGEMigrate outcome-service.coffeePR#390
DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGERemove task-completion-box-plotPR#410
DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGEMigrate achievement-custom-bar-chart.coffeePR#412
DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGEMigration: task-ilo-alignment-raterPR#603; PR#338
DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGEMain ContributorMigrate recorder-service.coffeePR#391; PR#1009
DUY NGUYENMain ContributorAdd option to overload units to a teaching periodPR#407
DUY NGUYENCreate a component to display credit points achieved.PR#407
DUY NGUYENMigrate runtime.coffeePR#398
DUY NGUYENMain ContributorEnrich the unit card itself to show more infoPR#407
DUY NGUYENMain ContributorAdd warning to the unit card when a requisite is not metPR#418
DUY NGUYENMain ContributorUpdate unit model to host more detailsPR#71
DUY NGUYENReviewerMigrate groups.coffeePR#382
DUY NGUYENEnhance the search functionalitiesPR#409
DUY NGUYENMain ContributorCreate test data for CourseFlow ( Course map, Course map units, Units)PR#70
DUY NGUYENReviewerPopulate the overlay component for the detailed unit with content of the unit - this needs to include unit requirements.PR#215
DUY NGUYENMain ContributorRefactor CourseFlow code base for better components maintainencePR#385
EDWARD NGUYENReviewerUpdate unit model to host more detailsPR#71
EDWARD NGUYENEnrich the unit card itself to show more infoPR#407
EDWARD NGUYENAdd option to overload units to a teaching periodPR#407
EDWARD NGUYENMain ContributorCreate a component to display credit points achieved.PR#407
EDWARD NGUYENReviewerAdd warning to the unit card when a requisite is not metPR#418
EDWARD NGUYENMain ContributorAdd ability to mark unit as complete (phase 4)PR#386 PR#396
EDWARD NGUYENRemove alignment-bar-chart.coffeePR#395
EDWARD NGUYENCreate test data for CourseFlow ( Course map, Course map units, Units)PR#70
EDWARD NGUYENMain ContributorPopulate the overlay component for the detailed unit with content of the unit - this needs to include unit requirements.PR#215
EDWARD NGUYENMain ContributorAdd summary of skills componentPR#396
EKAM BHULLARReviewerAdd summary of skills componentPR#396
EKAM BHULLARReviewerRefactor CourseFlow code base for better components maintainencePR#385
EKAM BHULLARMigrate portfolio-review-step.coffeePR#401
EKAM BHULLARReviewerEnable OnTrack accounts with full password management in the databasePR#78; PR#56; PR#57; PR#419
EKAM BHULLARMain ContributorImplement ngx graphs/charts in UIPR#1003; PR#402
EKAM BHULLARReviewerDevelop Tutor Time DashboardPR#416; PR#58
GAURAV MANOHAR MYANAReviewerActiveRecord Model UpdatesPR#2
GAURAV MANOHAR MYANAReviewerOnTrack Style Guide v0.1PR#62
GAURAV MANOHAR MYANAAPI Entity UpdatesPR#3
GAURAV MANOHAR MYANADatabase Schema SetupPR#1
HASINDU DESHITHA WELARATHNEMain ContributorMigrate students-list.coffeePR#597; PR#389
HASINDU DESHITHA WELARATHNEReviewerMigrate portfolio-review-step.coffeePR#401
HASINDU DESHITHA WELARATHNEMigrate recorder-service.coffeePR#391; PR#1009
HASINDU DESHITHA WELARATHNEMain ContributorMigrate CSV result model + improvementPR#420
HASINDU DESHITHA WELARATHNEReviewerFix Task Viewer component routingPR#404
IBI FATOKIReviewerRemove alignment-bar-chart.coffeePR#395
IBI FATOKIReviewer8.x and 9.x build documentationPR#44
IBI FATOKIReviewerMigrate outcome-service.coffeePR#390
IBI FATOKIReviewerAstro - Resolve Main Branch ErrorsPR#55
IBI FATOKIAdd observer property to unit-level rolesPR#75; PR#54
IBI FATOKIActiveRecord Model UpdatesPR#2
IBI FATOKIValidate File namePR#53
IBI FATOKIReviewerWeb Security Audit: Cryptographic FailuresPR#45
IBI FATOKIEnable OnTrack accounts with full password management in the databasePR#78; PR#56; PR#57; PR#419
IBI FATOKIAPI Entity UpdatesPR#3
IBI FATOKIMetadata injection script for Markdown filesPR#626
IBI FATOKIStudent Self-Enrolment - Tutorial EnrolmentPR#415; PR#79
IBI FATOKIMain ContributorSecurity Issue: Publicly Accessible API Documentation via SwaggerPR#73; PR#48
IBI FATOKIRemove task-completion-box-plotPR#410
IBI FATOKIMain ContributorGuide to build Ontrack on Linux based VMsPR#60
IBI FATOKIReviewerFix IDOR Vulnerability - User Data AccessPR#76
IBI FATOKIReviewerMigrate achievement-custom-bar-chart.coffeePR#412
IBI FATOKIPopulate the overlay component for the detailed unit with content of the unit - this needs to include unit requirements.PR#215
IBI FATOKIReviewerStandardize API Authentication RequirementsPR#72
IBI FATOKIMain ContributorCreate Script to Pull tasks from PlannerPR#51
IRIS CHENReviewerGuide to build Ontrack on Linux based VMsPR#60
IRIS CHENMetadata injection script for Markdown filesPR#626
IRIS CHENFrontend Migrations: Update frontend migration progress listPR#397; PR#982
IRIS CHENEnable OnTrack accounts with full password management in the databasePR#78; PR#56; PR#57; PR#419
IRIS CHENSecurity Issue: Publicly Accessible API Documentation via SwaggerPR#73; PR#48
IRIS CHENCreate Script to Pull tasks from PlannerPR#51
IRIS CHENMain ContributorFix IDOR Vulnerability - User Data AccessPR#76
IRIS CHENMain ContributorStandardize API Authentication RequirementsPR#72
IRIS CHENValidate File namePR#53
IRIS CHENMain ContributorWeb Security Audit: Cryptographic FailuresPR#45
IRIS CHENFix Insecure Direct Object References (IDOR) VulnerabilityPR#76
JASON MARK VELLUCCIMain ContributorMigration: group set selectorPR#387; PR#981; PR#620
JASON MARK VELLUCCIGoogle lighthouse performance checksPR#629; PR#46
JASON MARK VELLUCCIMigrate runtime.coffeePR#398
JASON MARK VELLUCCIMetadata injection script for Markdown filesPR#626
JASON MARK VELLUCCIRemove task-completion-box-plotPR#410
JASON MARK VELLUCCIReviewerMigrate students-list.coffeePR#597; PR#389
JASON MARK VELLUCCIMain ContributorFrontend Migrations: Update frontend migration progress listPR#397; PR#982
JASON MARK VELLUCCIMigrate Group-member-listPR#393
JASON MARK VELLUCCI8.x and 9.x build documentationPR#44
JASON MARK VELLUCCIFix Task Viewer component routingPR#404
JASON MARK VELLUCCICreate Documentation on how to build Doubtfire-AstroPR#625
JASON MARK VELLUCCIRefactor CourseFlow code base for better components maintainencePR#385
JASON MARK VELLUCCIMigrate achievement-custom-bar-chart.coffeePR#412
JASON MARK VELLUCCIReviewerClean up src/app/admin/modals/create-unit-modal leftover filesPR#388; PR#350
JASON MARK VELLUCCIUpdate unit model to host more detailsPR#71
JASON MARK VELLUCCIFrontend: Add routing for Staff Grant Extension featurePR#405
JOSEPH KALAYATHANKAL SAJIAdd observer property to unit-level rolesPR#75; PR#54
JOSEPH KALAYATHANKAL SAJIReviewerBackend - Create session_activities tablePR#5
JOSEPH KALAYATHANKAL SAJIMain ContributorDatabase Schema SetupPR#1
JOSEPH KALAYATHANKAL SAJIMain ContributorBackend - Create marking_sessions tablePR#4
JOSEPH KALAYATHANKAL SAJIMain ContributorOnTrack Style Guide v0.1PR#62
JOSEPH KALAYATHANKAL SAJIMain ContributorBackend - Implement API Endpoints for SessionActivies and MarkingSession for AnalyticsPR#8
JOSEPH KALAYATHANKAL SAJIAPI Controller ImplementationPR#4
JOSEPH KALAYATHANKAL SAJIReviewerAPI Entity UpdatesPR#3
JOSEPH KALAYATHANKAL SAJIActiveRecord Model UpdatesPR#2
JOSH BEVANReviewerMigration: group set selectorPR#387; PR#981; PR#620
JOSH BEVANMain ContributorEnhance the search functionalitiesPR#409
JOSH BEVANReviewerFrontend Migrations: Update frontend migration progress listPR#397; PR#982
JOSH TALEVMain ContributorMigrate confirmation-modal.coffeePR#381
JOSH TALEVMain ContributorBackend - Create session_activities tablePR#5
JOSH TALEVReviewerBackend - Implement API Endpoints for SessionActivies and MarkingSession for AnalyticsPR#8
JOSH TALEVMain ContributorMigrate Portfolio Welcome StepPR#384; PR#619
JOSH TALEVMigration: group set selectorPR#387; PR#981; PR#620
JOSH TALEVMain ContributorClean up src/app/admin/modals/create-unit-modal leftover filesPR#388; PR#350
LACHLAN MACKIE ROBINSONMigrate utilService.coffeePR#383
LACHLAN MACKIE ROBINSONMigration: group set selectorPR#387; PR#981; PR#620
LACHLAN MACKIE ROBINSONReviewerAdd observer property to unit-level rolesPR#75; PR#54
LACHLAN MACKIE ROBINSONMain ContributorRemove alignment-bar-chart.coffeePR#395
LACHLAN MACKIE ROBINSONMain ContributorAstro - Resolve Main Branch ErrorsPR#55
LACHLAN MACKIE ROBINSONMain ContributorValidate File namePR#53
LACHLAN MACKIE ROBINSONReviewerMigrate unit-ilo-edit-modal.coffeePR#400
LACHLAN MACKIE ROBINSONMain Contributor8.x and 9.x build documentationPR#44
LACHLAN MACKIE ROBINSONMain ContributorMigrate achievement-custom-bar-chart.coffeePR#412
LACHLAN MACKIE ROBINSONMain ContributorMigrate outcome-service.coffeePR#390
LACHLAN MACKIE ROBINSONMain ContributorRemove task-completion-box-plotPR#410
LAMIA TABASSUMAdd observer property to unit-level rolesPR#75; PR#54
LAMIA TABASSUMSecurity Issue: Publicly Accessible API Documentation via SwaggerPR#73; PR#48
LAMIA TABASSUMDevelop Tutor Time DashboardPR#416; PR#58
MARTIN JOHN DOLORESBackend - Implement API Endpoints for SessionActivies and MarkingSession for AnalyticsPR#8
MARTIN JOHN DOLORESBackend - Create session_activities tablePR#5
MARTIN JOHN DOLORESReviewerBackend - Create marking_sessions tablePR#4
MARTIN JOHN DOLORESBackend - Integrate SessionTracker service across related entitiesPR#7
MARTIN JOHN DOLORESMigrate Portfolio Welcome StepPR#384; PR#619
MARTIN JOHN DOLORESBackend - Create new SessionTracker ServicePR#6
MARTIN JOHN DOLORESMain ContributorMigrate groups.coffeePR#382
MARTIN JOHN DOLORESMigrate confirmation-modal.coffeePR#381
MARTIN JOHN DOLORESMain ContributorMigrate utilService.coffeePR#383
MARTIN JOHN DOLORESSecurity Issue: Publicly Accessible API Documentation via SwaggerPR#73; PR#48
MARTIN JOHN DOLORESValidate File namePR#53
MARTIN JOHN DOLORESBackend - Create PR to doubtfire-api for Feature BranchPR#509
MARTIN JOHN DOLORESReviewerCreate test data for CourseFlow ( Course map, Course map units, Units)PR#70
MARTIN JOHN DOLORESWeb Security Audit: Cryptographic FailuresPR#45
MILLICENT ACHIENG AMOLOFix IDOR Vulnerability - User Data AccessPR#76
MILLICENT ACHIENG AMOLOGoogle lighthouse performance checksPR#629; PR#46
MILLICENT ACHIENG AMOLOReviewerMetadata injection script for Markdown filesPR#626
MILLICENT ACHIENG AMOLOMain ContributorEnable OnTrack accounts with full password management in the databasePR#78; PR#56; PR#57; PR#419
MILLICENT ACHIENG AMOLOGuide to build Ontrack on Linux based VMsPR#60
MILLICENT ACHIENG AMOLOFix Frontend Admin Route Access ControlsPR#49
MILLICENT ACHIENG AMOLOReviewerCreate Documentation on how to build Doubtfire-AstroPR#625
MOSTAFA NOURIMain ContributorAPI Entity UpdatesPR#3
MOSTAFA NOURIMain ContributorCreate Documentation on how to build Doubtfire-AstroPR#625
MOSTAFA NOURIReviewerDatabase Schema SetupPR#1
MOSTAFA NOURIMain ContributorGoogle lighthouse performance checksPR#629; PR#46
MOSTAFA NOURIMain ContributorActiveRecord Model UpdatesPR#2
MOSTAFA NOURIMain ContributorMetadata injection script for Markdown filesPR#626
OLIVER ALEXANDER QUAILCreate Script to Pull tasks from PlannerPR#51
PARTH SANJAYKUMAR VAGHELAReviewerIntegrate with backendPR#403
PARTH SANJAYKUMAR VAGHELAMain ContributorMigrate unit-dates-selector.coffeePR#417
PASINDU FERNANDOMain ContributorMigrate Group-member-listPR#393
PASINDU FERNANDOReviewerMigrate runtime.coffeePR#398
PASINDU FERNANDOImplement ngx graphs/charts in UIPR#1003; PR#402
PASINDU FERNANDORemove task-completion-box-plotPR#410
PASINDU FERNANDOMain ContributorFix Task Viewer component routingPR#404
PASINDU FERNANDOMigrate achievement-custom-bar-chart.coffeePR#412
PASINDU FERNANDOReviewerMigrate Portfolio Welcome StepPR#384; PR#619
PASINDU FERNANDOStudent Self-Enrolment - Tutorial EnrolmentPR#415; PR#79
PASINDU FERNANDOMigrate portfolio-review-step.coffeePR#401
PASINDU FERNANDOMigrate students-list.coffeePR#597; PR#389
PASINDU FERNANDOReviewerMigrate recorder-service.coffeePR#391; PR#1009
PASINDU FERNANDOReviewerMigrate confirmation-modal.coffeePR#381
RASHI AGRAWALReviewerFrontend: Add new SGE pagePR#394
RASHI AGRAWALIntegrate with backendPR#403
RASHI AGRAWALMain ContributorMigrate unit-ilo-edit-modal.coffeePR#400
SAHIRU HESHAN WITHANAGERemove alignment-bar-chart.coffeePR#395
SAHIRU HESHAN WITHANAGEReviewerFix change_remotes.shPR#32
SAHIRU HESHAN WITHANAGEReviewerAdd ability to mark unit as complete (phase 4)PR#386 PR#396
SAHIRU HESHAN WITHANAGEIntegrate with backendPR#403
SAHIRU HESHAN WITHANAGEFrontend Work: Student search and selectionPR#359
SAHIRU HESHAN WITHANAGEMain ContributorFrontend: Add new SGE pagePR#394
SAHIRU HESHAN WITHANAGEAdd summary of skills componentPR#396
SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGEAdd ability to mark unit as complete (phase 4)PR#386 PR#396
SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGEFrontend Work: Set up notification UIPR#353
SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGEBackend- In-system notification systemPR#69
SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGEFrontend: Add new SGE pagePR#394
SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGEWeb Security Audit: Cryptographic FailuresPR#45
SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGEUpdate documentation in doubtfire-astro for staff grant extension new APIs and FE componentsPR#40
SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGEMain ContributorIntegrate with backendPR#403
SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGEReviewerMigrate utilService.coffeePR#383
SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGEStandardize API Authentication RequirementsPR#72
TRIET LAMStudent Self-Enrolment - Tutorial EnrolmentPR#415; PR#79
TRIET LAMReviewerCreate a component to display credit points achieved.PR#407
TRIET LAMMain ContributorCleanup feedback.coffeePR#399
TRIET LAMPopulate the content of the unit component tab with drop down menus to filter the units that get displayed.PR#411
TRIET LAMReviewerMigrate unit-dates-selector.coffeePR#417
TRIET LAMReviewerEnhance the search functionalitiesPR#409
TRIET LAMReviewerEnrich the unit card itself to show more infoPR#407
TRIET LAMReviewerRemove task-completion-box-plotPR#410
TRIET LAMReviewerAdd option to overload units to a teaching periodPR#407
TRIET LAMMain ContributorAdd progress trackingPR#413
WAEL ALAHMADIMigrate students-list.coffeePR#597; PR#389
WAEL ALAHMADIEnable OnTrack accounts with full password management in the databasePR#78; PR#56; PR#57; PR#419
WAEL ALAHMADIReviewerGoogle lighthouse performance checksPR#629; PR#46
WAEL ALAHMADIReviewerStudent Self-Enrolment - Tutorial EnrolmentPR#415; PR#79
WAEL ALAHMADIMain ContributorDevelop Tutor Time DashboardPR#416; PR#58
WAEL ALAHMADIEnhance the search functionalitiesPR#409
WAEL ALAHMADIMigrate unit-ilo-edit-modal.coffeePR#400
WAEL ALAHMADIMain ContributorAdd observer property to unit-level rolesPR#75; PR#54
WAEL ALAHMADISecurity Issue: Publicly Accessible API Documentation via SwaggerPR#73; PR#48

Roadmap

This roadmap outlines the strategic priorities for the next trimester, building on the progress made in T2 2025. Key areas of focus include completing the frontend migration, implementing new features, and addressing critical security evaluations.


1. Continued Frontend Migration to Angular 17

The migration from AngularJS and CoffeeScript remains a top priority. While significant progress was made in T2, the work is ongoing.

  • Priority: Complete the full migration of all legacy components to Angular 17 and TypeScript.
  • Action: Focus on migrating parent components whose child components have already been updated.
  • Goal: Achieve improved UI consistency, accessibility, and performance across the entire platform.

2. Security Enhancements and Penetration Testing

Key vulnerabilities were patched in T2, but the formal penetration testing was delayed.

  • Priority: Conduct the rescheduled penetration test to thoroughly evaluate all security measures.
  • Action: Address any new findings from the test promptly and continue to integrate security testing into the CI/CD pipeline.
  • Goal: Continue formalizing prototypes for SSO (Single Sign-On) and mTLS integration for future scalability.

3. Full Implementation of Tutor Activity Tracking

The backend schema and frontend UI for this feature are in place, but they need to be fully integrated and activated.

  • Priority: Connect the frontend dashboard to live backend data instead of the current dummy data.
  • Action: Implement the Session Tracker Service to manage marking sessions and integrate it across all related entities (User, Unit, Project, Task).
  • Goal: Deploy backend endpoints to retrieve Marking Sessions and Session Activities for analytics and reporting.

4. Deploying Accessibility and Color Blindness Features

The foundational research and design for accessibility were completed in T2. The next step is full implementation and deployment.

  • Priority: Deploy the configurable color themes, including presets for various types of color vision deficiencies like deuteranopia and protanopia.
  • Action: Integrate the theme selector into user profile settings and conduct user testing to validate the effectiveness of the new themes.
  • Attachments:
  • Accessibility Research

5. Expanding OnTrack Documentation

Efforts to centralize documentation should continue to support new team members.

  • Priority: Create the “Getting Started” onboarding guide series that was planned in previous trimesters.
  • Action: Finalize API reference pages for all new and refactored endpoints to ensure the documentation is comprehensive and current.

6. Long-Term Feature Development (Backlog)

These items from previous roadmaps or new T2 proposals are still in the backlog for future development.

  • Panopto Video Integration: This feature, including phase 2 explorations, is fully scoped but remains in the backlog for a future implementation.
  • Performance Benchmarking: Expand on the new initiative to use Google Lighthouse to systematically test and improve platform speed and accessibility.
  • Gamification: Explore the feasibility of development of the gamification strategy proposed in T2 to boost user engagement through interactive UI elements.

Open Issues

This section flags persistent issues that may interfere with the future team’s ability to work and provides advice on how these could be addressed. Despite steady progress on deliverables, several challenges remain that could impact the continuity and learning outcomes for the next cohort.


Skills Gap & Onboarding Challenges

Many students join OnTrack to learn, but the steep learning curve for technologies like Angular, TypeScript, and legacy CoffeeScript can be a significant barrier.

  • Without structured technical onboarding, new members often spend the first 3–4 weeks trying to understand the system, which delays their ability to contribute effectively.
  • There is often an implicit expectation that students are already proficient with the tech stack (including Git, Docker, and Angular), which is not always the case and can lead to frustration.

Development Environment & Compatibility Issues

Setting up the local development environment remains a significant hurdle, especially for students using Windows machines.

  • Docker image sizes are large, and performance differences compared to Mac or Linux systems can create an uneven development experience.
  • Compatibility differences between the 8.0.x and 9.x branches can lead to frequent and confusing build issues.
  • These issues had a direct impact this trimester, as the penetration testing scheduled for mid-August was delayed partly due to “various build errors.”

Fragmented Review and Contribution Workflow

The process for reviewing Planner board tasks and GitHub pull requests can lack consistency.

  • Without clear ownership and review pathways, some completed work can sit idle in pull requests for long periods, waiting for approvals. This can slow down overall project momentum.

Recommendations for Future Teams

To mitigate these issues, the next team should consider the following:

  • Introduce a structured onboarding program that covers environment setup, Git workflows, and an introduction to the core tech stack.
  • Create and maintain a beginner-friendly setup guide, especially for Windows environments.
  • Communicate early and often with mentors or sub-leads to get help and unblock technical issues quickly.
  • Leverage the resources in the User Manual section, which contains setup videos and contribution guides.

Lessons Learned

Throughout the trimester, the OnTrack team gained valuable insights into collaboration, workflow management, and technical readiness. The following lessons are shared to help future teams adopt practices that support sustained progress and learning.


The Importance of Mentorship

Mentors play a pivotal role in clarifying complex tasks and keeping the team aligned with project goals. Low attendance in mentor meetings can create knowledge gaps, leading to missed updates and slower progress.

  • Key Takeaway: Prioritize regular engagement with mentors to stay informed and unblock technical or process-related issues early.

Effective Task Management

Consistent use of the Planner board is essential for transparency and progress tracking.

  • When tasks are left un-updated, it can cause confusion around team progress and individual responsibilities.
  • Key Takeaway: Familiarity with Planner, clear card ownership, and regular status updates are crucial for maintaining momentum in collaborative work.

Technical Readiness and Continuous Learning

A significant number of contributors can struggle with tasks due to limited experience with GitHub and the core tech stack. This can impact review cycles and slow down delivery.

  • Key Takeaway: Capstone projects require continuous upskilling. Proactively allocate time for learning core technologies like Git, Angular, and TypeScript, especially when entering unfamiliar domains. It is highly recommended that new members undergo early training.

Time Management and Self-Discipline

Delayed deliverables are often linked to weak time management. Without consistent planning and progress tracking, it’s difficult to meet sprint goals.

  • Key Takeaway: Adopt strategies like weekly planning, setting personal deadlines, and using reminders to stay on track and contribute reliably.

Final Advice

New team members may assume deep technical knowledge is required before contributing. However, what truly matters is consistency, communication, and a willingness to learn. Investing time early to understand the workflow, connect with mentors, and get comfortable with the tools will lead to strong contributions.

Product Development Life Cycle

We continue to use Agile methodologies to deliver updates and new features for OnTrack. Our approach includes 2-week sprints focused on completing tasks, and weekly stand-up meetings to assess progress, share updates, discuss roadblocks, and assign new tasks via Teams Planner cards.


New Tasks

  • New tasks can be assigned by the project mentor during weekly stand-up meetings or self-selected by team members.
  • Once you select a task, be sure to assign yourself to the corresponding Teams Planner card and attach your draft or completed pull request when you begin work.
  • If you have an idea for a new feature, schedule a meeting with the project mentor to discuss it. Upon approval, a new card can be created in the Planner backlog.
  • For large features, it is recommended to first create a Spike document to research the benefits and challenges, which can be committed to the documentation repository.

Definition of Done

A task is considered complete once it has been fully tested, functions as expected, is documented in a well-organized pull request, has been peer-reviewed, and is approved by your mentor. The corresponding Teams Planner card must be updated, and communication with your reviewer and mentor should continue until your contribution is merged.


Task Review

  • Each pull request requires a mandatory peer review before a mentor can review it.
  • After creating a pull request, contact a teammate to review it and tag them as the reviewer in both the Planner card and on GitHub.
  • As a reviewer, you must test the code by pulling the changes locally and reviewing the syntax, logic, and output.
  • After the peer review is complete, notify the mentor for their final review and approval before the pull request is submitted to the upstream repository.

Testing

  • For frontend changes, test the functionality in the browser and run specification tests as needed.
  • For backend changes, use browser interactions or tools like Postman to test API functionality.
  • In the pull request, include detailed instructions on how others can test your changes, and always provide before-and-after screenshots to show the outcome.

Branching Strategy

  • When starting new work, fork all three thoth-tech repositories (deploy, web, and api) to your personal GitHub profile.
  • Create a new branch from the 9.x branch of the relevant repository.
  • Follow the Branch Prefixes and Commit Message Format in the official Contributing Guide when naming branches and creating commits.

Product Architecture

OnTrack is developed as a collaborative open-source project built on top of the Doubtfire-LMS ecosystem. It comprises four key components:

  • Doubtfire-Web: The frontend application responsible for user interface and interactions, built using Angular.
  • Doubtfire-API: The backend service that handles business logic and communicates with the database, built using Ruby on Rails.
  • Database: A structured relational database (e.g., MariaDB) that stores all persistent application data.
  • Doubtfire-Deploy: Infrastructure scripts and configuration used to deploy OnTrack in a stable and maintainable environment, primarily using Docker and associated CI/CD tools.

OnTrack is maintained and enhanced by ThothTech, a student-led capstone development team at Deakin University. The project is forked from the official Doubtfire-LMS repository, which is managed by Company Directors and Mentors. The LMS environment represents the production-grade implementation, while ThothTech serves as the innovation space where new features and improvements are developed before potential upstream contribution.


Tech Stack

  • Frontend: Currently being migrated from AngularJS and CoffeeScript to Angular 17 and TypeScript. The stack also includes HTML, SCSS, and Tailwind CSS.

  • Backend: Built on Ruby on Rails with the Grape Framework. It uses MariaDB as the database engine, and Docker is used for deployment and local development.

Source Code

The following are the relevant GitHub repositories for this project:


Login Credentials

Refer to the “Working with Dev Containers” section of the Contributing Guide for authentication credentials for a locally deployed instance of OnTrack.

Project 2 - SplashKit

Overview, Goals, and Objectives

SplashKit is an open-source software development framework designed to simplify game and application development for beginners and students. It was primarily coded in C++ but has since offer supports for addition languages such as C#, Python, Pascal, and JavaScript.

SplashKit provides users with a set of pre-built libraries for graphics, sound, input handling and more, making it easier to create interactive applications. It also offers an extensive documentation and tutorials designed to help students get started quickly and maximize their use of the SDK. This wealth of resources empowers learners to progress at their own pace and fully explore the capabilities of SplashKit, making it an invaluable tool for both beginners and more advanced users.

SplashKit will be running with the following projects during T2 2025:

SplashKit Website & Tutorials

Powered by the Starlight framework, the revamped SplashKit website aims to offer an enriched and user-friendly experience for developers and learners. The SplashKit Website will also feature tutorials aimed at helping students learn and explore SplashKit’s functionality. The focus is on developing smaller, high-quality tutorials across C++, C#, and Python, rather than extensive series.

SplashKit Expansion

The Expansion team is responsible for maintaining and enhancing the SplashKit core. This includes bug fixes, feature improvements, units testing, and refining installation and usage workflows through package creation and addressing installation issues.

SplashKit Online

SplashKit Online is developing a web-based IDE that allows students to write and run code directly in their browsers. Initially launched as a prototype in 2023, the 2025 goal is to mature this tool into a comprehensive product, including further C# support and refining the embedded version for the SplashKit website.

Arcade Machines

The university has acquired four arcade machines equipped with Raspberry Pi 3B+ units, designed to showcase games developed with SplashKit. The short-term goal is to prepare these platforms for students to display their SplashKit creations. The medium-term goal is to streamline the process for first-year students to easily upload and test their games.

Aims for Trimester

Trimester Aims for SplashKit Development:

Expand Project Management Features on SplashKit Online

For SplashKit Online, a key objective is to add tools for creating, saving, loading, and managing multiple projects with version control. Additionally, version control integration will be implemented to improve project tracking, collaboration, and organization.

Improvement of Communication and Coordination between Teams

This trimester, we aim to enhance communication and coordination between teams by establishing clearer workflows, improving cross-team collaboration, and streamlining project management processes. Our focus will be on implementing structured communication channels, ensuring that development, testing, and documentation teams are aligned and working efficiently. We will continue regular stand-up meetings, feedback loops, and collaborative tools to facilitate seamless information sharing and faster issue resolution.

Develop and Refine Unit Tests for SplashKit

To ensure high software quality, we will be looking at developing an array for unit tests for SplashKit as well as looking into inconsistencies with previous unit tests made to ensure we achieve the desired outcome and maintain industry standards.

Improve Project Documentation

A key objective this trimester is to enhance project documentation by ensuring all information is up-to-date and aligned with the current workflow. This will involve regularly reviewing, updating, and organizing documentation to improve clarity, accessibility, and usability for all team members.

Expansion of the SplashKit Website Usage Examples and Beyond SplashKit

The SplashKit Website team will be attempting to go through the backlogs of Usage Examples to further enhance the user experience on the site while also creating more resources for Beyond SplashKit, offering users the opportunity to learn how to code these functions without SplashKit.

Priorities

SplashKit Website & Tutorials

Trimester Priorities:

  • Expand Onboarding Hub: Continue building the onboarding hub to include information about learning paths, guides, and tutorial templates to allow for an easier transition.
  • Further Usage Example Expansion: Create examples for every SplashKit function to improve accessibility for users.
  • API Documentation Updates: Further refine the information in the API Documentation page to improve clarity and accuracy.
  • Advanced Tutorials: Develop in-depth tutorials on AI and advanced game development topics.

Long Term Priorities:

  • Tutorials Review and Refinement: A thorough review of each tutorials to ensure that they are up-to-date and align with our current standards.
  • Data Analytics Integration: Integrate data analytics to track the most-viewed pages on the website, allowing for data-driven decisions.
  • Netlify Build Process Improvement: Update the configuration of the site deployment so that each deploys are only built when needed, decreasing build minutes.

SplashKit Expansion

Trimester Priorities:

  • SplashKit Core Functions: Create new functions for ray intersection variants.
  • Function Redundancy Analysis: Investigate the necessity of certain functions to determine their impact.
  • Unit Test Development: Design and implement a comprehensive unit test suite to validate the core functionalities of SplashKit, ensuring reliability across different modules as well as refining previous unit tests.
  • Bug Indentification and Fixes: Investigate known and emerging issues within the SplashKit framework to enhance stability and performance.
  • Improving Raspberry Pi Support: Enhance GPIO control capabilities and ensure full compatibility with the latest Raspberry Pi models, expanding SplashKit’s usability in IoT applications.

Long Term Priorities:

  • Comprehensive Testing and Bug Fixing: Develop a thorough test suite covering both procedural and object-oriented implementations of SplashKit to ensure stability and reliability across the entire library.
  • Rust Translation: Translate the SplashKit framework into Rust, expanding its usability for a wider audience and enabling developers in other ecosystems to leverage SplashKit’s functionality.
  • Enhanced Input Handling: Implement support for a wider variety of input devices, such as game controllers, VR headsets, and external sensors. This would make SplashKit even more versatile for a range of interactive applications beyond just keyboard and mouse input.

SplashKit Online

Trimester Priorities:

  • C# Support: Continue to develop C# support for the IDE.
  • C++ Support: Fix and continue to develop C++ in the IDE.
  • Autocomplete Improvement: Improve the functionality of the search autocomplete to support C++ languages result.
  • Continue to Improve Documentation: Rework the current structure of documentation to make use easier

Long Term Priorities:

  • Debugging Features: Investigate and implement debugging features regarding breakpoints and variable watch window.
  • Further Features Refinements: Continue developing SplashKit Online features to improve user experience and functionality of the platform.
  • Documenation: Continue to develop documentation of SplashKit Online

Arcade Machines

Even though the Arcade Machine is running in T2 2025, it is important to note that the success of the deliverables are depending on the number of students joining/working on the project.

Short Term Priorities

  • Continue Development of Flipper Game Packaging Tool: Review and advance the development of the Flipper tool to streamline game packaging, and deployment,
  • Review and Update Arcade Games: Review the current published games to ensure that there aren’t any issues or whether there need to be updates made.

Long Term Priorities:

  • Enhance the Arcade Menu and Testing System: Continue updates to the Emulation Station menu, focusing on Kiosk Mode (for published games) and Normal Mode (for both test and published games). Develop a new testing system that simplifies game additions and allows for more flexible testing.
  • Initial Voting System Implementation: Begin developing a voting system that adds weight to the star ranking, ensuring a clear path for further iterations.
  • Arcade Game Documentation Updates: Revise README files for arcade games to include updated control instructions, compilation processes, and resources folder structure for clarity and accessibility.
  • Formalise the Game Upload Process: Establish a streamlined and documented workflow for students to upload their games, targeting SIT102 and SIT771 students to reduce friction and ensure consistent game submissions.
  • Develop Local Test Mode: Design and implement a test mode that allows users to add a new game build for a limited testing period, automatically deleting the game afterward to maintain system integrity.
  • Full Voting System Implementation: Expand the voting system to track user feedback over time, integrating it into the arcade’s ranking system to highlight popular games.
  • Complete C# Compatibility for ARM: Resolve compatibility issues for C# in the ARM environment to fully support .NET on arcade machines, ensuring consistent performance for C++ and C# games.
  • Introduce Version Control for Games: Establish version control for compiled arcade games to manage updates and track revisions as new features are added or bugs are fixed.

Project Members

Member NamesRoles/ResponsibilitiesJunior/Senior
Oliver QuailTeam LeaderSenior
Josh FernandesTeam LeaderSenior
Connor ClancyTeam MemberJunior
Jayden Minh DuongTeam MemberJunior
Stanoja JovanovicTeam MemberJunior
Haoyu LiuTeam LeaderJunior
Runqi LiuTeam LeaderJunior
Ashen Manamalage FernadoTeam MemberJunior
Anandika RajeevTeam MemberJunior
Suylang SokTeam MemberJunior
Matthew SutrisnoTeam MemberJunior
Haoxuan YuanTeam LeaderJunior
Wei ZhangTeam LeaderJunior
Julian BurtonTeam MemberSenior
Daniel-Lee Carroll-LeonardTeam MemberSenior
Muhammad DanialTeam MemberSenior
Dhruv JanghuTeam MemberSenior
Paavan KalraTeam LeaderSenior
Anish SampsonTeam MemberSenior
Sam StajnkoTeam MemberSenior
Vishnu VengadeswaranTeam LeaderSenior
Sana NoureenTeam MemberSenior
Ayush IndapureTeam MemberJunior
Rabail AamirTeam MemberJunior

Completed Deliverables

SplashKit Expansion

  • The addition of a new Raspberry Pi function being the addition of remote ADC
  • Unit test coverage being a follow up of a project from last trimester
  • Five new unit tests for unit testing of the code
  • Making 3 different video tutorials to help people get started with RPi coding in SplashKit
  • Review of servo/motor functions
  • Fixing a bug in C# SplashKit functions relating to missing attributes in header documentation

SplashKit Website

  • 2 Completed usage examples for Geometry and Graphics functions
  • 44 new Usage Examples PRs opened for splashkit functions, in review stages.
  • 8 existing tutorials on the website page have been reviewed, code tested, and improved.
  • 1 new tutorial on creating a Flappy Bird remake game from scratch published.
  • Added language switcher and zh-cn localization option to troubleshooting and setup SplashKit pages.
  • Minor bugfixes on .config files
  • PRs opened for redesigns of the landing page and the Announcement page using Tailwind CSS, Preline, and existing libraries.
  • Added full Simplified Chinese (zh-CN) localization with an internationalization framework, language switching, and complete translated content pages for troubleshooting and guides.

SplashKit Online

  • Update README documentation to include instructions for installation and working with C#
  • Ported new file structure created last trimester to the current repo
  • Fixes that allow C++ code to be run in the browser with new file structure
  • Added a simple game C# game to demonstrate the functionaility in the browser
  • Added documentation for the addition of demo projects to SplashKit Online
  • Added automatic generation of C# bindings based of api.json from SK-Translator
  • Added documentation for C# implementation
  • Added support for and guides for custom themes inside of the editor
  • Restructure modal.js to prevent XSS vulnerability

SplashKit Arcade

  • Develop Raspberry Pi 5 test machine, develop Raspberry Pi 3B test machine
  • Three arcade game productions: tower defense game, RPG game, Tetris
  • Organize warehouse documents and provide explanations for key files.
  • Write the Pi3B development manual and write an RPG game development tutorial.

Team Members and Contributions

Note on Table Generation: The following table was generated using the Planner_Pull.ps1 PowerShell script PR#51. The script determines a contributor’s role (e.g., Main Contributor, Reviewer) using Planner’s metadata about when a user was assigned to a task. In cases where this cannot be determined reliably, the ‘Role’ cell is intentionally left blank to avoid providing inaccurate information.

NameRoleTaskAttachments
ANANDIKA RAJEEVReviewerRandom Color - Color - Usage Example CreationPR#578
ANANDIKA RAJEEVMain ContributorUpdate GPIO tutorials to support new Remote GPIO Module
ANANDIKA RAJEEVReviewerOption Part Bmp - Graphics - Usage Example CreationPR#599
ANANDIKA RAJEEVDisplay Dialog Tutorial - Utilities- Usage Example CreationPR#639
ANANDIKA RAJEEVMain ContributorDistant Point on Circle - Geometry - Usage Example CreationPR#626
ANANDIKA RAJEEVMain ContributorIdentify and Move Documentation to Thoth Tech Documentation SitePR#147
ANANDIKA RAJEEVReviewerOption Scale Bmp - Graphics - Usage Example CreationPR#604
ANISH SAMPSONReviewerPopular Tutorial Suggestions
ANISH SAMPSONMain ContributorOption Flip X - Graphics - Usage Example CreationPR#600
ANISH SAMPSONMain ContributorBitmap Bounding Circle - Graphics - Usage Example CreationPR#577
ANISH SAMPSONMain ContributorOption Rotate Bmp - Graphics - Usage Example CreationPR#603
ANISH SAMPSONMain ContributorOption Flip Y - Graphics - Usage Example CreationPR#602
ANISH SAMPSONMain ContributorOption Flip Xy - Graphics - Usage Example CreationPR#601
ANISH SAMPSONMain ContributorBitmap Width - Graphics - Usage Example CreationPR#592
ANISH SAMPSONMain ContributorGet Font Style - Graphics - Usage Example CreationPR#596
ANISH SAMPSONMain ContributorBitmap Height - Graphics - Usage Example CreationPR#588
ANISH SAMPSONMain ContributorDisplay Width - Graphics - Usage Example CreationPR#597
ANISH SAMPSONMain ContributorBitmap Name - Graphics - Usage Example CreationPR#586
ANISH SAMPSONMain ContributorScreen Height - Graphics - Usage Example CreationPR#595
ANISH SAMPSONMain ContributorSave Bitmap - Graphics - Usage Example CreationPR#610
ANISH SAMPSONMain ContributorScreen Width - Graphics - Usage Example CreationPR#594
ANISH SAMPSONMain ContributorMouse Wheel Scroll - Graphics - Usage Example CreationPR#632
ANISH SAMPSONMain ContributorSaturation Of - Graphics - Usage Example CreationPR#607
ANISH SAMPSONMain ContributorTake Screenshot - Graphics - Usage Example CreationPR#629
ANISH SAMPSONMain ContributorBitmap Bounding Rectangle - Graphics - Usage Example CreationPR#584
ANISH SAMPSONMain ContributorText Height - Graphics - Usage Example CreationPR#625
ANISH SAMPSONMain ContributorOption Scale Bmp - Graphics - Usage Example CreationPR#604
ANISH SAMPSONMain ContributorSet Font Style - Graphics - Usage Example CreationPR#593
ANISH SAMPSONMain ContributorString To Color - Graphics - Usage Example CreationPR#606
ANISH SAMPSONMain ContributorBitmap Center - Graphics - Usage Example CreationPR#585
ANISH SAMPSONMain ContributorOption Part Bmp - Graphics - Usage Example CreationPR#599
ANISH SAMPSONMain ContributorRectangle Around - Geometry - Usage Example CreationPR#640
ANISH SAMPSONMain ContributorRgba Color - Graphics - Usage Example CreationPR#605
ANISH SAMPSONGA4 Frontend Tracking Implementation
ASHEN THARUKA DESAN MANAMALAGE FERNANDORay Circle Intersect Distance - Geometry - Usage Example CreationPR#648
ASHEN THARUKA DESAN MANAMALAGE FERNANDOOrganize terminal write examples into subfolders #12PR#12
ASHEN THARUKA DESAN MANAMALAGE FERNANDOsprites guide and update scripts for new group #9PR#9
ASHEN THARUKA DESAN MANAMALAGE FERNANDORectangle to String - Geometry - Usage Example CreationPR#621
ASHEN THARUKA DESAN MANAMALAGE FERNANDOAdd usage examples for SplashKit audio functions: play_music_named and resume_musicPR#3
ASHEN THARUKA DESAN MANAMALAGE FERNANDOAdd button click detection usage examples #7PR#7
ASHEN THARUKA DESAN MANAMALAGE FERNANDOReplace All Tutorial - Utilities- Usage Example CreationPR#647
ASHEN THARUKA DESAN MANAMALAGE FERNANDOKeyDown usage example and documentation for SplashKit input functionsPR#8
ASHEN THARUKA DESAN MANAMALAGE FERNANDOGraphics Function Implementation #611PR#611
ASHEN THARUKA DESAN MANAMALAGE FERNANDOUsage Example for create_animation FunctionPR#2
ASHEN THARUKA DESAN MANAMALAGE FERNANDOcamera movement usage example and resourcesPR#4
ASHEN THARUKA DESAN MANAMALAGE FERNANDOcreate_animation_from_script_named - Animations - Usage Example CreationPR#644
ASHEN THARUKA DESAN MANAMALAGE FERNANDOAdd KeyDown usage example and documentation for SplashKit input functionsPR#645
ASHEN THARUKA DESAN MANAMALAGE FERNANDOAdd documentation for SplashKit geometry usage examplesPR#6
ASHEN THARUKA DESAN MANAMALAGE FERNANDOOrganize physics usage examples into subfoldersPR#14
ASHEN THARUKA DESAN MANAMALAGE FERNANDOUpdate GPIO “Reading Analog Signal” guide to use new ADC functionalityPR#630
ASHEN THARUKA DESAN MANAMALAGE FERNANDOReviewerModify PWM through button presses Tutorial - C# Language Update
ASHEN THARUKA DESAN MANAMALAGE FERNANDOUpdate GPIO tutorials to support new Remote GPIO Module
ASHEN THARUKA DESAN MANAMALAGE FERNANDOusage Example System implementation
AYUSH SHRINIVAS INDAPURERedesigning the Announcement page
AYUSH SHRINIVAS INDAPUREGetting Started Creating User Interfaces - Landing Page
AYUSH SHRINIVAS INDAPURETutorial Review/Update: Styling User Interface of Hero Figma
AYUSH SHRINIVAS INDAPURETrying to Improving Error Message Clarity
AYUSH SHRINIVAS INDAPUREMain ContributorRefining Landing Page and Announcement Design for Better EngagementPR#583
AYUSH SHRINIVAS INDAPUREOption Flip Xy - Graphics - Usage Example CreationPR#601
AYUSH SHRINIVAS INDAPUREusage examples
AYUSH SHRINIVAS INDAPUREReviewerFeatures pagePR#35
AYUSH SHRINIVAS INDAPUREAdded a Assistance Center
AYUSH SHRINIVAS INDAPUREReviewerAdd “remote” ADC functionsPR#130
CONNOR JACOB CLANCYMain ContributorInvestigate issues with running tests in MSYS2PR#132
CONNOR JACOB CLANCYReviewerAdd Missing HeaderDocs for Miscellaneous FunctionsPR#117
CONNOR JACOB CLANCYMain ContributorInvestigate font_load_size and font_has_size use/needPR#136
CONNOR JACOB CLANCYMain ContributorUnit tests - json_read_numberPR#122
CONNOR JACOB CLANCYReviewerFix CMake presets not working with versions older than 3.28PR#135
CONNOR JACOB CLANCYReviewerFixed a typo in page generation scriptPR#631
DANIEL CARROLL-LEONARDDraw Line on Window Point-To-Point #659PR#585
DANIEL CARROLL-LEONARDBitmap Bounding Circle - Graphics - Usage Example CreationPR#577
DANIEL CARROLL-LEONARDMain ContributorFix CMake presets not working with versions older than 3.28PR#135
DANIEL CARROLL-LEONARDMain ContributorUnit tests - resource bundles & bug fixPR#131
DANIEL CARROLL-LEONARDUnit testing - Identify tests that can be moved to skunit_tests from sktesthttps://github.com/thoth-tech/splashkit-core/issues/133#issue-3420481150
DANIEL CARROLL-LEONARDUnit tests - hsb_color improvementsPR#120; PR#128
DANIEL CARROLL-LEONARDUnit tests - hsb_colorPR#120/files/d7e6a3ffc8453720cff2ceebb12346b0d54cf277; PR#120
DANIEL CARROLL-LEONARDUpdate unit testing guide
DANIEL CARROLL-LEONARDMain ContributorUnit tests - CameraPR#123
DANIEL CARROLL-LEONARDsplashkit-core testing tutorial videos
DANIEL CARROLL-LEONARDReviewerScreen Width - Graphics - Usage Example CreationPR#594
DANIEL CARROLL-LEONARDInvestigate functions with repeated suffixesPR#121; PR#121
DANIEL CARROLL-LEONARDUnit tests - bitmap_namePR#125
DANIEL CARROLL-LEONARDReviewerUnit tests - json_read_numberPR#122
DANIEL CARROLL-LEONARDReview new motor and servo GPIO functionsPR#124
DANIEL CARROLL-LEONARDMain ContributorAdd code coveragePR#146; PR#116
DANIEL CARROLL-LEONARDReviewerScreen Height - Graphics - Usage Example CreationPR#595
DANIEL CARROLL-LEONARDBitmap Center - Graphics - Usage Example CreationPR#585
DANIEL CARROLL-LEONARDReviewerBitmap Bounding Rectangle - Graphics - Usage Example CreationPR#584
DHRUV JANGHUReviewer[SplashKit Website] Games Showcase pagePR#569
DHRUV JANGHUReviewerUpdate/Continue Getting Started with Sprites TutorialPR#563
DHRUV JANGHUReviewerDraw circle - fill toggle #636
DHRUV JANGHUReviewerCircle Triangle Intersect - Geometry - Usage Example CreationPR#638
DHRUV JANGHUReviewerUsage Example: Option Scale Bitmap #658PR#584
DHRUV JANGHUMain ContributorColor Slider - Interface - Usage Example CreationPR#641
DHRUV JANGHUReviewerBitmap Name - Graphics - Usage Example CreationPR#586
DHRUV JANGHUReviewerBitmap Height - Graphics - Usage Example CreationPR#588
DHRUV JANGHUUnit tests - json_read_numberPR#122
DHRUV JANGHULeast Common Multiple Tutorial - Utilities- Usage Example CreationPR#660
DHRUV JANGHUSplit [Text] Tutorial - Utilities- Usage Example Creation
DHRUV JANGHUGreatest Common Divisor Tutorial - Utilities- Usage Example Creation
DHRUV JANGHUFile As Tutorial Tutorial - Utilities- Usage Example Creation
DHRUV JANGHUReviewerSave Bitmap - Graphics - Usage Example CreationPR#610
DHRUV JANGHUReviewerOption to world #
DHRUV JANGHUReviewerUsage example is integer #657
HAOXUAN YUANMain ContributorTutorial Review/Update: AnimationPR#598; PR#576
HAOXUAN YUANReviewerSet Font Style - Graphics - Usage Example CreationPR#593
HAOXUAN YUANMain ContributorPopular Tutorial Suggestions
HAOXUAN YUANMain ContributorAdd Language Switcher and Chinese Localization to SplashKit WebsitePR#582
HAOYU LIUTutorial Review/Update: Routing With ServersPR#622
HAOYU LIUTower defended games development
HAOYU LIULong-term optimization of the document
HAOYU LIUAdd Language Switcher and Chinese Localization to SplashKit WebsitePR#582
HAOYU LIUOptimize the instruction document
HAOYU LIUMain ContributorConsolidate Arcade Machine documentation to .md files in repoPR#83
HAOYU LIUReviewerTutorial Review/Update: How to make a RESTful API call using SplashKitPR#624
HAOYU LIUArcade machines are running very old builds
JAYDEN DUONGBug testing C++
JAYDEN DUONGAdd Project Export
JOSH FERNANDESUnit tests - json_set_numberPR#129
JOSH FERNANDESReviewerUnit tests - CameraPR#123
JOSH FERNANDESUnit tests - json_read_numberPR#122
JOSH FERNANDESReviewerInvestigate font_load_size and font_has_size use/needPR#136
JOSH FERNANDESRevise Pigpio to WiringPi Code From Last TrimesterPR#212
JOSH FERNANDESReviewerUnit tests - resource bundles & bug fixPR#131
JOSH FERNANDESReviewerRevise unit tests so that they can be run independentlyPR#594
JOSH FERNANDESReviewerInvestigate issues with running tests in MSYS2PR#132
JOSH FERNANDESReviewerRefactor Bitmap Unit TestsPR#134
JOSH FERNANDESMain ContributorAdd “remote” ADC functionsPR#130
JULIAN BURTONReviewerBitmap Width - Graphics - Usage Example CreationPR#592
JULIAN BURTONReviewerDisplay Width - Graphics - Usage Example CreationPR#597
JULIAN BURTONMain ContributorCurrent Window Width - Windows - Usage Example CreationPR#635
JULIAN BURTONReviewerString To Color - Graphics - Usage Example CreationPR#606
JULIAN BURTONMain ContributorClose Window - Windows - Usage Example CreationPR#573
JULIAN BURTONReviewerRectangle Around - Geometry - Usage Example CreationPR#640
JULIAN BURTONMain ContributorClear Window - Windows - Usage Example CreationPR#572
JULIAN BURTONMain ContributorCurrent Window Height - Windows - Usage Example CreationPR#634
JULIAN BURTONMain ContributorMove Window To - Windows - Usage Example CreationPR#633
MATTHEW JONATHAN SUTRISNOMain ContributorUnit tests - hsb_colorPR#120/files/d7e6a3ffc8453720cff2ceebb12346b0d54cf277; PR#120
MATTHEW JONATHAN SUTRISNOReviewerUnit tests - bitmap_namePR#125
MATTHEW JONATHAN SUTRISNOMain ContributorUnit tests - json_set_numberPR#129
MATTHEW JONATHAN SUTRISNOMain ContributorUnit tests - hsb_color improvementsPR#120; PR#128
MATTHEW JONATHAN SUTRISNOUnit tests - CameraPR#123
MUHAMMAD DANIALReviewerRgba Color - Graphics - Usage Example CreationPR#605
MUHAMMAD DANIALBase64 Encode - Utilities- Usage Example Creation
MUHAMMAD DANIALRandom Color - Color - Usage Example CreationPR#578
MUHAMMAD DANIALBase64 Decode - Utilities - Usage Example Creation
MUHAMMAD DANIALReviewerTake Screenshot - Graphics - Usage Example CreationPR#629
OLIVER ALEXANDER QUAILReviewerAdd demo C# gamePR#129
OLIVER ALEXANDER QUAILReviewerDocument Theme creation processPR#133
OLIVER ALEXANDER QUAILReviewerUpdate/Continue Shape Modelling Tutorial (previously started)PR#580
OLIVER ALEXANDER QUAILAdd Missing HeaderDocs for Miscellaneous FunctionsPR#117
OLIVER ALEXANDER QUAILMain ContributorFix CPP in new file structurePR#128
OLIVER ALEXANDER QUAILReviewerImprove C# documentationPR#134
OLIVER ALEXANDER QUAILReviewerUpdate/Continue Dynamic Camera Control TutorialPR#567
OLIVER ALEXANDER QUAILReviewerAdd themes menuPR#132
OLIVER ALEXANDER QUAILReviewerOption Rotate Bmp - Graphics - Usage Example CreationPR#603
OLIVER ALEXANDER QUAILReviewerInvestigate functions with repeated suffixesPR#121; PR#121
OLIVER ALEXANDER QUAILReviewerMouse Wheel Scroll - Graphics - Usage Example CreationPR#632
OLIVER ALEXANDER QUAILUpdate README.md to add C# setup instructionsPR#127
OLIVER ALEXANDER QUAILMain ContributorAdd guide for adding demos to SK OnlinePR#131
OLIVER ALEXANDER QUAILReviewerDraw Line on Window Point-To-Point #659PR#585
OLIVER ALEXANDER QUAILTutorial Review/Update: Routing With ServersPR#622
OLIVER ALEXANDER QUAILReviewerConsolidate Arcade Machine documentation to .md files in repoPR#83
OLIVER ALEXANDER QUAILReviewerAdd Missing HeaderDocs for Bitmap FunctionsPR#118
OLIVER ALEXANDER QUAILUpdate documentation to reflect new file structure
OLIVER ALEXANDER QUAILAutomate binding generation for C#PR#135
OLIVER ALEXANDER QUAILReviewerBitmap Center - Graphics - Usage Example CreationPR#585
PAAVAN KALRAClose Window - Windows - Usage Example CreationPR#573
PAAVAN KALRAMain ContributorLine Intersects Rectangle - Geometery - Usage Example CreationPR#579
PAAVAN KALRAMain ContributorCircle Triangle Intersect - Geometry - Usage Example CreationPR#638
PAAVAN KALRAReviewerDistant Point on Circle - Geometry - Usage Example CreationPR#626
PAAVAN KALRAMain ContributorClosest Point On Line - Geometry - Usage Example CreationPR#565
PAAVAN KALRAReviewerUsage Example Creation - Set clip drag to select #581
PAAVAN KALRAReviewerTutorial Review/Update: AnimationPR#598; PR#576
PAAVAN KALRAReviewerUsage Example Creation - Push Clip
PAAVAN KALRAReviewerText Height - Graphics - Usage Example CreationPR#625
PAAVAN KALRAReviewerOption Flip Xy - Graphics - Usage Example CreationPR#601
PAAVAN KALRAUpdate/Continue Dynamic Camera Control TutorialPR#567
PAAVAN KALRAReviewerMove Window To - Windows - Usage Example CreationPR#633
PAAVAN KALRAReviewerClear Window - Windows - Usage Example CreationPR#572
PAAVAN KALRAReviewerCurrent Window Height - Windows - Usage Example CreationPR#634
PAAVAN KALRAReviewerCurrent Window Width - Windows - Usage Example CreationPR#635
PAAVAN KALRARectangle Around - Geometry - Usage Example CreationPR#640
PAAVAN KALRAReviewerColor Slider - Interface - Usage Example CreationPR#641
PAAVAN KALRAMain ContributorRandom Color - Color - Usage Example CreationPR#578
PAAVAN KALRATutorial: Beginner Game Tutorial - Flappy BirdPR#642
PAAVAN KALRAReviewerOption Flip X - Graphics - Usage Example CreationPR#600
PAAVAN KALRAString To Color - Graphics - Usage Example CreationPR#606
PAAVAN KALRAUpdate/Continue Shape Modelling Tutorial (previously started)PR#580
PAAVAN KALRAReviewerOption Flip Y - Graphics - Usage Example CreationPR#602
RABAIL AAMIRReviewerIdentify and Move Documentation to Thoth Tech Documentation SitePR#147
RABAIL AAMIRMain ContributorAdd demo C# gamePR#129
RABAIL AAMIRReviewerUpdate GPIO tutorials to support new Remote GPIO Module
RABAIL AAMIRMain ContributorDocument Theme creation processPR#133
RABAIL AAMIRMain ContributorImprove C# documentationPR#134
RABAIL AAMIRReviewerAdd guide for adding demos to SK OnlinePR#131
RABAIL AAMIRRefactor modal.jsPR#138
RABAIL AAMIRMain ContributorAdd themes menuPR#132
RABAIL AAMIRMain ContributorFeatures pagePR#35
RUNQI LIUMain ContributorTutorial Review/Update: How to make a RESTful API call using SplashKitPR#624
RUNQI LIUMain ContributorTutorial Review/Update: Getting Started With ServersPR#627
RUNQI LIU2D RPG games developmentPR#246
RUNQI LIUAdd Language Switcher and Chinese Localization to SplashKit WebsitePR#582
RUNQI LIUReviewerArcade machines are running very old builds
RUNQI LIUTutorial Review/Update: AnimationPR#598; PR#576
RUNQI LIUMain ContributorTutorial Review/Update: Routing With ServersPR#622
RUNQI LIUConsolidate Arcade Machine documentation to .md files in repoPR#83
SAM STAJNKOReviewerUnit tests - hsb_color improvementsPR#120; PR#128
SAM STAJNKOMain ContributorInvestigate functions with repeated suffixesPR#121; PR#121
SAM STAJNKOReviewerUnit tests - hsb_colorPR#120/files/d7e6a3ffc8453720cff2ceebb12346b0d54cf277; PR#120
SAM STAJNKOReviewerFix CPP in new file structurePR#128
SAM STAJNKOMain ContributorUnit tests - bitmap_namePR#125
SAM STAJNKOReviewerUnit tests - json_set_numberPR#129
SAM STAJNKOReviewerAdd code coveragePR#146; PR#116
SAM STAJNKOMain ContributorRefactor Bitmap Unit TestsPR#134
SAM STAJNKOMain ContributorAdd Missing HeaderDocs for Bitmap FunctionsPR#118
SAM STAJNKOMain ContributorAdd Missing HeaderDocs for Miscellaneous FunctionsPR#117
SANA NOUREENClosest Point On Line - Geometry - Usage Example CreationPR#565
SANA NOUREENMain ContributorDraw Line on Window Point-To-Point #659PR#585
SANA NOUREENClean up existing documentation
SANA NOUREENMain ContributorUsage Example Creation - Push Clip
SANA NOUREENMain ContributorModify PWM through button presses Tutorial - C# Language Update
SANA NOUREENReviewerTutorial: Beginner Game Tutorial - Flappy BirdPR#642
SANA NOUREENReviewerGet Font Style - Graphics - Usage Example CreationPR#596
SANA NOUREENMain ContributorUsage Example: Option Scale Bitmap #658PR#584
SANA NOUREENMain ContributorDraw circle - fill toggle #636
SANA NOUREENMain ContributorUsage Example Creation - Set clip drag to select #581
SANA NOUREENMain ContributorUsage example is integer #657
SANA NOUREENMain ContributorOption to world #
SANA NOUREENReviewerLine Intersects Rectangle - Geometery - Usage Example CreationPR#579
SANA NOUREENIs Prime Number Tutorial - Utilities- Usage Example Creation
SANA NOUREENFree Bitmap #656PR#585
STAN JOVANOVIC[TEMPLATE] Tutorial Review/Update: [Tutorial Name]
SUYLANG SOKTutorial Review/Update: How to make a RESTful API call using SplashKitPR#624
SUYLANG SOKFixed a typo in page generation scriptPR#631
VISHNU VENGADESWARANMouse Wheel Scroll - Graphics - Usage Example CreationPR#632
VISHNU VENGADESWARANReviewerSaturation Of - Graphics - Usage Example CreationPR#607
VISHNU VENGADESWARANMain ContributorFixed a typo in page generation scriptPR#631
VISHNU VENGADESWARANMain ContributorTutorial: Beginner Game Tutorial - Flappy BirdPR#642
VISHNU VENGADESWARANGet Font Style - Graphics - Usage Example CreationPR#596
VISHNU VENGADESWARANLine Intersects Rectangle - Geometery - Usage Example CreationPR#579
VISHNU VENGADESWARANTutorial Review/Update: How to make a RESTful API call using SplashKitPR#624
VISHNU VENGADESWARANOption Rotate Bmp - Graphics - Usage Example CreationPR#603
VISHNU VENGADESWARANReviewerClose Window - Windows - Usage Example CreationPR#573
VISHNU VENGADESWARANReviewerRefining Landing Page and Announcement Design for Better EngagementPR#583
VISHNU VENGADESWARANMain ContributorUpdate/Continue Dynamic Camera Control TutorialPR#567
VISHNU VENGADESWARANPopular Tutorial Suggestions
VISHNU VENGADESWARANMain ContributorUpdate/Continue Getting Started with Sprites TutorialPR#563
VISHNU VENGADESWARANMain Contributor[SplashKit Website] Games Showcase pagePR#569
VISHNU VENGADESWARANReviewerClosest Point On Line - Geometry - Usage Example CreationPR#565
VISHNU VENGADESWARANReviewerAdd Language Switcher and Chinese Localization to SplashKit WebsitePR#582
VISHNU VENGADESWARANText Height - Graphics - Usage Example CreationPR#625
VISHNU VENGADESWARANMain ContributorUpdate/Continue Shape Modelling Tutorial (previously started)PR#580
VISHNU VENGADESWARANReviewerBitmap Bounding Circle - Graphics - Usage Example CreationPR#577
WEI ZHANGReviewerTutorial Review/Update: Getting Started With ServersPR#627
WEI ZHANGConsolidate Arcade Machine documentation to .md files in repoPR#83
WEI ZHANGMain ContributorArcade machines are running very old builds
WEI ZHANGReviewerTutorial Review/Update: Routing With ServersPR#622
WEI ZHANGTetriz game developmentPR#243
WEI ZHANGTetriz game developmentPR#243
WEI ZHANGAdd Language Switcher and Chinese Localization to SplashKit WebsitePR#582

Roadmap

SplashKit Expansion

  • Unit Testing Expansion: Add more unit tests for functions that do not have them yet
  • Add SplashKit to Nuget Packages: Add the required SplashKit libraries to the existing NuGet package with a proper icon, description, and documentation of the packaging process.
  • Port SplashKit to Rust: Port the SplashKit framework to Rust, expanding its accessibility and allowing developers using Rust to take advantage of SplashKit’s features and capabilities.
  • Investigate Pascal Memory Issues: Investigate and fix the issues with Pascal programs memory leaks after compilation with FPC.
  • Invetsigate Unit Testing with Graphics Library: Investigate different strategies to allow for unit testing specifically with graphics functionality
  • Update Raspberry Pi Code: Revise and fix issues with Raspberry Pi code ensuring things are fixed and the RPi suite is expanded
  • Continue Fixing Suffix Issues: The fix to the repeated suffixes issue found in some of the SplashKit functions

SplashKit Website

  • UI Enhancements: Continue improving the user interface based on redesign PRs, leveraging Tailwind CSS, Preline, and existing component libraries for consistency and maintainability.
  • Usage Examples: Expand coverage of usage examples for the most commonly used SplashKit functions.
  • Tutorial Development: Create additional tutorials for the SplashKit website and improve the clarity and structure of existing tutorials to better support new learners.
  • Netlify Build Process Improvement: Update the deployment configuration so that builds are only triggered when necessary, reducing unnecessary build minutes and improving deployment efficiency.

SplashKit Online

  • Pipeline Upgrades: One of the initivates started this trimester was the reworking of the file structure to support C# and the new file strcure. Work should be continued to optimise this and add support for a code checker.
  • Code Checker: One of the initivates discussed with Hard Hat was a code checker to check code prior to deployment of games to SK online or to the arcade machine. This should be pursued so that students in future can more easily deploy games to the site.
  • Improve C++ Support: C++ has seen improvements this trimester, though more work needs to be done to find minor issues that are present such as missing header guards ect. Also consider updating the version of SplashKit used.
  • Imporove C# Support: While C# support has improved this trimester, more work needs to be done to implement classes such as Window that will allow for rendering of graphics.
  • Game Upload: Work should start on adding a easier way for students to add games to the project without having to rebuild the site.

SplashKit Arcade

  • Refine SK Arcade Experience: Focus on the maintenance of the arcade machines, ensuring that the games on them increase, function correctly, and are free of bugs.

Open Issues