Introduction
Athena#
Athena is a collection of general-purpose, robust, independent, and reusable components with the goal of powering a software ecosystem. These components may be used on their own to aid in existing projects or integrated into existing (or new) frameworks. In either case, this enables a feedback loop that ultimately benefits both the project using the component(s), and the ecosystem as a whole. The projects themselves get access to quality, well tested code to reduce the maintenance overhead of their application while any issues they do uncover, or additional features that are implemented, benefit not only that project, but every project using that component. However, while using them separately is part of their design, they are best used together.
Athena Framework#
Athena Framework integrates each component into a single cohesive, flexible, and modular framework. It is designed in such a way that allows for it to accommodate the majority of use cases in a way that can be as simple or as complex as required. Not every component needs to be used or understood to start using the framework, only those which are required for the task at hand. However, of course the components work best when used together within the framework.
Feature Highlights#
- Follows the SOLID principles to encourage good software design
- Architected in such a way to allow maximum flexibility without needing to fight against the framework
- Uses annotations as a means of extension/customization
Documentation Conventions#
The Athena website integrates general textual documentation with the API docs of each component. This allows for easy linking between the two when applicable. It does however leverage some conventions that are helpful to understand when reading the documentation.
When scrolled to the top of the page, the navigation bar includes a tab for each component representing that component's API documentation.
The Manual
tab is the contextual documentation for the framework.
This includes higher level framework level information, such as its architecture, guides, tutorials, and how each component is integrated if applicable.