Thoth Tech - Company Progress Report 2023 TRIMESTER 3
Executive Summary
Thoth Tech is a software development company currently building from the ground up in Melbourne, Australia.
Thoth Tech’s mission is to build, operate, and deploy education technologies, creating tools that enhance education outcomes by empowering students, connecting them with tutors, and facilitating personalised learning experiences.
We value our people, and we value excellence. We are people-focused, aiming to produce sustainable products of excellent quality, and provide frameworks that supply a safe environment for learning and support of our team.
This report will outline the company structure, charter, objectives–both short and long term, and explore each product’s goals.
In trimester 3, Thoth Tech would be running three products namely: OnTrack, Splash Kit, and Company Operations. In addition to the three main products, the Courseflow project would undergo a rigorous planning phase were the benefits, aims, and solution design would be generated to create a structure for the project in subsequent trimesters. Students would be allocated to any of the three products and would be required to contribute to achieve the objectives of the product.
Company Operations oversees the entire affairs of Thoth Tech and strives to make things easier. Effective operations are important for maintaining a successful business. As other product teams focus to develop new features and upgrade existing products, we would be working to ensure that appropriate industry guidelines and standards are followed to produce world class products. We document the tools and processes that Thoth tech uses in its daily operations and research new options that could serve the company better.
OnTrack is one of the bigger projects in the company and is a live production system that is in use at Deakin University, it has been consistently improved and built upon to provide an exceptional learning tool for students and staff at Deakin. Its technology stack consists of a Ruby on Rails back end and an Angular JS / Angular 15 front end. There are a variety of projects to enhance and upgrade this product that students can work on.
SplashKit is currently a 2D game development Software Development Kit used to teach object-oriented coding to beginners. It has been identified that SplashKit can be expanded to explore other areas and languages.
Leadership Team
Company Directors
- Andrew Cain, Managing Director
Mentors
- OnTrack & Courseflow - Daniel Maddern
- SplashKit – Olivia McKeon
- Company Operations – Amin Abken
Trimester Goals and Objectives
Thoth Tech will aim to achieve the goals listed below:
Goal 1: Foster employees’ growth in a safe and supportive environment to equip them with the soft and technical skills needed upon graduation
- Create an environment where the amount of work is distrusted evenly amongst roles and contributors.
- Utilise processes and tools that require collaboration and fosters growth such as Google Suite or Pull Reviews.
- Educate and Empower skill growth and knowledge sharing.
- Enhance onboarding experience for future employees.
- Ensure a supportive environment is provided for all employees regardless of race, gender or other differences to allow every employee to thrive.
Goal 2: Extend the Existing Thoth Tech Applications based on the Director’s Visions
- Improve existing features of the Thoth Tech applications and extend the platforms.
- Have a mentality of self-improvement and find/squash bugs related to non-technical and technical issues.
- Maintain security guidelines and industry best standards.
- Embrace an ethic of communicating with non-technical stakeholders through diagrams and other methods of documentation to help future employees and investors.
Goal 3: Revise and Maintain Company Operations
- Improve existing company policies based on employee feedback and director advice
- Educate future employees and develop a process to consider the bus factory
- Allow company operations to be a smooth process for nurturing new company operation members.
- Establish documentation and guidelines to allow anyone to understand the company operation.
Company Charter
The Thoth Tech charter is a crucial tool for guiding our team, navigating decisions, establishing boundaries, and aligning the team on how we work together. It defines how as a company we work together to achieve success.
Our charter comprises of the following:
- Mission: As a team, what are we trying to achieve?
- Values: What do we care about?
- Team Culture: How will we work together, what do we expect?
- Roles: What roles do we need and what are the responsibilities of each role?
- Metrics of Success: What does success look like to us?
- Standards of Quality: What are our standards for high quality work? Mission To build, operate and deploy world class education technologies.
This is achieved by creating tools that enhance education outcomes by empowering students, connecting them with tutors and facilitating personalised learning experiences. Values Our values describe how we work, what we represent, and guide us to be the kind of company and team members we want to be.
When we live up to these values we will: Be people-focused We expect the best from each other, give each other the benefit of the doubt, encourage each other to take initiative to improve ourselves and the company, and provide direct and constructive help to each other. We collaborate with kindness while being respectful of each other. Uphold sustainable excellence We create working, maintainable, and understandable software that is enjoyable and easy to use.
We strive to do it in a way that is sustainable for our team members and for our environment. Be inclusive and supportive We celebrate diverse perspectives and embrace uncomfortable ideas and conversations. We facilitate an environment in which all team members feel psychologically safe enough to make requests for what they need to do their job. We learn through failures while continually working to make things better.
Company Structure and Projects Overview
Company Structure
Projects Overview
Company Operations
Overview, Goals, and Objectives
This team oversees the entire operations of Thoth Tech and strives to make things easier. We aim to make the onboarding process as smooth and clear as possible, as well as increase the knowledge of our seniors in meaningful ways while creating policies to improve the wellbeing of all company employees. In the short term, we would like to create documentations, policies, workflows, and processes that are relevant to improve the company’s outlook and overall productivity. In the long term, we aim to ensure that all policies created are being adhered to and the Documentation website is being utilized to store all project documentation.
Aims for Trimester
- Enforce created policies.
- Migrate all project documentation to the Documentation website.
- Dockerize the Documentation website
- Create a website to showcase Thoth Tech products and projects.
- Oversee the entire operations of the company.
Deliverables
- Design document for Thoth Tech company website.
- Published company website
- Docker image for documentation website published to GitHub.
- Students completely adhere to created policies and guidelines
Description of Progress
- Building of the Thoth Tech Website is in progress.
- Students have begun the migration of documents from GitHub to the Documentation Website.
- We are currently working on a solution that takes input from users (regarding their skills, career prospects, degree specialization) and suggest what Thoth Tech product would be beneficial to them. This is basically for new students joining Thoth Tech.
- Successfully compiled 2.1P task and submitted.
- Redesigned the news page in the Documentation website. It now has a blog outlook.
- Held help hub sessions for new and returning students in Thoth Tech.
- Created a Committed Participant Agreement contract for students willing to develop something valuable in Thoth Tech.
Team Members and Contributions
Full Name | Trello Card Name | Evidence |
---|---|---|
QUINN CURTIS | create blog page for the documentation website | |
QUINN CURTIS | create written tutorial for the blog | |
QUINN CURTIS | created video tutorial for the blog | |
Karl Ivan Aquino | Create a Documentation on How to Publish an Astro Website to Netlify | |
Karl Ivan Aquino | Testing the Documentation on How to Publish an Astro Website to Netlify | |
Karl Ivan Aquino | Create a Netlify Account Using Andrews Details | |
Karl Ivan Aquino | Create a Worklog to be adopted by the Company | |
Onyedikachi Okorie | Populate Trello board with tasks to be done in Sprint 1 | |
Onyedikachi Okorie | Help Hub Session to answer questions and direct teammates on how to Contribute effectively | |
Onyedikachi Okorie | Create a Spike Plan for the Thoth Website | |
Onyedikachi Okorie | Create “Contributing to Thoth Tech in T3” document. | |
Onyedikachi Okorie | Company Wide Meeting to Inform Students of our Processes, Policies, etc. | Recording Link: https://deakin365- my.sharepoint.com/:v:/g/personal/s22146 0489_deakin_edu_au/EcIf- j14U_tEoNb7gBdoeKsBBSB_tAY2HNTFSjQ NkIi5mQ |
Onyedikachi Okorie | Create a Welcome Message for the start of Trimester 3 | Message link: ONYEDIKACHI OKORIE: Welcome to Thoth tech |
Onyedikachi Okorie | Create a Commitment Participant Contract for Thoth Tech | |
Onyedikachi Okorie | Compile and Submit 2.1P Task for Company Wide Submission | Teams link: Thoth Tech Company Objectives and Structure T32023 -Task 2.1P.pdf |
Onyedikachi Okorie | Build the Company Website Home Page, Nav Bar and Footer | |
Onyedikachi Okorie | Build the Blog Pages of the Company Website | |
Onyedikachi Okorie | Build the OnTrack Page of the Company Website | |
Onyedikachi Okorie | Generate an astro template for the creation of the company website | |
Onyedikachi Okorie | Create a Low-level Prototype Design for Thoth Tech Website | |
Devanshi Patel | Compile a list all Technology Stacks for Thoth Tech | |
SHIYU CHEN | Create an Org Chart for T3 | |
SHIYU CHEN | Migrate all Coursefow documentation to the Documentation Website | |
SHIYU CHEN | Review the folders in Courseflow determine which folder they fall under (Projects, Documentation, Issues and Resolution) | |
ZHENJIE LAI | Migrate all Art Gallery documentation to the Documentation Website | https://github.com/Eisen666/ThothTech- Documentation- Website/tree/upstream/Eisen-new- |
ZHENJIE LAI | Review the folders in Art Gallery determine which folder they fall under (Projects, Documentation, Issues and Resolution) | https://github.com/Eisen666/ThothTech- Documentation- Website/tree/upstream/Eisen-new- |
OnTrack
Ontrack Overview, Goals, and Objectives
This trimester Ontrack will be working dynamically across a variety of projects. We will be working based on a priority system to get as many useful changes implemented as possible in the trimester.
We will be breaking each project into smaller subcomponents to allow people to work across projects in areas that are strong at or interested in. Everything should be completable in a 2- week sprint.
OnTrack Aims for Trimester
The Key projects we would like to see movement on this trimester would be:
-
Improvements Backlog – This backlog has core improvements to the system we want to see.
-
Ontrack Bugs Backlog – These are bugs that are found and added to this backlog.
-
New Feature – Incorporate Content – Ideally, we have an additional 2 designs of how this would work. It’s not ready to code just yet.
-
New Feature – Staff Grant Extensions – Ideally, we have an additional 2 designs of how this would work. It’s not ready to code just yet.
-
New Feature – Tutor Times – Ideally, we have 2 additional designs on how this would work. It’s not ready to code just yet.
-
Backlog Urgent Enhancements – These are important changes we are looking to get done as soon as possible.
-
Documentation – We want to focus on updating the Front and Backend Documentation and testing in this trimester. This will help students and other users better understand the system and how it works.
OnTrack Deliverables
Our main deliverables will be based on story points completed in the Trello tasks; we are aiming for students to complete between 5-6 Story points every 2-week sprint.
OnTrack Description of Progress
Front end migration
- 2 migrations in final review
- 6 in first stage review
- 1 major component being migrated
Urgent Enhancements
- codespace investgiation complete
- Sidekick investigation
Numbas
- group formed to progress Numbas
- Meeting to plan remaining work
OnTrack Team Members and Contributions
Full Name | Trello Card Name | Evidence |
---|---|---|
Brian Caldera | Replace fx-layout with tailwind equivalent - hero-sidebar | |
Brian Caldera | Replace fx-layout with tailwind equivalent - welcome | |
William Lowe | Replace fx-layout with tailwind equivalent - hero-sidebar | |
William Lowe | Replace fx-layout with tailwind equivalent - welcome | |
William Lowe | Replace fx-layout with tailwind equivalent - unit-dropdown | |
MINH THO DUONG | Replace fx-layout with tailwind equivalent - footer | |
MINH THO DUONG | Replace fx-layout with tailwind equivalent - inbox-comment | https://github.com/s223749059/doubtfire- web/commit/f0c132a9b416e8b04f4573740190e5f47b9bd6c5 |
MINH THO DUONG | Replace fx-layout with tailwind equivalent - user-badge | |
MINH THO DUONG | Replace fx-layout with tailwind equivalent - staff-task-list | https://github.com/s223749059/doubtfire- web/commit/0c1ad0e7a5321c078f5ef44c32908d2363d08df8 |
Satika Jayawardena | Replace fx-layout with tailwind equivalent - footer | |
Satika Jayawardena | Replace fx-layout with tailwind equivalent - unit-dropdown | |
Satika Jayawardena | Replace fx-layout with tailwind equivalent - task-comment- composer | |
Satika Jayawardena | Replace fx-layout with tailwind equivalent - user-badge | |
Katrine Chan | Update Contract for doing more | |
Syed Yahyya Hashmi | Replace fx-layout with tailwind equivalent - task-comment- composer | |
YUHENG WANG | Replace fx-layout with tailwind equivalent - calendar-modal | https://github.com/AusBruce/doubtfire- web/commit/6cb60744135dda3d5deda9ee159a6348adfc001a |
Aidan Debernardi | Replace fx-layout with tailwind equivalent - task-assessment- comment |
Courseflow
Courseflow Overview, Goals, and Objectives
CourseFlow aims to assist students in planning and comprehending the requirements and structuring of university courses. Users can generate and adjust their CourseMap to account for changes. For instance, a student will be able to see their expected graduation date or complications that may arise if they complete units in a particular order or study load.
Courseflow Aims for Trimester
- Create a detailed design for the project.
- Create a document that justifies the need for the Courseflow product.
- Generate a project roadmap
- Begin implementation on approved designs.
Courseflow Deliverables
The main deliverable is to produce a detailed design and structured roadmap for Courseflow by the end of trimester 3.
Courseflow Description of Progress
-
CourseFlow Software Design Document
- Analysed previous work done for CourseFlow.
- Re-designed CourseFlow based on analysis and re-established requirements and created a software design document.
- After first review, updated software design document to treat CourseFlow as a new feature of OnTrack.
- Added an ERD to model the data and their relationships with each other and OnTrack as part of this new update.
-
University of Melbourne Course Planner Research Document
- Explored the UoM course planner to look at their features.
- Analysed data retrieved to see how it is structured for inspiration in CourseFlow’s data modelling.
-
Enhancement of the current ERD with further breakdown of the data models.
Courseflow Team Members and Contributions
Full Name | Trello Card Name | Evidence |
---|---|---|
Mark Enriquez | Create Software Design Documentation Draft | cmarktopher/ThothTech-Documentation- Website at CourseFlow-Software-Design- Documentation (github.com) |
Splash Kit
Splash Kit Overview, Goals, and Objectives
Splashkit is an all-purpose toolkit for beginners built in C++ and can be used with C++ and C#. Deakin University uses it to introduce students to programming through its easy-to-use functions.
As part of the Splashkit team, you will be responsible for expanding the toolkit functions, developing improved and innovative ways of working with Splashkit and creating educational documents and videos for students.
Splash Kit Aims for Trimester
See Card Status in Backlog for Additional details and Completed Research Cards. The following projects and tasks stated below are what we aim to work on this trimester.
SplashKit Arcade
-
Create an automated game download system for Arcade Machines
- The proposed system will use the Arcade-games Repo to check for updates in the game version and download the latest version
- Games should have a Publish tag or similar to be loaded to the main menu.
- Have a secondary game menu for test games/non-published.
-
Updates to Arcade Menu
- Presently the Arcade machine uses Emulation Station forked from the RetorPI project version. https://github.com/thoth-tech/ArcadeMenu
- Create a new system for test games
- See if we can modify the EM menu for the following
- Trigger Game download scripts
- Additional modes
- Kiosk – Only show Published Games (for Events)
- Normal – Has Published and Test Systems
- Via script or other method have games exit after 10 min’s if there’s been no key Input
-
Stretch Goals/Interesting ideas
-
Consider a local Test Mode – Arcade Switches to AP mode displays connection info (random password) and has a web server student can drop new game build on and tests. The machine Would delete the game and reset after a period of time.
- Security would be a big consideration on this idea as it would be easy to abuse and not much in the way of logging vs official upload via Git Hub.
-
Implement a voting system on the Arcade Machine to give meaning to the star ranking.
-
Arcade Games – GitHub Actions
- Correct C# for Arm (this should be done; see trello card for
Status)
- Dotnet does not run correctly in the Emulated PI environment used for C++ games. New Action was created for compiling dotnet vs Arm games small bug in checking logic to be fixed before merge.
- Update Arcade – Games Readme
- Updated Controle to correctly reflect the Arcade machine
- Updated on new Compiling Process
- Instruct that All Game Assets must go into the Resources Folder (Action does try to capture root directories like images, sound, etc.) This includes level maps etc., or they won’t upload to Arcade Machines
- Implement Versioning for compiled games.
- A simple version file in the games directory receives an incremental bump every time the game is updated so the Arcade knows to get the latest version.
- This file can also contain additional information for the Arcade Menu. (Author, Publisher, other)
- Retrieve and Compile Games from SubModules
- Formalise Process with Deakin Staff on how Students from Classes like SIT102 or SIT771 can
upload games to the Arcade Machine
- Barrier will be using GitHub for new students, especially as this will use submodules.
- Consider creating scripts to automate the linking of sub-modules
- Correct C# for Arm (this should be done; see trello card for
Status)
-
Move All games to Sub-Modules
- Games made by Toth-Tech should be moved to their own repo, (or we can consider a separate Company if we don’t want to crowd the Githubn too Much)
- This will potentially allow Linking to Other Student Repos.
-
Splashkit Expansion
-
Priority Items Deployment Packages
- Debian Package.
- Nuget Package.
- Brew Package.
-
Check for Further Functions from Swin gamesto port into splashkit.
-
Fix Python Compatibility
- Python can no longer be used to code games with SplashKit. Previous research indicates a change with v3.8; see here.
-
Look at Adding AI function to SplashKit
- Can look at LLMs like ChatGPT
- Similar Functions to https://scikit-learn.org/
-
Dev Container Mac
- As most SplashKit Programs have a visual component and not browser-based based, we need a way to view the program’s window output. This is normally accomplished by xserver forwarding and sound via pulse audio.
- Mac xquartz is a xserver compatible with Mac Instaitl Tests container that can be setup and run x based programs e.g. xeyes but there is a compatibility issue with the graphics system in SplashKit. Further investigation is needed.
-
SplashKit.io
- Publish Astro Starlight site
- The Aim will be to convert Splashkit.io to our new webpage platform.
- Advise getting a subdomain like new.splashkit.io (or similar) setup for testing, and Transition will just be a DNS change then
- Thorough documentation of the new site is needed
- The Existing SplashKit.io may have a function to auto-update the API pages based on functions added to SplashKit. This should be investigated and replicated in the new site.
- Publish Astro Starlight site
-
Game Engine
- Project Setup: Create a streamlined project setup process for easier onboarding and development.
- Camera System: Implement a flexible and efficient camera system to handle different views and perspectives.
- Transforms: Develop a system for handling object transformations like translation, rotation, and scaling.
- Event System: Design an event system for handling game events in an extensible manner.
- Input Handling System: Implement a robust input handling system to manage user interactions.
-
Documentation Migration
- As the company is moving to a new documentation repository a data Migration will need to occur between the existing documentation repo and the new one.
- Work with company operations to plan the migration, but the SplashKit team needs to move the existing document over (also consider it a good opportunity to clean house and archive older information)
SplashKit Tutorials
Backlog
-
Game Development
- High Level Design
- Complete Demo Game
-
- Creating a 2D “Metroidvania” Game - Enemies and Combat
-
- Creating a 2D “Metroidvania” Game - Level Design and Progression
-
- Creating a 2D “Metroidvania” Game - Polishing and Finalization
-
- Creating a 2D “Metroidvania” Game - Camera Movement, Parallax and Depth
-
Tutorials and Documentation
- Understanding SplashKit Manager - (SKM) Shell Commands - Tutorial
- Project Structure and Initialization
-
Roadmap (Future Plans)
- Integrate different stages of “Creating a 2D ‘Metroidvania’ Game” for cohesiveness and consistency.
- Complete remaining tutorials
- Plans for new tutorials, ensuring total Splashkit Functionality
SplashKit Deliverables
Our main deliverables will be based on story points completed in the Trello tasks; we are aiming for students to complete between 5-6 Story points every 2-week sprint.
SplashKit Description of Progress
Arcade
- New game “Single Combat” (tetris style game) started with completed Design Proposal.
- Current arcade games being tested for bugs and potential improvements.
- Changes in progress for Runner Dash and Asteroids.
- Video created for a tutorial on setting up environment for contributing (SplashKit specific) - currently awaiting mentor review.
Tutorials
- Master list of tutorials (created/proposed/needed) created.
- 1 tutorial awaiting mentor review.
- 4 tutorials currently in peer review.
- 3 tutorials in progress.
Starlight SplashKit Website
- Emoji’s removed (although this was made redundant from upstream changes later on)
- 3 updates to graphics/functionality/layout awaiting mentor review.
- Backlog tasks created from pdf provided by upstream development team
- 3 updates to graphics/functionality/layout in progress.
SplashKit Online IDE
- Spike reports on Viability of continuing this project have been completed and approved.
- 9 updates currently in peer review.
- 5 updates in progress.
Team Members and Contributions
Full Name | Trello Card Name | Evidence |
---|---|---|
BRYAN TAING | Create an video ( or series of gifs) to make a tutorial of how to set up git environment for students wishing to contribute to Splash Kit. | |
BRYAN TAING | Create backlog tasks | |
BRYAN TAING | Create Design Proposal for Single Combat (tetris style game) | |
BRYAN TAING | Asteroids: Add a sound effect when the ship crashed into the Asteroid | |
BRYAN TAING | 7. Creating a 2D “Metroidvania” Game - Camera Movement, Parallax and Depth | |
BRYAN TAING | Build an initial list of tutorials | |
BRYAN TAING | Move Installation Guides section to just above Troubleshooting | |
BRYAN TAING | Update Landing Page Footer and Add Facebook Icon | |
BRYAN TAING | Update some graphics on the landing page | |
BRYAN TAING | Remove Emoji’s from all parts that have them | |
Frankie Veri | Create an video (or series of gifs) to make a tutorial of how to set up git environment for students wishing to contribute to Splash Kit. | |
Frankie Veri | Asteroids: Add a sound effect when the ship crashed into the Asteroid | |
Frankie Veri | Move Installation Guides section to just above Troubleshooting | |
Frankie Veri | Create Backlog tasks | |
CASTIEL MORDRED MCINTOSH | Develop basic art for Single Combat Game | |
CASTIEL MORDRED MCINTOSH | Create Design Proposal for Single Combat (tetris style game) | |
Jaron Chen | Adding Difficulty settings to Runner Dash | |
Jaron Chen | Test the arcade games for bugs/issues and potential improvements | |
Georgie O’Malley | Sprite Animation - Tutorial | |
Wenzong Xuan | 2. Creating a 2D “Metroidvania” Game - Project Structure and Initialization | |
Wenzong Xuan | Using JSON Files - Tutorial Proposal | |
Wenzong Xuan | 10. Creating a 2D “Metroidvania” Game - Level Design and Progression | |
Wenzong Xuan | 7. Creating a 2D “Metroidvania” Game - Camera Movement, Parallax and Depth | |
Sean Boettger | 2. Creating a 2D “Metroidvania” Game - Project Structure and Initialization | |
Sean Boettger | Build an initial list of tutorials | |
Sean Boettger | Add full project download/upload | |
Sean Boettger | Update SplashKitOnline Repository Readme | |
Sean Boettger | Fix polling based input | |
Sean Boettger | Add file management/browser for internal FS | |
Sean Boettger | Formalize make process for Emscripten port | |
Sean Boettger | Setup WebIDL binding | |
Sean Boettger | Automate WebIDL binding generation (prototype level) | https://github.com/WhyPenguins/splashkit- core/tree/webidlbinding-generation |
Sean Boettger | Incorporate SplashKit WASM build into SplashKitOnline | |
Sean Boettger | Add Javascript execution to SplashKitOnline | |
Sean Boettger | Spike Report - Viability of continuing with SplashKit Online | |
TAIMING XU | Update Landing Page Footer and Add Facebook Icon | |
TED WANG | Update some graphics on the landing page | |
Ayan Masood | Remove Emoji’s from all parts that have them |