semperai / amica

Amica is an open source interface for interactive communication with 3D characters with voice synthesis and speech recognition.
https://heyamica.com
MIT License
581 stars 92 forks source link

Refactor Backend with Abstract CustomBackend using AoP (Aspect Oriented Programming) and PropertyManager [WIP] #66

Open snowyu opened 6 months ago

snowyu commented 6 months ago

Refactor Backend with Abstract CustomBackend using AoP (Aspect Oriented Programming) and PropertyManager [WIP] - Not Yet Ready for Merge!

Description:

This pull request is part of our ongoing effort to refactor the backend services by introducing an abstract CustomBackend, leveraging a hierarchical factory pattern, specifically implemented using Aspect Oriented Programming (AoP) through 'custom-factory' package. I also incorporate JSONSchema definitions for UI elements management in React applications via rjsf (React JSon Schema Form). Additionally, I use the 'property-manager` library to manage and organize our back-end properties related to these services within a structured and consistent manner.

Motivation:

The refactoring is crucial due to growing complexity and difficulty managing various implementations across similar services like chatbots, text-to-speech systems, etc., within our application's backend architecture. By decoupling interface logic from concrete implementation details through the use of abstract interfaces, employing AoP techniques with 'custom-factory', and using property-manager to manage JSON Schema properties in a structured way

Implementation Status:

At present, this PR has completed initial setup work for integrating Aspect Oriented Programming (AoP) through the use of the custom factory pattern provided by 'custom-factory' package. This includes setting up abstract interfaces and factories that manage different products associated with each back-end service based on their configurations

WIP & Documentation:

Please note that this PR is a work in progress, meaning many sections are not yet fully working or documented. I encourage you to review the code changes carefully. If any questions arise, feel free to ask for clarification; I will do my best to provide a detailed explanation and address concerns promptly.

vercel[bot] commented 6 months ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
amica ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 22, 2024 11:32pm
kasumi-1 commented 6 months ago

Wow, this looks like a great start. Busy with christmas stuff so haven't had time to digest this yet, will review soon.