I created the backend API for configuring the bot and saw a disconnect between the code base of the API and the libraries for controlling the hardware.
I restructured the project as follows:
Services: contains the core logic, each representing a functionality. For example, a services for controlling motors and a service for transcription.
Controllers: provides an interface for services through a RESTful API.
Frontend: any interface for the user to access the backend, such as a web interface or wireless controllers.
Services and controllers make up the backend. This allows us to easily expand the robot with more services or experiment with different communication methods, keeping the interface (controllers) consistent.
Advantages
Easily add a functionality with a service
Test different control methods (web app, wireless controller, different displays, etc)
Debugging and monitoring features can be easily added
Restructured project to be API centric.
I created the backend API for configuring the bot and saw a disconnect between the code base of the API and the libraries for controlling the hardware.
I restructured the project as follows:
Services: contains the core logic, each representing a functionality. For example, a services for controlling motors and a service for transcription.
Controllers: provides an interface for services through a RESTful API.
Frontend: any interface for the user to access the backend, such as a web interface or wireless controllers.
Services and controllers make up the backend. This allows us to easily expand the robot with more services or experiment with different communication methods, keeping the interface (controllers) consistent.
Advantages
closes #12