diff --git a/package-lock.json b/package-lock.json index ca6fd290..b78d2984 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,13 +11,13 @@ "@astrojs/netlify": "^3.0.0", "@astrojs/starlight": "^0.13.0", "astro": "^3.6.0", - "prettier": "^3.1.1", "sharp": "^0.32.3", "starlight": "^0.3.9", "starlight-blog": "^0.4.0" }, "devDependencies": { - "markdownlint": "^0.31.1" + "markdownlint": "^0.31.1", + "prettier": "^3.2.5" } }, "node_modules/@ampproject/remapping": { @@ -4990,9 +4990,10 @@ } }, "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -10603,9 +10604,10 @@ } }, "prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==" + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true }, "prismjs": { "version": "1.29.0", diff --git a/package.json b/package.json index b7001a2c..b23feabb 100644 --- a/package.json +++ b/package.json @@ -17,12 +17,12 @@ "@astrojs/netlify": "^3.0.0", "@astrojs/starlight": "^0.13.0", "astro": "^3.6.0", - "prettier": "^3.1.1", "sharp": "^0.32.3", "starlight": "^0.3.9", "starlight-blog": "^0.4.0" }, "devDependencies": { - "markdownlint": "^0.31.1" + "markdownlint": "^0.31.1", + "prettier": "^3.2.5" } } diff --git a/public/CompanyStructureT12024.png b/public/CompanyStructureT12024.png new file mode 100644 index 00000000..e7d61478 Binary files /dev/null and b/public/CompanyStructureT12024.png differ diff --git a/src/content/docs/companywidesubmissions/company-structure-and-objectives-for-2024-TRIMESTER-1.md b/src/content/docs/companywidesubmissions/company-structure-and-objectives-for-2024-TRIMESTER-1.md new file mode 100644 index 00000000..fe5e2d15 --- /dev/null +++ b/src/content/docs/companywidesubmissions/company-structure-and-objectives-for-2024-TRIMESTER-1.md @@ -0,0 +1,498 @@ +--- +title: Thoth Tech - Company Structure and Objectives for 2024 TRIMESTER 1 +--- + +## 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 personalised 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 1, 2024. + +This trimester, Thoth Tech will be running the three main products: Company Operations, OnTrack, and +SplashKit. + +## Leadership Team + +### Company Board + +- Glory Lee, Acting Director & Product Owner (Company Operations) +- Andrew Cain, Product owner (OnTrack & SplashKit) + +### Product Mentors + +- OnTrack - Nebula Alam +- OnTrack - Daniel Maddern +- SplashKit - Olivia McKeon +- Company Operations & SplashKit - Quoc Tien Pham + +### Student Leads + +- OnTrack, Communication Lead & Student Lead - Satika Jayawardena +- OnTrack, Code Lead & Student Lead - Josh Kilinc +- SplashKit, Code Lead & Student Lead - Aditya Parmar +- SplashKit, Code Lead & Student Lead - Sean Boettger +- Company Operations, Coordination Lead & Student Lead - Eisen Lai + +## Trimester Goals and Objectives + +This trimester, Thoth Tech aims to achieve the following: + +### Goal 1: Foster employees' growth in a safe and supportive environment to equip them with the technical and soft skills needed upon graduation + +- Encourage initiative and collaboration in taking up tasks and completing them. +- Standardise processes of using Trello, GitHub, and Peer Reviews. +- Create comprehensive documentation of different product aspects to facilitate learning. +- 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 products based on the company board’s vision + +- Refine existing features of the Thoth Tech products and extend the platforms. +- Deploy important bug fixes and performance and usability enhancements. +- Maintain security guidelines and industry best standards. +- Innovate and contribute new feature and improvement ideas through well- researched documentation + to drive the continuous development of the product to fulfill emerging user needs. + +## Company Structure and Projects Overview + +### Company Structure + +![org chart](/CompanyStructureT12024.png) + +### Projects Overview + +#### Project 1: Company Operations + +#### Overview, Goals, and Objectives + +This team oversees the entire operation of Thoth Tech, with a focus on simplifying processes and +enhancing clarity. Our goal is to streamline the onboarding experience, empower senior staff by +enriching knowledge, and implement policies that prioritise the well-being of all employees. In the +immediate future, our goal is to develop comprehensive documentation, refine workflows, and +establish efficient processes to elevate the company's performance. Looking ahead, we aspire to +enforce compliance with established policies and ensure the effective utilisation of the +documentation website as a centralised repository for all project- related materials. + +#### Aims for Trimester + +- Enforce created policies. +- Add a new feature to the documentation website – feedback section. +- Update the product list and improve the content and format standardisation of all files on the + documentation website. +- Enrich various functions of the blog. +- Oversee the entire operation of the company. + +#### Deliverables + +#### Trimester Deliverables + +1. A feedback section feature will be implemented to collect staff ideas or feedback on the + documentation website. +2. Enrich the functionality of the blog page. +3. Ensure employee adherence to the created policies and guidelines. + +#### Long Term Deliverables + +1. Ensure that the documentation website is being utilised to store all project-related + documentation. +2. Make the onboarding process as smooth and clear as possible for all the employees. + +#### Project Members + +| Member Name | Role | Junior/Senior | +| ----------------------------- | --------------------------- | ------------- | +| Eisen Lai | Student Lead (Coordination) | Senior | +| Shiyu Chen | Team Member | Senior | +| Shyama Chandrashekaran Pillai | Team Member | Junior | +| Yuyang Yang | Team Member | Junior | +| Minu Nediyapalackal Sunil | Team Member | Junior | + +### Project 2: OnTrack + +#### Ontrack Overview, Goals, and Objectives + +OnTrack, also known as Doubtfire, is an innovative Learning Management System (LMS) tailored for +skill-based course delivery. This platform facilitates the connection between tutors and students, +primarily at Deakin University and other global institutions. The overarching goal of OnTrack is to +enhance the educational experience by providing a structured, efficient, and interactive learning +environment. This system aims to improve student engagement, learning outcomes, and the overall +teaching and learning process, benefiting both students and educational staff. + +#### OnTrack Aims for Trimester + +##### OnTrack Bug Fixes + +- Resolve issues in Doubtfire API's CI/CD pipeline +- Address Test Attempts API malfunction +- Rectify importing tasks issue +- Resolve student calendar glitches +- Allow user creation using add user interface +- Fix notifications for students + +##### Tutor Feedback Enhancements + +- Merge latest changes into the system +- Merge latest changes into the system +- Develop model for improved feedback functionality in the frontend +- Modify Task Definitions to integrate feedback enhancements +- Modify Unit Chair admin page to accommodate stages of feedback enhancement + +##### Numbas Integration + +- Create unit tests for Numbas integration +- Adapt backend API and database to utilize TaskComments for storing test data +- Incorporate Numbas tests into the OnTrack platform +- Implement test component into submission workflow + +##### Frontend Migration + +- Complete migration of components from CoffeeScript and Angular.js to TypeScript and Angular + +##### Urgent Enhancements + +- Add zip file upload functionality +- Implement Target Grade history feature +- Introduce students lock and unlock group capability +- Support for Promela file format +- Identify and reject encrypted PDFs +- Incorporate local draft comments feature + +##### CourseFlow + +- Implement CourseFlow features in the frontend and backend + +##### Allow Visitors + +- Create backlog tasks for enabling visitor access + +##### Incorporate Multiple Organisations on Single OnTrack Server + +- Extend backend to manage multiple organisations +- Add authentication and authorisation measures to protect data +- Create frontend interfaces for organisation management +- Develop test cases + +##### Improvements + +- Create documentation backlog for the backend +- Differentiate target dates by grade chosen by the student +- Integrate password management into the OnTrack database +- Create new visualisation for target grade and date chart +- Migrate the CSV result model +- Add roll over task sheet and resources feature to Task Definition +- Improve the research spike on Panopto video integration + +##### Documentation Website + +- Setup the Astra website for documentation + +##### Authentication Module + +- Create a backlog for the development of an authentication module + +##### Tutor Times + +- Implement the backend, frontend, and unit tests for Tutor Times +- Redesign the Task Completion box plot for improved usability + +##### Incorporate Content in OnTrack + +- Design a feature to host content on OnTrack +- Implement the backend, frontend, and test cases for this feature +- Integrate this system into OnTrack and adjust the database + +##### Staff Grant Extensions + +- Implement frontend, backend, and unit tests for Staff Grant Extensions + +##### Peer review pull requests made by previous contributors and peers + +### Deliverables + +#### Trimester Deliverables + +1. Tutor Feedback Enhancements +2. Numbas Integration + +#### Long Term Deliverables + +1. OnTrack Bug Fixes +2. Frontend Migration +3. Urgent Enhancements +4. CourseFlow +5. Allow Visitors +6. Incorporate Multiple Organisations on Single OnTrack Server +7. Improvements +8. Documentation Website +9. Authentication Module +10. Tutor Times +11. Incorporate Content in OnTrack +12. Staff Grant Extensions + +#### Project Members + +| Member | Role | Junior/Senior | +| ---------------------------------------- | ----------------------------- | ------------- | +| Josh Kilinc | Student Lead (Code) | Senior | +| Satika Jayawardena | Student Lead (Communications) | Senior | +| Minh Tho Duong | Team Member | Senior | +| Jayani Vimukthika Vithanage | Team Member | Senior | +| Withanage Samadhi Dhananjana Weerasingha | Team Member | Senior | +| Taiming Xu | Team Member | Senior | +| Bowen Yan | Lead Member | Senior | +| Samuel William Rolfe | Team Member | Junior | +| Jake Edward Mansfield | Team Member | Junior | +| Joshua Luke Bourquin | Lead Member | Junior | +| Prabhjot Singh | Team Member | Junior | +| Riley Cameron Helmore | Team Member | Junior | +| Darren Marchiano Sunandar | Team Member | Junior | +| Mounika Angadipeta | Team Member | Junior | +| Ethan Mark Holley | Team Member | Junior | +| Zhongyu Zhang | Team Member | Senior | +| Harshita Narendra Shroff | Team Member | Senior | +| Riley Ambrose Shannon | Team Member | Junior | +| Daniel Piscioneri | Team Member | Junior | +| Jordan Brown | Team Member | Junior | +| Tenglei Wang | Team Member | Senior | + +### Project 3: Splash Kit + +#### Splash Kit Overview, Goals, and Objectives + +SplashKit is a simple-to-use programming framework specialising in 2D games to help teach students +introductory programming through the development of games. The framework is primarily coded in C++ +but can be used in C++, C#, Python, Pascal, and more recently JavaScript. + +#### Projects + +- Arcade Machines: The university has purchased four Arcade machines that can be used to showcase + games built-in SplashKit. The units run on a Rasberry Pi 3B+. Giving constraints and a target + platform development. Our goal is to have this platform ready for students to show games developed + using SplashKit by the Thoth Tech SplashKit team. In the long term, the aim is to have this + platform available for first- year students with an easy-to-use process to upload their and test + their games. +- SplashKit Website: The new SplashKit website, powered by the Starlight framework, represents a + significant leap forward in providing an enriched and user-friendly experience for developers and + learners alike. This gives us a platform to include the existing tutorials and guides linked to + SplashKit. +- SplashKit Expansion: SplashKit framework was derived from a project called Swingame; in the + original port, not all functions were moved across. The team will develop a roadmap reviewing what + functions can be ported across and investigate new functions that can be added. +- SplashKit Online: A newer project where we give students access to an IDE in a web browser and the + ability to run their code in a web browser. Kickstarted last trimester as prototype, we hope to + develop it further. + +#### Aims for Trimester + +Trimester Aims for SplashKit Development: + +- Polish and refine SplashKit Online to ensure it functions as a more finished product, providing a + seamless online experience for developers. Consider integrating it with SplashKit.io to enhance + accessibility and visibility. +- Initiate the creation of a NuGet package for SplashKit libraries, ensuring that the DLL libraries + are properly organized and copied to respective system folders when the package is added to a + project. +- Restructure existing tutorials and guides to align with the updated SplashKit package, ensuring + that documentation reflects the latest features and improvements, and enhancing the learning + experience for developers. +- Establish a foundational structure for arcade game automation, providing a framework that + simplifies future contributions from other developers. This includes setting up a clear directory + structure and documentation. +- Implement showcase sliders on the SplashKit website, featuring visually engaging presentations of + games developed with SplashKit. This will highlight the diversity and creativity of projects and + attract new users to the platform. +- Develop tutorials and guides on Raspberry Pi GPIO functionalities supported by SplashKit, offering + practical examples and step-by-step instructions. + +#### Deliverables + +##### SplashKit Online + +Trimester Deliverables: + +1. Enhanced Project Management: + +- Implement in-browser project save/load functionality for seamless project management. +- Introduce the capability to export projects to a single HTML file, ensuring portability and easy + sharing. + +2. Support for Multiple Code Files: + +- Enable the creation and management of multiple code files within the platform, allowing users to + organize and structure their projects more effectively. + +3. Increased SplashKit Functionality Support: + +- Port and enable the usage of even more SplashKit functionality in the browser, such as networking + and advanced terminal functionality. + +Long Term Deliverables: + +1. Advanced Code Editing/REPL Functionality/Breakpoints and Variable Watch Windows: + +- Elevate code editing and REPL (Read-Eval-Print Loop) functionality to provide a more efficient and + user-friendly coding experience. +- Integrate breakpoints for precise code execution control, facilitating debugging and + troubleshooting. +- Implement variable watch windows to enable users to monitor and analyse the values of variables + during program execution. + +2. Stretch Goal: Extended Language Support: + +- Aim to provide the functionality to compile C++ code directly within the browser environment. + +#### Arcade + +Trimester Deliverables: + +1. Internet Connectivity on Arcade Machines: + +- Establish a reliable internet connection on arcade machines, specifically those running on + Raspberry Pi 3B, utilizing the University EduRoam WiFi network for seamless online + functionalities. + +2. API/Code/Interface for Arcade Machine Controls: + +- Develop a versatile API, codebase, and user interface dedicated to arcade machine controls, + providing a standardized and customizable platform for game interaction. + +3. Automatic Game Termination: + +- Introduce a feature to automatically exit games after a specified period of inactivity, such as 10 + minutes, to conserve resources and maintain a smooth gaming environment. + +Long Term Deliverables: + +1. Automated Game Deployment: + +- Streamline the process of deploying games from GitHub repositories to arcade machines remotely, + ensuring efficiency and ease of updates. + +##### SplashKit.io Website + +Trimester Deliverables: + +1. Dead Link Resolution: + +- Identify and rectify dead links on the ported website to ensure a smooth and uninterrupted + browsing experience for users seeking information on SplashKit. + +2. Contributor Documentation: + +- Create a detailed document outlining the process of contributing to the Starlight website, + SplashKit, SKM, and other related tools, fostering community engagement and collaboration. + +3. Tutorial Refinement and Restructuring: + +- Refine and re-structure existing tutorials and guides to improve clarity, accessibility, and + usability, ensuring a smoother learning experience for developers of all skill levels. + +4. Showcase or Gallery Page: + +- Implement a showcase or gallery page featuring games developed by students, using sliders or other + visually engaging formats to highlight the creativity and diversity of projects. + +Long Term Deliverables: + +1. Enhanced API Reference: + +- Improve the API reference section by adding additional examples of usage, providing developers + with comprehensive and practical insights into SplashKit functionalities. + +2. Showcase Videos: + +- Produce showcase videos for existing games developed with SplashKit, offering a multimedia + perspective on the capabilities and potential of the framework to attract and inspire new + developers. + +3. Raspberry Pi GPIO Functionality Guide: + +- Develop a dedicated guide/tutorial on Raspberry Pi GPIO functionality supported by SplashKit, + providing step-by-step instructions and examples for developers interested in leveraging this + capability. + +##### SplashKit Expansion + +Trimester Deliverables: + +1. NuGet Package Integration: + +- Incorporate SplashKit libraries into a NuGet package to facilitate seamless integration with + projects, ensuring that DLL libraries are copied to the respective system folders upon package + addition. + +2. 'skm linux install' Bug Fix: + +- Address and resolve the existing bug in the 'skm linux install' command, specifically removing any + error messages that occur at the start of the installation process for a smoother user experience. + +3. SDL Version Updates: + +- Keep SplashKit up-to-date by updating the SDL (Simple DirectMedia Layer) versions to leverage the + latest features, enhancements, and bug fixes, ensuring compatibility with modern development + environments. + +4. 'skm test' Command Implementation: + +- Introduce a 'skm test' command that allows users to perform comprehensive testing of C++ and .NET + applications with SplashKit installation, ensuring the stability and correctness of the + integration. + +Long Term Deliverables: + +1. Homebrew Package Creation: + +- Develop a Homebrew package for SplashKit to simplify the installation process on macOS, providing + users with an easy and standardized method for incorporating SplashKit into their development + environment. + +2. Debian Package Creation: + +- Create a Debian package for SplashKit to streamline the installation process on Debian-based Linux + distributions, making it more accessible to a wider range of developers and users. + +3. Pacman Package for MSYS2: + +- Generate a Pacman package for MSYS2, ensuring compatibility and accessibility for users utilizing + this package manager on Windows systems. + +#### Project Members + +| Member | Role | Junior/Senior | +| ------------------------ | ------------------- | ------------- | +| Aditya Parmar | Student Lead (Code) | Senior | +| Sean Boettger | Student Lead (Code) | Senior | +| Ashley Thompson | Team Member | Senior | +| William Robert Saunders | Team Member | Junior | +| Wenzong Xuan | Team Member | Senior | +| Oscar Harris | Team Member | Junior | +| Hayley Hughes | Lead Member | Junior | +| Satyam Raina | Lead Member | Senior | +| Jonathan James Tynan | Team Member | Junior | +| Avenue Joju | Team Member | Senior | +| Jake Andrew Oxley | Team Member | Junior | +| Ben Mathew Thomas | Team Member | Senior | +| Amos Saji | Team Member | Senior | +| Edwin Shibu | Team Member | Senior | +| Nidhisha Ravindra Pahade | Team Member | Senior | +| Khushi Laddi | Team Member | Senior | +| Sharvani Kandala | Team Member | Junior | +| Kartik Kaushik | Team Member | Junior | +| Castiel Mordred Mcintosh | Team Member | Senior | +| Thomas James Shanahan | Team Member | Junior | +| Wenxuan Song | Team Member | Senior | +| Ka Chun Lam | Team Member | Junior | +| Jess Balsillie | Team Member | Junior | +| Zitian Li | Team Member | Senior | +| Litesh | Team Member | Senior | +| Mark Timothy Heath | Team Member | Junior | +| Franco John Veri | Team Member | Senior | +| Oliver Exell-Bruce | Team Member | Junior |