The following is the definition of the officially supported technologies used across the project. All officially supported modules must use this stack. Third party modules are not required to use the proposed stack.
Particular Python frameworks in use:
- SQLAlchemy is our ORM of choice, coupled with Alembic to manage migrations
- Celery used to schedule and manage background tasks, primarily configured using a
Redis
backend running in a Docker container. - FastAPI is used to build REST APIs. At the moment we don't have a use case for GraphQL
- Pydantic is used for validation in various parts of the application
All of our web clients are built a Single-page-application (SPA) using the React framework. You are not required to use these technologies for third party plugins but are encouraged to. We prefer the use of Typescript for efficiency across the team.
Many workflows depend on sources of truth. A source of truth is set of absolute truths linked to an organisation.
These modules encapsulate a workflow for the target audience. These modules may have:
- A customer facing experience
- An organisation facing experience
- Require taking payments online or over the counter
- Depend on one or more truth or workflow module
Modules are not required to have all outlined features.
Allows councils to accept orders and payments for building and property certificates, and manage the workflow of delivering these back to the customer via the portal.
This module has a customer facing experience where they can order the certificates and access a history of their orders.
Customers are able to pay for the order via a credit card.
The council has a back office experience where they can manage and deliver the orders. Council can use the back office to lodge orders over the counter.
This module depends on the Property Data Truth module to ensure that orders are being placed for a valid property in the jurisdiction.
This module assists councils to keep a record of documents related to a property.
This module depends on the Property Data Truth module to ensure that files are being stored against a valid property in the jurisdiction.