# ADEPT Design Document
*Last modified Feb. 13th 2025 by Christopher Bell*

# ADEPT (Advanced Documentation and Educational Platform Toolkit)
ADEPT is an IMI (Interactive Multimedia Instruction) platform for creating 2D and 3D based interactive learning.

## Structure
- Client: The part that end users interact with that loads lessons, etc
- CreationKit: Restricted feature inside the client that allows for creating lessons
- Core: Core functionality of the toolkit (Code, etc)

## Definitions:
- Lesson - A lesson holds assets, data, and "Pages" that comprise the whole of the content.
- Page - The main component of a "Lesson" which contains logic and interactions.

## Notes
- The creation toolkit will create a "LessonName.adept" (or similar) file that is a self contained archive (possibly encrypted to prevent tampering) that contains all data relating to a lesson such as all assets (pics, vids, 3d scenes, etc) and the lesson structure.
- Pages need "Views" or "Components" or something similar that are basically logic/UI/etc that define what kind of interactions a page can have (Think multiple choice questions for 2D and Interacting with 3D parts for 3D).
- Lessons will have some sort of logic tied to them that defines how to complete the page. This may be in the form of a custom state machine type thing that defines what interactions need to be completed.
- There also will just be visual UI components like labeling 3D, on screen text, buttons, etc
- The main goal for 3D is to utilize the power of GLTF files for entire 3D scenes and taking individual parts of the models within and creating some kind of "Parts List" controller so that interacting with 3D components is easier and models don't have to be manually broken apart.

## Development tools
- Godot 4.4 beta (.NET)
- C#
- Third Party:
- - CogwheelLib

## Roadmap
- [ ] Client Application
    - [ ]

- [ ] Creation Toolkit
    - [ ] 

- [ ] Cloud Services
	- [ ] ADEPT Client can have authentication from a self-hosted cloud service
	- [ ] Full management dashboard with features like CMS (Classroom management system)
	- [ ] ADEPT Client can download lessons from the cloud and connect to the management dashboard
