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
- T1 2025 Setup demo by Aditya Pratap Singh Tomar
- T3 2023 Setup demo by Satika Jayawardena
- T2 2023 Setup demo by Daniel Maddern
- T1 2024 Common setup error solutions by Satika Jayawardena
Contributing Guides
-
T2 2025 Getting into OnTrack by Ibitope Fatoki
-
T2 2025 Guide on getting 9.x and 8.0.x branches to build by Ibitope Fatoki
-
T2 Introduction to Git (22/07/2025 5:00PM) by Samindi Situmya Ratnayake Mudiyanselage
-
T2 OnTrack: CourseFlow Onboard by Duy Nguyen
-
T2 Tutor Times Feature - Onboarding Session by Martin John Dolores
-
T2 Frontend Migrations Onboarding Session by Jason Vellucci
-
T2 Security Team Onboarding by Ibitope Fatoki
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 Names | Roles/Responsibilities | Junior/Senior |
|---|---|---|
| Ibitope Fatoki | Team Leader | Senior |
| Ekamjot Singh | Team Member | Senior |
| Alex Brown | Team Member | Senior |
| Jiaying Chen | Team Member | Senior |
| Martin Dolores | Team Leader | Senior |
| Minh Lam | Team Member | Senior |
| Duy Nguyen | Team Member | Senior |
| Huu Nguyen | Team Member | Senior |
| Mostafa Nouri | Team Leader | Senior |
| Samindi Ratnayake | Team Leader | Senior |
| Lachlan Robinson | Team Member | Senior |
| Jason Vellucci | Team Member | Senior |
| Sahiru Withanage | Team Member | Senior |
| Joshua Bevan | Team Member | Senior |
| Pasindu Fernando | Team Member | Senior |
| Disuru Rathnayake | Team Member | Senior |
| Hasindu Welarathne | Team Member | Senior |
| Rachith Chandrathilake | Team Member | Junior |
| Joshua Talev | Team Leader | Junior |
| Rashi Agrawal | Team Member | Junior |
| Wael Alahmadi | Team Leader | Junior |
| Millicent Amolo | Team Member | Junior |
| Gaurav Myana | Team Member | Junior |
| Samuel Nunes Dos Santos | Team Member | Junior |
| Joseph Saji | Team Leader | Junior |
| Syeda Tabassum | Team Member | Junior |
| Parth Vaghela | Team Member | Junior |
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.
| Name | Role | Task | Attachments |
|---|---|---|---|
| ALEX BROWN | Reviewer | Cleanup feedback.coffee | PR#399 |
| ALEX BROWN | Guide to build Ontrack on Linux based VMs | PR#60 | |
| ALEX BROWN | Reviewer | Security Issue: Publicly Accessible API Documentation via Swagger | PR#73; PR#48 |
| ALEX BROWN | Migrate groups.coffee | PR#382 | |
| ALEX BROWN | Reviewer | Create Script to Pull tasks from Planner | PR#51 |
| ALEX BROWN | Reviewer | Add progress tracking | PR#413 |
| ALEX BROWN | Reviewer | Populate the content of the unit component tab with drop down menus to filter the units that get displayed. | PR#411 |
| ALEX BROWN | Migrate unit-dates-selector.coffee | PR#417 | |
| ALEX BROWN | Frontend Migrations: Update frontend migration progress list | PR#397; PR#982 | |
| ALEX BROWN | Main Contributor | Migrate runtime.coffee | PR#398 |
| ALEX BROWN | Enhance the search functionalities | PR#409 | |
| ALEX BROWN | Migrate outcome-service.coffee | PR#390 | |
| ALEX BROWN | Reviewer | Validate File name | PR#53 |
| ALEX BROWN | Migrate Portfolio Welcome Step | PR#384; PR#619 | |
| ALEX BROWN | Main Contributor | Fix change_remotes.sh | PR#32 |
| ALEX BROWN | Enable OnTrack accounts with full password management in the database | PR#78; PR#56; PR#57; PR#419 | |
| CHELAKA YASODHANA PATHBERIYAGE | Reviewer | Migrate CSV result model + improvement | PR#420 |
| CHELAKA YASODHANA PATHBERIYAGE | Reviewer | Implement ngx graphs/charts in UI | PR#1003; PR#402 |
| CHELAKA YASODHANA PATHBERIYAGE | Reviewer | Migrate Group-member-list | PR#393 |
| CHELAKA YASODHANA PATHBERIYAGE | Fix Task Viewer component routing | PR#404 | |
| CHELAKA YASODHANA PATHBERIYAGE | Add observer property to unit-level roles | PR#75; PR#54 | |
| CHELAKA YASODHANA PATHBERIYAGE | Migrate students-list.coffee | PR#597; PR#389 | |
| CHELAKA YASODHANA PATHBERIYAGE | Create Enrolment Prompt Card | PR#415 | |
| CHELAKA YASODHANA PATHBERIYAGE | Main Contributor | Migrate portfolio-review-step.coffee | PR#401 |
| CHELAKA YASODHANA PATHBERIYAGE | Student Self-Enrolment - Tutorial Enrolment | PR#415; PR#79 | |
| DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGE | Main Contributor | Student Self-Enrolment - Tutorial Enrolment | PR#415; PR#79 |
| DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGE | Migrate Group-member-list | PR#393 | |
| DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGE | Migrate outcome-service.coffee | PR#390 | |
| DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGE | Remove task-completion-box-plot | PR#410 | |
| DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGE | Migrate achievement-custom-bar-chart.coffee | PR#412 | |
| DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGE | Migration: task-ilo-alignment-rater | PR#603; PR#338 | |
| DISURU PASANJITH RATHNAYAKE RATHNAYAKE THUDUGALA BANDULAGE | Main Contributor | Migrate recorder-service.coffee | PR#391; PR#1009 |
| DUY NGUYEN | Main Contributor | Add option to overload units to a teaching period | PR#407 |
| DUY NGUYEN | Create a component to display credit points achieved. | PR#407 | |
| DUY NGUYEN | Migrate runtime.coffee | PR#398 | |
| DUY NGUYEN | Main Contributor | Enrich the unit card itself to show more info | PR#407 |
| DUY NGUYEN | Main Contributor | Add warning to the unit card when a requisite is not met | PR#418 |
| DUY NGUYEN | Main Contributor | Update unit model to host more details | PR#71 |
| DUY NGUYEN | Reviewer | Migrate groups.coffee | PR#382 |
| DUY NGUYEN | Enhance the search functionalities | PR#409 | |
| DUY NGUYEN | Main Contributor | Create test data for CourseFlow ( Course map, Course map units, Units) | PR#70 |
| DUY NGUYEN | Reviewer | Populate the overlay component for the detailed unit with content of the unit - this needs to include unit requirements. | PR#215 |
| DUY NGUYEN | Main Contributor | Refactor CourseFlow code base for better components maintainence | PR#385 |
| EDWARD NGUYEN | Reviewer | Update unit model to host more details | PR#71 |
| EDWARD NGUYEN | Enrich the unit card itself to show more info | PR#407 | |
| EDWARD NGUYEN | Add option to overload units to a teaching period | PR#407 | |
| EDWARD NGUYEN | Main Contributor | Create a component to display credit points achieved. | PR#407 |
| EDWARD NGUYEN | Reviewer | Add warning to the unit card when a requisite is not met | PR#418 |
| EDWARD NGUYEN | Main Contributor | Add ability to mark unit as complete (phase 4) | PR#386 PR#396 |
| EDWARD NGUYEN | Remove alignment-bar-chart.coffee | PR#395 | |
| EDWARD NGUYEN | Create test data for CourseFlow ( Course map, Course map units, Units) | PR#70 | |
| EDWARD NGUYEN | Main Contributor | Populate the overlay component for the detailed unit with content of the unit - this needs to include unit requirements. | PR#215 |
| EDWARD NGUYEN | Main Contributor | Add summary of skills component | PR#396 |
| EKAM BHULLAR | Reviewer | Add summary of skills component | PR#396 |
| EKAM BHULLAR | Reviewer | Refactor CourseFlow code base for better components maintainence | PR#385 |
| EKAM BHULLAR | Migrate portfolio-review-step.coffee | PR#401 | |
| EKAM BHULLAR | Reviewer | Enable OnTrack accounts with full password management in the database | PR#78; PR#56; PR#57; PR#419 |
| EKAM BHULLAR | Main Contributor | Implement ngx graphs/charts in UI | PR#1003; PR#402 |
| EKAM BHULLAR | Reviewer | Develop Tutor Time Dashboard | PR#416; PR#58 |
| GAURAV MANOHAR MYANA | Reviewer | ActiveRecord Model Updates | PR#2 |
| GAURAV MANOHAR MYANA | Reviewer | OnTrack Style Guide v0.1 | PR#62 |
| GAURAV MANOHAR MYANA | API Entity Updates | PR#3 | |
| GAURAV MANOHAR MYANA | Database Schema Setup | PR#1 | |
| HASINDU DESHITHA WELARATHNE | Main Contributor | Migrate students-list.coffee | PR#597; PR#389 |
| HASINDU DESHITHA WELARATHNE | Reviewer | Migrate portfolio-review-step.coffee | PR#401 |
| HASINDU DESHITHA WELARATHNE | Migrate recorder-service.coffee | PR#391; PR#1009 | |
| HASINDU DESHITHA WELARATHNE | Main Contributor | Migrate CSV result model + improvement | PR#420 |
| HASINDU DESHITHA WELARATHNE | Reviewer | Fix Task Viewer component routing | PR#404 |
| IBI FATOKI | Reviewer | Remove alignment-bar-chart.coffee | PR#395 |
| IBI FATOKI | Reviewer | 8.x and 9.x build documentation | PR#44 |
| IBI FATOKI | Reviewer | Migrate outcome-service.coffee | PR#390 |
| IBI FATOKI | Reviewer | Astro - Resolve Main Branch Errors | PR#55 |
| IBI FATOKI | Add observer property to unit-level roles | PR#75; PR#54 | |
| IBI FATOKI | ActiveRecord Model Updates | PR#2 | |
| IBI FATOKI | Validate File name | PR#53 | |
| IBI FATOKI | Reviewer | Web Security Audit: Cryptographic Failures | PR#45 |
| IBI FATOKI | Enable OnTrack accounts with full password management in the database | PR#78; PR#56; PR#57; PR#419 | |
| IBI FATOKI | API Entity Updates | PR#3 | |
| IBI FATOKI | Metadata injection script for Markdown files | PR#626 | |
| IBI FATOKI | Student Self-Enrolment - Tutorial Enrolment | PR#415; PR#79 | |
| IBI FATOKI | Main Contributor | Security Issue: Publicly Accessible API Documentation via Swagger | PR#73; PR#48 |
| IBI FATOKI | Remove task-completion-box-plot | PR#410 | |
| IBI FATOKI | Main Contributor | Guide to build Ontrack on Linux based VMs | PR#60 |
| IBI FATOKI | Reviewer | Fix IDOR Vulnerability - User Data Access | PR#76 |
| IBI FATOKI | Reviewer | Migrate achievement-custom-bar-chart.coffee | PR#412 |
| IBI FATOKI | Populate the overlay component for the detailed unit with content of the unit - this needs to include unit requirements. | PR#215 | |
| IBI FATOKI | Reviewer | Standardize API Authentication Requirements | PR#72 |
| IBI FATOKI | Main Contributor | Create Script to Pull tasks from Planner | PR#51 |
| IRIS CHEN | Reviewer | Guide to build Ontrack on Linux based VMs | PR#60 |
| IRIS CHEN | Metadata injection script for Markdown files | PR#626 | |
| IRIS CHEN | Frontend Migrations: Update frontend migration progress list | PR#397; PR#982 | |
| IRIS CHEN | Enable OnTrack accounts with full password management in the database | PR#78; PR#56; PR#57; PR#419 | |
| IRIS CHEN | Security Issue: Publicly Accessible API Documentation via Swagger | PR#73; PR#48 | |
| IRIS CHEN | Create Script to Pull tasks from Planner | PR#51 | |
| IRIS CHEN | Main Contributor | Fix IDOR Vulnerability - User Data Access | PR#76 |
| IRIS CHEN | Main Contributor | Standardize API Authentication Requirements | PR#72 |
| IRIS CHEN | Validate File name | PR#53 | |
| IRIS CHEN | Main Contributor | Web Security Audit: Cryptographic Failures | PR#45 |
| IRIS CHEN | Fix Insecure Direct Object References (IDOR) Vulnerability | PR#76 | |
| JASON MARK VELLUCCI | Main Contributor | Migration: group set selector | PR#387; PR#981; PR#620 |
| JASON MARK VELLUCCI | Google lighthouse performance checks | PR#629; PR#46 | |
| JASON MARK VELLUCCI | Migrate runtime.coffee | PR#398 | |
| JASON MARK VELLUCCI | Metadata injection script for Markdown files | PR#626 | |
| JASON MARK VELLUCCI | Remove task-completion-box-plot | PR#410 | |
| JASON MARK VELLUCCI | Reviewer | Migrate students-list.coffee | PR#597; PR#389 |
| JASON MARK VELLUCCI | Main Contributor | Frontend Migrations: Update frontend migration progress list | PR#397; PR#982 |
| JASON MARK VELLUCCI | Migrate Group-member-list | PR#393 | |
| JASON MARK VELLUCCI | 8.x and 9.x build documentation | PR#44 | |
| JASON MARK VELLUCCI | Fix Task Viewer component routing | PR#404 | |
| JASON MARK VELLUCCI | Create Documentation on how to build Doubtfire-Astro | PR#625 | |
| JASON MARK VELLUCCI | Refactor CourseFlow code base for better components maintainence | PR#385 | |
| JASON MARK VELLUCCI | Migrate achievement-custom-bar-chart.coffee | PR#412 | |
| JASON MARK VELLUCCI | Reviewer | Clean up src/app/admin/modals/create-unit-modal leftover files | PR#388; PR#350 |
| JASON MARK VELLUCCI | Update unit model to host more details | PR#71 | |
| JASON MARK VELLUCCI | Frontend: Add routing for Staff Grant Extension feature | PR#405 | |
| JOSEPH KALAYATHANKAL SAJI | Add observer property to unit-level roles | PR#75; PR#54 | |
| JOSEPH KALAYATHANKAL SAJI | Reviewer | Backend - Create session_activities table | PR#5 |
| JOSEPH KALAYATHANKAL SAJI | Main Contributor | Database Schema Setup | PR#1 |
| JOSEPH KALAYATHANKAL SAJI | Main Contributor | Backend - Create marking_sessions table | PR#4 |
| JOSEPH KALAYATHANKAL SAJI | Main Contributor | OnTrack Style Guide v0.1 | PR#62 |
| JOSEPH KALAYATHANKAL SAJI | Main Contributor | Backend - Implement API Endpoints for SessionActivies and MarkingSession for Analytics | PR#8 |
| JOSEPH KALAYATHANKAL SAJI | API Controller Implementation | PR#4 | |
| JOSEPH KALAYATHANKAL SAJI | Reviewer | API Entity Updates | PR#3 |
| JOSEPH KALAYATHANKAL SAJI | ActiveRecord Model Updates | PR#2 | |
| JOSH BEVAN | Reviewer | Migration: group set selector | PR#387; PR#981; PR#620 |
| JOSH BEVAN | Main Contributor | Enhance the search functionalities | PR#409 |
| JOSH BEVAN | Reviewer | Frontend Migrations: Update frontend migration progress list | PR#397; PR#982 |
| JOSH TALEV | Main Contributor | Migrate confirmation-modal.coffee | PR#381 |
| JOSH TALEV | Main Contributor | Backend - Create session_activities table | PR#5 |
| JOSH TALEV | Reviewer | Backend - Implement API Endpoints for SessionActivies and MarkingSession for Analytics | PR#8 |
| JOSH TALEV | Main Contributor | Migrate Portfolio Welcome Step | PR#384; PR#619 |
| JOSH TALEV | Migration: group set selector | PR#387; PR#981; PR#620 | |
| JOSH TALEV | Main Contributor | Clean up src/app/admin/modals/create-unit-modal leftover files | PR#388; PR#350 |
| LACHLAN MACKIE ROBINSON | Migrate utilService.coffee | PR#383 | |
| LACHLAN MACKIE ROBINSON | Migration: group set selector | PR#387; PR#981; PR#620 | |
| LACHLAN MACKIE ROBINSON | Reviewer | Add observer property to unit-level roles | PR#75; PR#54 |
| LACHLAN MACKIE ROBINSON | Main Contributor | Remove alignment-bar-chart.coffee | PR#395 |
| LACHLAN MACKIE ROBINSON | Main Contributor | Astro - Resolve Main Branch Errors | PR#55 |
| LACHLAN MACKIE ROBINSON | Main Contributor | Validate File name | PR#53 |
| LACHLAN MACKIE ROBINSON | Reviewer | Migrate unit-ilo-edit-modal.coffee | PR#400 |
| LACHLAN MACKIE ROBINSON | Main Contributor | 8.x and 9.x build documentation | PR#44 |
| LACHLAN MACKIE ROBINSON | Main Contributor | Migrate achievement-custom-bar-chart.coffee | PR#412 |
| LACHLAN MACKIE ROBINSON | Main Contributor | Migrate outcome-service.coffee | PR#390 |
| LACHLAN MACKIE ROBINSON | Main Contributor | Remove task-completion-box-plot | PR#410 |
| LAMIA TABASSUM | Add observer property to unit-level roles | PR#75; PR#54 | |
| LAMIA TABASSUM | Security Issue: Publicly Accessible API Documentation via Swagger | PR#73; PR#48 | |
| LAMIA TABASSUM | Develop Tutor Time Dashboard | PR#416; PR#58 | |
| MARTIN JOHN DOLORES | Backend - Implement API Endpoints for SessionActivies and MarkingSession for Analytics | PR#8 | |
| MARTIN JOHN DOLORES | Backend - Create session_activities table | PR#5 | |
| MARTIN JOHN DOLORES | Reviewer | Backend - Create marking_sessions table | PR#4 |
| MARTIN JOHN DOLORES | Backend - Integrate SessionTracker service across related entities | PR#7 | |
| MARTIN JOHN DOLORES | Migrate Portfolio Welcome Step | PR#384; PR#619 | |
| MARTIN JOHN DOLORES | Backend - Create new SessionTracker Service | PR#6 | |
| MARTIN JOHN DOLORES | Main Contributor | Migrate groups.coffee | PR#382 |
| MARTIN JOHN DOLORES | Migrate confirmation-modal.coffee | PR#381 | |
| MARTIN JOHN DOLORES | Main Contributor | Migrate utilService.coffee | PR#383 |
| MARTIN JOHN DOLORES | Security Issue: Publicly Accessible API Documentation via Swagger | PR#73; PR#48 | |
| MARTIN JOHN DOLORES | Validate File name | PR#53 | |
| MARTIN JOHN DOLORES | Backend - Create PR to doubtfire-api for Feature Branch | PR#509 | |
| MARTIN JOHN DOLORES | Reviewer | Create test data for CourseFlow ( Course map, Course map units, Units) | PR#70 |
| MARTIN JOHN DOLORES | Web Security Audit: Cryptographic Failures | PR#45 | |
| MILLICENT ACHIENG AMOLO | Fix IDOR Vulnerability - User Data Access | PR#76 | |
| MILLICENT ACHIENG AMOLO | Google lighthouse performance checks | PR#629; PR#46 | |
| MILLICENT ACHIENG AMOLO | Reviewer | Metadata injection script for Markdown files | PR#626 |
| MILLICENT ACHIENG AMOLO | Main Contributor | Enable OnTrack accounts with full password management in the database | PR#78; PR#56; PR#57; PR#419 |
| MILLICENT ACHIENG AMOLO | Guide to build Ontrack on Linux based VMs | PR#60 | |
| MILLICENT ACHIENG AMOLO | Fix Frontend Admin Route Access Controls | PR#49 | |
| MILLICENT ACHIENG AMOLO | Reviewer | Create Documentation on how to build Doubtfire-Astro | PR#625 |
| MOSTAFA NOURI | Main Contributor | API Entity Updates | PR#3 |
| MOSTAFA NOURI | Main Contributor | Create Documentation on how to build Doubtfire-Astro | PR#625 |
| MOSTAFA NOURI | Reviewer | Database Schema Setup | PR#1 |
| MOSTAFA NOURI | Main Contributor | Google lighthouse performance checks | PR#629; PR#46 |
| MOSTAFA NOURI | Main Contributor | ActiveRecord Model Updates | PR#2 |
| MOSTAFA NOURI | Main Contributor | Metadata injection script for Markdown files | PR#626 |
| OLIVER ALEXANDER QUAIL | Create Script to Pull tasks from Planner | PR#51 | |
| PARTH SANJAYKUMAR VAGHELA | Reviewer | Integrate with backend | PR#403 |
| PARTH SANJAYKUMAR VAGHELA | Main Contributor | Migrate unit-dates-selector.coffee | PR#417 |
| PASINDU FERNANDO | Main Contributor | Migrate Group-member-list | PR#393 |
| PASINDU FERNANDO | Reviewer | Migrate runtime.coffee | PR#398 |
| PASINDU FERNANDO | Implement ngx graphs/charts in UI | PR#1003; PR#402 | |
| PASINDU FERNANDO | Remove task-completion-box-plot | PR#410 | |
| PASINDU FERNANDO | Main Contributor | Fix Task Viewer component routing | PR#404 |
| PASINDU FERNANDO | Migrate achievement-custom-bar-chart.coffee | PR#412 | |
| PASINDU FERNANDO | Reviewer | Migrate Portfolio Welcome Step | PR#384; PR#619 |
| PASINDU FERNANDO | Student Self-Enrolment - Tutorial Enrolment | PR#415; PR#79 | |
| PASINDU FERNANDO | Migrate portfolio-review-step.coffee | PR#401 | |
| PASINDU FERNANDO | Migrate students-list.coffee | PR#597; PR#389 | |
| PASINDU FERNANDO | Reviewer | Migrate recorder-service.coffee | PR#391; PR#1009 |
| PASINDU FERNANDO | Reviewer | Migrate confirmation-modal.coffee | PR#381 |
| RASHI AGRAWAL | Reviewer | Frontend: Add new SGE page | PR#394 |
| RASHI AGRAWAL | Integrate with backend | PR#403 | |
| RASHI AGRAWAL | Main Contributor | Migrate unit-ilo-edit-modal.coffee | PR#400 |
| SAHIRU HESHAN WITHANAGE | Remove alignment-bar-chart.coffee | PR#395 | |
| SAHIRU HESHAN WITHANAGE | Reviewer | Fix change_remotes.sh | PR#32 |
| SAHIRU HESHAN WITHANAGE | Reviewer | Add ability to mark unit as complete (phase 4) | PR#386 PR#396 |
| SAHIRU HESHAN WITHANAGE | Integrate with backend | PR#403 | |
| SAHIRU HESHAN WITHANAGE | Frontend Work: Student search and selection | PR#359 | |
| SAHIRU HESHAN WITHANAGE | Main Contributor | Frontend: Add new SGE page | PR#394 |
| SAHIRU HESHAN WITHANAGE | Add summary of skills component | PR#396 | |
| SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGE | Add ability to mark unit as complete (phase 4) | PR#386 PR#396 | |
| SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGE | Frontend Work: Set up notification UI | PR#353 | |
| SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGE | Backend- In-system notification system | PR#69 | |
| SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGE | Frontend: Add new SGE page | PR#394 | |
| SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGE | Web Security Audit: Cryptographic Failures | PR#45 | |
| SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGE | Update documentation in doubtfire-astro for staff grant extension new APIs and FE components | PR#40 | |
| SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGE | Main Contributor | Integrate with backend | PR#403 |
| SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGE | Reviewer | Migrate utilService.coffee | PR#383 |
| SAMINDI SITUMYA RATNAYAKE MUDIYANSELAGE | Standardize API Authentication Requirements | PR#72 | |
| TRIET LAM | Student Self-Enrolment - Tutorial Enrolment | PR#415; PR#79 | |
| TRIET LAM | Reviewer | Create a component to display credit points achieved. | PR#407 |
| TRIET LAM | Main Contributor | Cleanup feedback.coffee | PR#399 |
| TRIET LAM | Populate the content of the unit component tab with drop down menus to filter the units that get displayed. | PR#411 | |
| TRIET LAM | Reviewer | Migrate unit-dates-selector.coffee | PR#417 |
| TRIET LAM | Reviewer | Enhance the search functionalities | PR#409 |
| TRIET LAM | Reviewer | Enrich the unit card itself to show more info | PR#407 |
| TRIET LAM | Reviewer | Remove task-completion-box-plot | PR#410 |
| TRIET LAM | Reviewer | Add option to overload units to a teaching period | PR#407 |
| TRIET LAM | Main Contributor | Add progress tracking | PR#413 |
| WAEL ALAHMADI | Migrate students-list.coffee | PR#597; PR#389 | |
| WAEL ALAHMADI | Enable OnTrack accounts with full password management in the database | PR#78; PR#56; PR#57; PR#419 | |
| WAEL ALAHMADI | Reviewer | Google lighthouse performance checks | PR#629; PR#46 |
| WAEL ALAHMADI | Reviewer | Student Self-Enrolment - Tutorial Enrolment | PR#415; PR#79 |
| WAEL ALAHMADI | Main Contributor | Develop Tutor Time Dashboard | PR#416; PR#58 |
| WAEL ALAHMADI | Enhance the search functionalities | PR#409 | |
| WAEL ALAHMADI | Migrate unit-ilo-edit-modal.coffee | PR#400 | |
| WAEL ALAHMADI | Main Contributor | Add observer property to unit-level roles | PR#75; PR#54 |
| WAEL ALAHMADI | Security Issue: Publicly Accessible API Documentation via Swagger | PR#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 Serviceto manage marking sessions and integrate it across all related entities (User, Unit, Project, Task). - Goal: Deploy backend endpoints to retrieve
Marking SessionsandSession Activitiesfor 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.xand9.xbranches 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-techrepositories (deploy,web, andapi) to your personal GitHub profile. - Create a new branch from the
9.xbranch 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:
- Deployment: thoth-tech/doubtfire-deploy
- Frontend: thoth-tech/doubtfire-web
- Backend: thoth-tech/doubtfire-api
- OnTrack Documentation Website: thoth-tech/doubtfire-astro
- General Documentation: OnTrack Documentation
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 Names | Roles/Responsibilities | Junior/Senior |
|---|---|---|
| Oliver Quail | Team Leader | Senior |
| Josh Fernandes | Team Leader | Senior |
| Connor Clancy | Team Member | Junior |
| Jayden Minh Duong | Team Member | Junior |
| Stanoja Jovanovic | Team Member | Junior |
| Haoyu Liu | Team Leader | Junior |
| Runqi Liu | Team Leader | Junior |
| Ashen Manamalage Fernado | Team Member | Junior |
| Anandika Rajeev | Team Member | Junior |
| Suylang Sok | Team Member | Junior |
| Matthew Sutrisno | Team Member | Junior |
| Haoxuan Yuan | Team Leader | Junior |
| Wei Zhang | Team Leader | Junior |
| Julian Burton | Team Member | Senior |
| Daniel-Lee Carroll-Leonard | Team Member | Senior |
| Muhammad Danial | Team Member | Senior |
| Dhruv Janghu | Team Member | Senior |
| Paavan Kalra | Team Leader | Senior |
| Anish Sampson | Team Member | Senior |
| Sam Stajnko | Team Member | Senior |
| Vishnu Vengadeswaran | Team Leader | Senior |
| Sana Noureen | Team Member | Senior |
| Ayush Indapure | Team Member | Junior |
| Rabail Aamir | Team Member | Junior |
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.jsonfrom 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.
| Name | Role | Task | Attachments |
|---|---|---|---|
| ANANDIKA RAJEEV | Reviewer | Random Color - Color - Usage Example Creation | PR#578 |
| ANANDIKA RAJEEV | Main Contributor | Update GPIO tutorials to support new Remote GPIO Module | |
| ANANDIKA RAJEEV | Reviewer | Option Part Bmp - Graphics - Usage Example Creation | PR#599 |
| ANANDIKA RAJEEV | Display Dialog Tutorial - Utilities- Usage Example Creation | PR#639 | |
| ANANDIKA RAJEEV | Main Contributor | Distant Point on Circle - Geometry - Usage Example Creation | PR#626 |
| ANANDIKA RAJEEV | Main Contributor | Identify and Move Documentation to Thoth Tech Documentation Site | PR#147 |
| ANANDIKA RAJEEV | Reviewer | Option Scale Bmp - Graphics - Usage Example Creation | PR#604 |
| ANISH SAMPSON | Reviewer | Popular Tutorial Suggestions | |
| ANISH SAMPSON | Main Contributor | Option Flip X - Graphics - Usage Example Creation | PR#600 |
| ANISH SAMPSON | Main Contributor | Bitmap Bounding Circle - Graphics - Usage Example Creation | PR#577 |
| ANISH SAMPSON | Main Contributor | Option Rotate Bmp - Graphics - Usage Example Creation | PR#603 |
| ANISH SAMPSON | Main Contributor | Option Flip Y - Graphics - Usage Example Creation | PR#602 |
| ANISH SAMPSON | Main Contributor | Option Flip Xy - Graphics - Usage Example Creation | PR#601 |
| ANISH SAMPSON | Main Contributor | Bitmap Width - Graphics - Usage Example Creation | PR#592 |
| ANISH SAMPSON | Main Contributor | Get Font Style - Graphics - Usage Example Creation | PR#596 |
| ANISH SAMPSON | Main Contributor | Bitmap Height - Graphics - Usage Example Creation | PR#588 |
| ANISH SAMPSON | Main Contributor | Display Width - Graphics - Usage Example Creation | PR#597 |
| ANISH SAMPSON | Main Contributor | Bitmap Name - Graphics - Usage Example Creation | PR#586 |
| ANISH SAMPSON | Main Contributor | Screen Height - Graphics - Usage Example Creation | PR#595 |
| ANISH SAMPSON | Main Contributor | Save Bitmap - Graphics - Usage Example Creation | PR#610 |
| ANISH SAMPSON | Main Contributor | Screen Width - Graphics - Usage Example Creation | PR#594 |
| ANISH SAMPSON | Main Contributor | Mouse Wheel Scroll - Graphics - Usage Example Creation | PR#632 |
| ANISH SAMPSON | Main Contributor | Saturation Of - Graphics - Usage Example Creation | PR#607 |
| ANISH SAMPSON | Main Contributor | Take Screenshot - Graphics - Usage Example Creation | PR#629 |
| ANISH SAMPSON | Main Contributor | Bitmap Bounding Rectangle - Graphics - Usage Example Creation | PR#584 |
| ANISH SAMPSON | Main Contributor | Text Height - Graphics - Usage Example Creation | PR#625 |
| ANISH SAMPSON | Main Contributor | Option Scale Bmp - Graphics - Usage Example Creation | PR#604 |
| ANISH SAMPSON | Main Contributor | Set Font Style - Graphics - Usage Example Creation | PR#593 |
| ANISH SAMPSON | Main Contributor | String To Color - Graphics - Usage Example Creation | PR#606 |
| ANISH SAMPSON | Main Contributor | Bitmap Center - Graphics - Usage Example Creation | PR#585 |
| ANISH SAMPSON | Main Contributor | Option Part Bmp - Graphics - Usage Example Creation | PR#599 |
| ANISH SAMPSON | Main Contributor | Rectangle Around - Geometry - Usage Example Creation | PR#640 |
| ANISH SAMPSON | Main Contributor | Rgba Color - Graphics - Usage Example Creation | PR#605 |
| ANISH SAMPSON | GA4 Frontend Tracking Implementation | ||
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Ray Circle Intersect Distance - Geometry - Usage Example Creation | PR#648 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Organize terminal write examples into subfolders #12 | PR#12 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | sprites guide and update scripts for new group #9 | PR#9 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Rectangle to String - Geometry - Usage Example Creation | PR#621 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Add usage examples for SplashKit audio functions: play_music_named and resume_music | PR#3 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Add button click detection usage examples #7 | PR#7 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Replace All Tutorial - Utilities- Usage Example Creation | PR#647 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | KeyDown usage example and documentation for SplashKit input functions | PR#8 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Graphics Function Implementation #611 | PR#611 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Usage Example for create_animation Function | PR#2 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | camera movement usage example and resources | PR#4 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | create_animation_from_script_named - Animations - Usage Example Creation | PR#644 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Add KeyDown usage example and documentation for SplashKit input functions | PR#645 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Add documentation for SplashKit geometry usage examples | PR#6 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Organize physics usage examples into subfolders | PR#14 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Update GPIO “Reading Analog Signal” guide to use new ADC functionality | PR#630 | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Reviewer | Modify PWM through button presses Tutorial - C# Language Update | |
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | Update GPIO tutorials to support new Remote GPIO Module | ||
| ASHEN THARUKA DESAN MANAMALAGE FERNANDO | usage Example System implementation | ||
| AYUSH SHRINIVAS INDAPURE | Redesigning the Announcement page | ||
| AYUSH SHRINIVAS INDAPURE | Getting Started Creating User Interfaces - Landing Page | ||
| AYUSH SHRINIVAS INDAPURE | Tutorial Review/Update: Styling User Interface of Hero Figma | ||
| AYUSH SHRINIVAS INDAPURE | Trying to Improving Error Message Clarity | ||
| AYUSH SHRINIVAS INDAPURE | Main Contributor | Refining Landing Page and Announcement Design for Better Engagement | PR#583 |
| AYUSH SHRINIVAS INDAPURE | Option Flip Xy - Graphics - Usage Example Creation | PR#601 | |
| AYUSH SHRINIVAS INDAPURE | usage examples | ||
| AYUSH SHRINIVAS INDAPURE | Reviewer | Features page | PR#35 |
| AYUSH SHRINIVAS INDAPURE | Added a Assistance Center | ||
| AYUSH SHRINIVAS INDAPURE | Reviewer | Add “remote” ADC functions | PR#130 |
| CONNOR JACOB CLANCY | Main Contributor | Investigate issues with running tests in MSYS2 | PR#132 |
| CONNOR JACOB CLANCY | Reviewer | Add Missing HeaderDocs for Miscellaneous Functions | PR#117 |
| CONNOR JACOB CLANCY | Main Contributor | Investigate font_load_size and font_has_size use/need | PR#136 |
| CONNOR JACOB CLANCY | Main Contributor | Unit tests - json_read_number | PR#122 |
| CONNOR JACOB CLANCY | Reviewer | Fix CMake presets not working with versions older than 3.28 | PR#135 |
| CONNOR JACOB CLANCY | Reviewer | Fixed a typo in page generation script | PR#631 |
| DANIEL CARROLL-LEONARD | Draw Line on Window Point-To-Point #659 | PR#585 | |
| DANIEL CARROLL-LEONARD | Bitmap Bounding Circle - Graphics - Usage Example Creation | PR#577 | |
| DANIEL CARROLL-LEONARD | Main Contributor | Fix CMake presets not working with versions older than 3.28 | PR#135 |
| DANIEL CARROLL-LEONARD | Main Contributor | Unit tests - resource bundles & bug fix | PR#131 |
| DANIEL CARROLL-LEONARD | Unit testing - Identify tests that can be moved to skunit_tests from sktest | https://github.com/thoth-tech/splashkit-core/issues/133#issue-3420481150 | |
| DANIEL CARROLL-LEONARD | Unit tests - hsb_color improvements | PR#120; PR#128 | |
| DANIEL CARROLL-LEONARD | Unit tests - hsb_color | PR#120/files/d7e6a3ffc8453720cff2ceebb12346b0d54cf277; PR#120 | |
| DANIEL CARROLL-LEONARD | Update unit testing guide | ||
| DANIEL CARROLL-LEONARD | Main Contributor | Unit tests - Camera | PR#123 |
| DANIEL CARROLL-LEONARD | splashkit-core testing tutorial videos | ||
| DANIEL CARROLL-LEONARD | Reviewer | Screen Width - Graphics - Usage Example Creation | PR#594 |
| DANIEL CARROLL-LEONARD | Investigate functions with repeated suffixes | PR#121; PR#121 | |
| DANIEL CARROLL-LEONARD | Unit tests - bitmap_name | PR#125 | |
| DANIEL CARROLL-LEONARD | Reviewer | Unit tests - json_read_number | PR#122 |
| DANIEL CARROLL-LEONARD | Review new motor and servo GPIO functions | PR#124 | |
| DANIEL CARROLL-LEONARD | Main Contributor | Add code coverage | PR#146; PR#116 |
| DANIEL CARROLL-LEONARD | Reviewer | Screen Height - Graphics - Usage Example Creation | PR#595 |
| DANIEL CARROLL-LEONARD | Bitmap Center - Graphics - Usage Example Creation | PR#585 | |
| DANIEL CARROLL-LEONARD | Reviewer | Bitmap Bounding Rectangle - Graphics - Usage Example Creation | PR#584 |
| DHRUV JANGHU | Reviewer | [SplashKit Website] Games Showcase page | PR#569 |
| DHRUV JANGHU | Reviewer | Update/Continue Getting Started with Sprites Tutorial | PR#563 |
| DHRUV JANGHU | Reviewer | Draw circle - fill toggle #636 | |
| DHRUV JANGHU | Reviewer | Circle Triangle Intersect - Geometry - Usage Example Creation | PR#638 |
| DHRUV JANGHU | Reviewer | Usage Example: Option Scale Bitmap #658 | PR#584 |
| DHRUV JANGHU | Main Contributor | Color Slider - Interface - Usage Example Creation | PR#641 |
| DHRUV JANGHU | Reviewer | Bitmap Name - Graphics - Usage Example Creation | PR#586 |
| DHRUV JANGHU | Reviewer | Bitmap Height - Graphics - Usage Example Creation | PR#588 |
| DHRUV JANGHU | Unit tests - json_read_number | PR#122 | |
| DHRUV JANGHU | Least Common Multiple Tutorial - Utilities- Usage Example Creation | PR#660 | |
| DHRUV JANGHU | Split [Text] Tutorial - Utilities- Usage Example Creation | ||
| DHRUV JANGHU | Greatest Common Divisor Tutorial - Utilities- Usage Example Creation | ||
| DHRUV JANGHU | File As Tutorial Tutorial - Utilities- Usage Example Creation | ||
| DHRUV JANGHU | Reviewer | Save Bitmap - Graphics - Usage Example Creation | PR#610 |
| DHRUV JANGHU | Reviewer | Option to world # | |
| DHRUV JANGHU | Reviewer | Usage example is integer #657 | |
| HAOXUAN YUAN | Main Contributor | Tutorial Review/Update: Animation | PR#598; PR#576 |
| HAOXUAN YUAN | Reviewer | Set Font Style - Graphics - Usage Example Creation | PR#593 |
| HAOXUAN YUAN | Main Contributor | Popular Tutorial Suggestions | |
| HAOXUAN YUAN | Main Contributor | Add Language Switcher and Chinese Localization to SplashKit Website | PR#582 |
| HAOYU LIU | Tutorial Review/Update: Routing With Servers | PR#622 | |
| HAOYU LIU | Tower defended games development | ||
| HAOYU LIU | Long-term optimization of the document | ||
| HAOYU LIU | Add Language Switcher and Chinese Localization to SplashKit Website | PR#582 | |
| HAOYU LIU | Optimize the instruction document | ||
| HAOYU LIU | Main Contributor | Consolidate Arcade Machine documentation to .md files in repo | PR#83 |
| HAOYU LIU | Reviewer | Tutorial Review/Update: How to make a RESTful API call using SplashKit | PR#624 |
| HAOYU LIU | Arcade machines are running very old builds | ||
| JAYDEN DUONG | Bug testing C++ | ||
| JAYDEN DUONG | Add Project Export | ||
| JOSH FERNANDES | Unit tests - json_set_number | PR#129 | |
| JOSH FERNANDES | Reviewer | Unit tests - Camera | PR#123 |
| JOSH FERNANDES | Unit tests - json_read_number | PR#122 | |
| JOSH FERNANDES | Reviewer | Investigate font_load_size and font_has_size use/need | PR#136 |
| JOSH FERNANDES | Revise Pigpio to WiringPi Code From Last Trimester | PR#212 | |
| JOSH FERNANDES | Reviewer | Unit tests - resource bundles & bug fix | PR#131 |
| JOSH FERNANDES | Reviewer | Revise unit tests so that they can be run independently | PR#594 |
| JOSH FERNANDES | Reviewer | Investigate issues with running tests in MSYS2 | PR#132 |
| JOSH FERNANDES | Reviewer | Refactor Bitmap Unit Tests | PR#134 |
| JOSH FERNANDES | Main Contributor | Add “remote” ADC functions | PR#130 |
| JULIAN BURTON | Reviewer | Bitmap Width - Graphics - Usage Example Creation | PR#592 |
| JULIAN BURTON | Reviewer | Display Width - Graphics - Usage Example Creation | PR#597 |
| JULIAN BURTON | Main Contributor | Current Window Width - Windows - Usage Example Creation | PR#635 |
| JULIAN BURTON | Reviewer | String To Color - Graphics - Usage Example Creation | PR#606 |
| JULIAN BURTON | Main Contributor | Close Window - Windows - Usage Example Creation | PR#573 |
| JULIAN BURTON | Reviewer | Rectangle Around - Geometry - Usage Example Creation | PR#640 |
| JULIAN BURTON | Main Contributor | Clear Window - Windows - Usage Example Creation | PR#572 |
| JULIAN BURTON | Main Contributor | Current Window Height - Windows - Usage Example Creation | PR#634 |
| JULIAN BURTON | Main Contributor | Move Window To - Windows - Usage Example Creation | PR#633 |
| MATTHEW JONATHAN SUTRISNO | Main Contributor | Unit tests - hsb_color | PR#120/files/d7e6a3ffc8453720cff2ceebb12346b0d54cf277; PR#120 |
| MATTHEW JONATHAN SUTRISNO | Reviewer | Unit tests - bitmap_name | PR#125 |
| MATTHEW JONATHAN SUTRISNO | Main Contributor | Unit tests - json_set_number | PR#129 |
| MATTHEW JONATHAN SUTRISNO | Main Contributor | Unit tests - hsb_color improvements | PR#120; PR#128 |
| MATTHEW JONATHAN SUTRISNO | Unit tests - Camera | PR#123 | |
| MUHAMMAD DANIAL | Reviewer | Rgba Color - Graphics - Usage Example Creation | PR#605 |
| MUHAMMAD DANIAL | Base64 Encode - Utilities- Usage Example Creation | ||
| MUHAMMAD DANIAL | Random Color - Color - Usage Example Creation | PR#578 | |
| MUHAMMAD DANIAL | Base64 Decode - Utilities - Usage Example Creation | ||
| MUHAMMAD DANIAL | Reviewer | Take Screenshot - Graphics - Usage Example Creation | PR#629 |
| OLIVER ALEXANDER QUAIL | Reviewer | Add demo C# game | PR#129 |
| OLIVER ALEXANDER QUAIL | Reviewer | Document Theme creation process | PR#133 |
| OLIVER ALEXANDER QUAIL | Reviewer | Update/Continue Shape Modelling Tutorial (previously started) | PR#580 |
| OLIVER ALEXANDER QUAIL | Add Missing HeaderDocs for Miscellaneous Functions | PR#117 | |
| OLIVER ALEXANDER QUAIL | Main Contributor | Fix CPP in new file structure | PR#128 |
| OLIVER ALEXANDER QUAIL | Reviewer | Improve C# documentation | PR#134 |
| OLIVER ALEXANDER QUAIL | Reviewer | Update/Continue Dynamic Camera Control Tutorial | PR#567 |
| OLIVER ALEXANDER QUAIL | Reviewer | Add themes menu | PR#132 |
| OLIVER ALEXANDER QUAIL | Reviewer | Option Rotate Bmp - Graphics - Usage Example Creation | PR#603 |
| OLIVER ALEXANDER QUAIL | Reviewer | Investigate functions with repeated suffixes | PR#121; PR#121 |
| OLIVER ALEXANDER QUAIL | Reviewer | Mouse Wheel Scroll - Graphics - Usage Example Creation | PR#632 |
| OLIVER ALEXANDER QUAIL | Update README.md to add C# setup instructions | PR#127 | |
| OLIVER ALEXANDER QUAIL | Main Contributor | Add guide for adding demos to SK Online | PR#131 |
| OLIVER ALEXANDER QUAIL | Reviewer | Draw Line on Window Point-To-Point #659 | PR#585 |
| OLIVER ALEXANDER QUAIL | Tutorial Review/Update: Routing With Servers | PR#622 | |
| OLIVER ALEXANDER QUAIL | Reviewer | Consolidate Arcade Machine documentation to .md files in repo | PR#83 |
| OLIVER ALEXANDER QUAIL | Reviewer | Add Missing HeaderDocs for Bitmap Functions | PR#118 |
| OLIVER ALEXANDER QUAIL | Update documentation to reflect new file structure | ||
| OLIVER ALEXANDER QUAIL | Automate binding generation for C# | PR#135 | |
| OLIVER ALEXANDER QUAIL | Reviewer | Bitmap Center - Graphics - Usage Example Creation | PR#585 |
| PAAVAN KALRA | Close Window - Windows - Usage Example Creation | PR#573 | |
| PAAVAN KALRA | Main Contributor | Line Intersects Rectangle - Geometery - Usage Example Creation | PR#579 |
| PAAVAN KALRA | Main Contributor | Circle Triangle Intersect - Geometry - Usage Example Creation | PR#638 |
| PAAVAN KALRA | Reviewer | Distant Point on Circle - Geometry - Usage Example Creation | PR#626 |
| PAAVAN KALRA | Main Contributor | Closest Point On Line - Geometry - Usage Example Creation | PR#565 |
| PAAVAN KALRA | Reviewer | Usage Example Creation - Set clip drag to select #581 | |
| PAAVAN KALRA | Reviewer | Tutorial Review/Update: Animation | PR#598; PR#576 |
| PAAVAN KALRA | Reviewer | Usage Example Creation - Push Clip | |
| PAAVAN KALRA | Reviewer | Text Height - Graphics - Usage Example Creation | PR#625 |
| PAAVAN KALRA | Reviewer | Option Flip Xy - Graphics - Usage Example Creation | PR#601 |
| PAAVAN KALRA | Update/Continue Dynamic Camera Control Tutorial | PR#567 | |
| PAAVAN KALRA | Reviewer | Move Window To - Windows - Usage Example Creation | PR#633 |
| PAAVAN KALRA | Reviewer | Clear Window - Windows - Usage Example Creation | PR#572 |
| PAAVAN KALRA | Reviewer | Current Window Height - Windows - Usage Example Creation | PR#634 |
| PAAVAN KALRA | Reviewer | Current Window Width - Windows - Usage Example Creation | PR#635 |
| PAAVAN KALRA | Rectangle Around - Geometry - Usage Example Creation | PR#640 | |
| PAAVAN KALRA | Reviewer | Color Slider - Interface - Usage Example Creation | PR#641 |
| PAAVAN KALRA | Main Contributor | Random Color - Color - Usage Example Creation | PR#578 |
| PAAVAN KALRA | Tutorial: Beginner Game Tutorial - Flappy Bird | PR#642 | |
| PAAVAN KALRA | Reviewer | Option Flip X - Graphics - Usage Example Creation | PR#600 |
| PAAVAN KALRA | String To Color - Graphics - Usage Example Creation | PR#606 | |
| PAAVAN KALRA | Update/Continue Shape Modelling Tutorial (previously started) | PR#580 | |
| PAAVAN KALRA | Reviewer | Option Flip Y - Graphics - Usage Example Creation | PR#602 |
| RABAIL AAMIR | Reviewer | Identify and Move Documentation to Thoth Tech Documentation Site | PR#147 |
| RABAIL AAMIR | Main Contributor | Add demo C# game | PR#129 |
| RABAIL AAMIR | Reviewer | Update GPIO tutorials to support new Remote GPIO Module | |
| RABAIL AAMIR | Main Contributor | Document Theme creation process | PR#133 |
| RABAIL AAMIR | Main Contributor | Improve C# documentation | PR#134 |
| RABAIL AAMIR | Reviewer | Add guide for adding demos to SK Online | PR#131 |
| RABAIL AAMIR | Refactor modal.js | PR#138 | |
| RABAIL AAMIR | Main Contributor | Add themes menu | PR#132 |
| RABAIL AAMIR | Main Contributor | Features page | PR#35 |
| RUNQI LIU | Main Contributor | Tutorial Review/Update: How to make a RESTful API call using SplashKit | PR#624 |
| RUNQI LIU | Main Contributor | Tutorial Review/Update: Getting Started With Servers | PR#627 |
| RUNQI LIU | 2D RPG games development | PR#246 | |
| RUNQI LIU | Add Language Switcher and Chinese Localization to SplashKit Website | PR#582 | |
| RUNQI LIU | Reviewer | Arcade machines are running very old builds | |
| RUNQI LIU | Tutorial Review/Update: Animation | PR#598; PR#576 | |
| RUNQI LIU | Main Contributor | Tutorial Review/Update: Routing With Servers | PR#622 |
| RUNQI LIU | Consolidate Arcade Machine documentation to .md files in repo | PR#83 | |
| SAM STAJNKO | Reviewer | Unit tests - hsb_color improvements | PR#120; PR#128 |
| SAM STAJNKO | Main Contributor | Investigate functions with repeated suffixes | PR#121; PR#121 |
| SAM STAJNKO | Reviewer | Unit tests - hsb_color | PR#120/files/d7e6a3ffc8453720cff2ceebb12346b0d54cf277; PR#120 |
| SAM STAJNKO | Reviewer | Fix CPP in new file structure | PR#128 |
| SAM STAJNKO | Main Contributor | Unit tests - bitmap_name | PR#125 |
| SAM STAJNKO | Reviewer | Unit tests - json_set_number | PR#129 |
| SAM STAJNKO | Reviewer | Add code coverage | PR#146; PR#116 |
| SAM STAJNKO | Main Contributor | Refactor Bitmap Unit Tests | PR#134 |
| SAM STAJNKO | Main Contributor | Add Missing HeaderDocs for Bitmap Functions | PR#118 |
| SAM STAJNKO | Main Contributor | Add Missing HeaderDocs for Miscellaneous Functions | PR#117 |
| SANA NOUREEN | Closest Point On Line - Geometry - Usage Example Creation | PR#565 | |
| SANA NOUREEN | Main Contributor | Draw Line on Window Point-To-Point #659 | PR#585 |
| SANA NOUREEN | Clean up existing documentation | ||
| SANA NOUREEN | Main Contributor | Usage Example Creation - Push Clip | |
| SANA NOUREEN | Main Contributor | Modify PWM through button presses Tutorial - C# Language Update | |
| SANA NOUREEN | Reviewer | Tutorial: Beginner Game Tutorial - Flappy Bird | PR#642 |
| SANA NOUREEN | Reviewer | Get Font Style - Graphics - Usage Example Creation | PR#596 |
| SANA NOUREEN | Main Contributor | Usage Example: Option Scale Bitmap #658 | PR#584 |
| SANA NOUREEN | Main Contributor | Draw circle - fill toggle #636 | |
| SANA NOUREEN | Main Contributor | Usage Example Creation - Set clip drag to select #581 | |
| SANA NOUREEN | Main Contributor | Usage example is integer #657 | |
| SANA NOUREEN | Main Contributor | Option to world # | |
| SANA NOUREEN | Reviewer | Line Intersects Rectangle - Geometery - Usage Example Creation | PR#579 |
| SANA NOUREEN | Is Prime Number Tutorial - Utilities- Usage Example Creation | ||
| SANA NOUREEN | Free Bitmap #656 | PR#585 | |
| STAN JOVANOVIC | [TEMPLATE] Tutorial Review/Update: [Tutorial Name] | ||
| SUYLANG SOK | Tutorial Review/Update: How to make a RESTful API call using SplashKit | PR#624 | |
| SUYLANG SOK | Fixed a typo in page generation script | PR#631 | |
| VISHNU VENGADESWARAN | Mouse Wheel Scroll - Graphics - Usage Example Creation | PR#632 | |
| VISHNU VENGADESWARAN | Reviewer | Saturation Of - Graphics - Usage Example Creation | PR#607 |
| VISHNU VENGADESWARAN | Main Contributor | Fixed a typo in page generation script | PR#631 |
| VISHNU VENGADESWARAN | Main Contributor | Tutorial: Beginner Game Tutorial - Flappy Bird | PR#642 |
| VISHNU VENGADESWARAN | Get Font Style - Graphics - Usage Example Creation | PR#596 | |
| VISHNU VENGADESWARAN | Line Intersects Rectangle - Geometery - Usage Example Creation | PR#579 | |
| VISHNU VENGADESWARAN | Tutorial Review/Update: How to make a RESTful API call using SplashKit | PR#624 | |
| VISHNU VENGADESWARAN | Option Rotate Bmp - Graphics - Usage Example Creation | PR#603 | |
| VISHNU VENGADESWARAN | Reviewer | Close Window - Windows - Usage Example Creation | PR#573 |
| VISHNU VENGADESWARAN | Reviewer | Refining Landing Page and Announcement Design for Better Engagement | PR#583 |
| VISHNU VENGADESWARAN | Main Contributor | Update/Continue Dynamic Camera Control Tutorial | PR#567 |
| VISHNU VENGADESWARAN | Popular Tutorial Suggestions | ||
| VISHNU VENGADESWARAN | Main Contributor | Update/Continue Getting Started with Sprites Tutorial | PR#563 |
| VISHNU VENGADESWARAN | Main Contributor | [SplashKit Website] Games Showcase page | PR#569 |
| VISHNU VENGADESWARAN | Reviewer | Closest Point On Line - Geometry - Usage Example Creation | PR#565 |
| VISHNU VENGADESWARAN | Reviewer | Add Language Switcher and Chinese Localization to SplashKit Website | PR#582 |
| VISHNU VENGADESWARAN | Text Height - Graphics - Usage Example Creation | PR#625 | |
| VISHNU VENGADESWARAN | Main Contributor | Update/Continue Shape Modelling Tutorial (previously started) | PR#580 |
| VISHNU VENGADESWARAN | Reviewer | Bitmap Bounding Circle - Graphics - Usage Example Creation | PR#577 |
| WEI ZHANG | Reviewer | Tutorial Review/Update: Getting Started With Servers | PR#627 |
| WEI ZHANG | Consolidate Arcade Machine documentation to .md files in repo | PR#83 | |
| WEI ZHANG | Main Contributor | Arcade machines are running very old builds | |
| WEI ZHANG | Reviewer | Tutorial Review/Update: Routing With Servers | PR#622 |
| WEI ZHANG | Tetriz game development | PR#243 | |
| WEI ZHANG | Tetriz game development | PR#243 | |
| WEI ZHANG | Add Language Switcher and Chinese Localization to SplashKit Website | PR#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.