Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Architecture] - Migrate to FastAPI to Expand Functionality #52

Open
miguelcsx opened this issue Aug 6, 2024 · 0 comments
Open

[Architecture] - Migrate to FastAPI to Expand Functionality #52

miguelcsx opened this issue Aug 6, 2024 · 0 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@miguelcsx
Copy link
Owner

Description

The use of the Discord API is limited, and the tool has the potential to grow significantly if it is developed as a command API instead of being confined to just a Discord bot.

Background

Currently, we have a well-documented and efficient Discord bot that performs various commands. However, we believe that by externalizing our commands, we can enhance the tool's versatility and usability across different applications beyond Discord.

Proposal

  1. Abstract Command Logic: Refactor the existing command logic to be independent of the Discord bot implementation.
  2. Create a Command API: Develop a RESTful API (or another suitable architecture) to expose the commands for use in other applications.
  3. Documentation and Examples: Provide comprehensive documentation and examples for using the command API in various contexts.
  4. Backward Compatibility: Ensure that the Discord bot continues to function seamlessly with the new command API.

Benefits

  1. Increased Usability: Allows the commands to be integrated into various platforms and applications, not limited to Discord.
  2. Enhanced Flexibility: Developers can leverage the command API to create custom integrations and workflows.
  3. Future-Proofing: Prepares the tool for potential expansions and integrations with other services and platforms.

Potential Challenges

  1. Refactoring Effort: Significant refactoring might be required to decouple the command logic from the Discord bot.
  2. API Design: Designing a robust and secure API that can handle the commands efficiently.
  3. Testing and Maintenance: Ensuring thorough testing of the new API and maintaining backward compatibility with the existing bot.

Conclusion

By expanding our command functionality beyond the Discord bot and creating a versatile command API, we can significantly increase the tool's reach and utility, opening up new possibilities for integration and growth.

@miguelcsx miguelcsx added the help wanted Extra attention is needed label Aug 6, 2024
@miguelcsx miguelcsx self-assigned this Aug 6, 2024
miguelcsx added a commit that referenced this issue Aug 6, 2024
- added new package to start the migration
miguelcsx added a commit that referenced this issue Aug 6, 2024
- added new package to start the migration
ElCabris pushed a commit that referenced this issue Aug 12, 2024
- added new package to start the migration
miguelcsx added a commit that referenced this issue Aug 16, 2024
- added new package to start the migration
miguelcsx added a commit that referenced this issue Aug 29, 2024
- added some models and schemas

- still using sqlachemy
miguelcsx added a commit that referenced this issue Aug 30, 2024
- added some models and schemas

- still using sqlachemy
miguelcsx added a commit that referenced this issue Aug 31, 2024
- added some models and schemas

- still using sqlachemy
miguelcsx added a commit that referenced this issue Aug 31, 2024
- re-design the models to adapt new workflow
miguelcsx added a commit that referenced this issue Aug 31, 2024
- re-design the models to adapt new workflow
miguelcsx added a commit that referenced this issue Aug 31, 2024
- re-design the models to adapt new workflow
miguelcsx added a commit that referenced this issue Sep 2, 2024
- added new package to start the migration
miguelcsx added a commit that referenced this issue Sep 2, 2024
- added some models and schemas

- still using sqlachemy
miguelcsx added a commit that referenced this issue Sep 2, 2024
- re-design the models to adapt new workflow
miguelcsx added a commit that referenced this issue Sep 2, 2024
- added new package to start the migration
miguelcsx added a commit that referenced this issue Sep 2, 2024
- added some models and schemas

- still using sqlachemy
miguelcsx added a commit that referenced this issue Sep 2, 2024
- re-design the models to adapt new workflow
miguelcsx added a commit that referenced this issue Sep 2, 2024
- updated the schemas in order to meet the new architecture

- cleaned the dependencies at
miguelcsx added a commit that referenced this issue Sep 2, 2024
- updated the schemas in order to meet the new architecture

- cleaned the dependencies at `requirements.txt`

- include code coverage for actions
miguelcsx added a commit that referenced this issue Sep 2, 2024
- updated the schemas in order to meet the new architecture

- cleaned the dependencies at `requirements.txt`

- include code coverage for actions
miguelcsx added a commit that referenced this issue Sep 2, 2024
- updated the schemas in order to meet the new architecture

- cleaned the dependencies at `requirements.txt`

- include code coverage for actions
miguelcsx added a commit that referenced this issue Sep 4, 2024
- updated the schemas in order to meet the new architecture

- cleaned the dependencies at `requirements.txt`

- include code coverage for actions
miguelcsx added a commit that referenced this issue Sep 10, 2024
- update also endpoints

- change api welcome message
miguelcsx added a commit that referenced this issue Sep 10, 2024
- update also endpoints

- change api welcome message
miguelcsx added a commit that referenced this issue Sep 26, 2024
- update also endpoints

- change api welcome message
miguelcsx added a commit that referenced this issue Sep 26, 2024
- made the rest api a package

- this could be useful when creating cli
miguelcsx added a commit that referenced this issue Sep 26, 2024
- made the rest api a package

- this could be useful when creating cli
miguelcsx added a commit that referenced this issue Sep 26, 2024
- made the rest api a package

- this could be useful when creating cli
miguelcsx added a commit that referenced this issue Sep 26, 2024
- updated pydantic

- created simple test for user model

- used a test database file, in memory doesn't work too well

- modified routing plural naming to singular
miguelcsx added a commit that referenced this issue Sep 26, 2024
- updated pydantic

- created simple test for user model

- used a test database file, in memory doesn't work too well

- modified routing plural naming to singular
miguelcsx added a commit that referenced this issue Sep 26, 2024
- updated pydantic

- created simple test for user model

- used a test database file, in memory doesn't work too well

- modified routing plural naming to singular
miguelcsx added a commit that referenced this issue Sep 26, 2024
- updated pydantic

- created simple test for user model

- used a test database file, in memory doesn't work too well

- modified routing plural naming to singular
miguelcsx added a commit that referenced this issue Sep 26, 2024
- updated pydantic

- created simple test for user model

- used a test database file, in memory doesn't work too well

- modified routing plural naming to singular
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant