Do's
- Where possible use existing common and well-tested components and libraries.
- Use reliable and easily accessible components for project stack.
- Use clear and concise language when defining agent behaviors.
- Prioritize small modules over large monolithic god modules
- Document the purpose and functionality of every class, method, and function.
- Plan for ease of deployment, use, and maintenance from thes start.
- Where appropriate, containerize services to ensure consistency across different environments.
- Plan for unit tests often to ensure code quality and reliability.
- Prefer modern, clean, and visually appealing user interfaces, and only use sans-serif fonts.
Don'ts
- Don't reinvent the wheel; avoid creating custom solutions for problems that have established solutions.
- Avoid using obscure or poorly documented libraries.
- Don't overcomplicate agent logic; keep it as simple and straightforward as possible.
- Avoid tight coupling between components; strive for loose coupling to enhance maintainability.
- Don't neglect documentation; ensure all code is well-documented for future reference.
Project Specific Guidelines
- BME280 and LTR390-uv sensor and DS18B20 are all in scope as well as a small light sensor
- Sensor sampling frequency should start at ~1min but should be a tunable parameter (and possibly individually tunable for different sensors/modalities
- Would love to eventually include alerting needs but they should definitely be free utilities/resourses/methods
- No need for auth, trusted local network app