https://github.com/UTK-ASE-DDAI/docs-and-planning/tree/main/README.md
A Meta-Repository for collecting documents and artifacts required for submission on Canvas.
This is a not a "living document", but may be updated as a "summary analysis" of work performed elsewhere.
Project management will be loosely based around SCRUM, in a structure that best fits our team, and at the guidance of our instructor.
GitHub will be our primary project management apparatus, utilizing the issues system, project boards, and iteration timelines. These systems closely resemble traditional SCRUM mechanisms with mild deviations.
-
Automatically generate detailed NPCs with:
- names
- backgrounds
- traits
- dialogue options
-
End-user web-based application for broad-reaching user accessibility.
-
A resource-based server for API interaction.
-
Future Work
- Customizable parameters to tailor NPCs to specific campaigns.
-
Expanded Requirements found here
-
Web-based end-user application utilizing either
react
orsvelte
. -
Resource-based HTTP API server utilizing
FastAPI
,MongoDB
, andElasticSearch
. -
A centralized data model defined as
Pydantic
models, describing data-communication structure. -
A retrieval-augmented generation platform. (This is still not well known to the team, further research is required before documentation will be available here.)
-
Further design prospects will follow and iterative development practice, as well as LEAN principles.
- Eliminate Waste
- Amplify Learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build integrity in
- Optimize the whole
-
Iterative work will be document thoroughly via. GitHub projects, issues, and commits.
The overall testing strategy involves the following:
-
Follow Test-Driven Development where it makes sense, with reasonable exceptions.
-
Take full advantage of GitHub Actions to perform automated tests on-push-or-merge.
-
Use static analysis apparatus available to the development team to minimize semantic bugs before they reach source control.
-
Localized unit testing by utilizing common-sense inversion-of-control principles, allowing for dependency injection of mock-systems during logic testing of independent components.
-
Full-depth integration testing between systems facilitated with the help of
docker
during local-testing phases, andazure
during final production testing. -
The Web-Application will be tested internally using
jest
andsupertest
. (This is subject to change based on team requirements.) -
The Resource Server will be tested internally using
pytest
andFastAPI.TestClient
. (This is subject to change based on team requirements.) -
Per-feature manual testing may be design and followed where necessary.
-
Final production testing may occur at certain documented intervals as seen fit by the team, and at the guidance of our instructor.
-
All testing strategy points are subject to change at the guidance of our instructor.
Deployment will require a complete technology stack that includes:
-
The Resource Server served from a WSGI gateway instance.
-
The Web-Application served from a static web-host.
-
A MongoDB instance running on a local-or-remote host.
-
An ElasticSearch instance running on a local-or-remote host.
Future work includes deployment support via. docker
.
-
Subject to approval by our instructor, ongoing development and maintenance will occur in line with the above mentioned project management strategy.
-
At this time, maintenance beyond the scope of this UTK course has not been discussed by the team. At present, the maintenance strategy is inline with the development strategy.