continuing from the Local Food Northland Software Project document
Similar to what physical tools you have available on your work site, computer systems are tools we rely on to facilitate the work we do. This project requires us to build new computer systems, yet we want these systems to be re-usable for ourselves in other projects as well as others. To achieve this, for this project we are not building one tool, we are building an ecosystem of tools (re-usable micro-services) that each focus on a single concern of the overall problem space. To limit our scope, we will only commit to building the features of these tools that we need for this project.
ASK: Clive, can you help shine more light on our business milestones?
...
In 6 months we want the app in use by:
- 10 producers (growers)
- 20 consumers (cafes, restaurants, ...)
- 1 broker
In 9 months we want the app in use by:
- 1 transporter
- 1 warehouser
In 1 year we want the app in use by:
- the public to see local activity
Later we may want to include
- 1 processor
Each stage is roughly 6 weeks?
Authentication:
- As a user, I can login
- As a user, I can signup
- As a user, I can verify my email
- As a user, I can reset my password
- As a user, I can delete my account
Profiles:
- As a user, I can view the profile of an agent
- As a user, I can update my profile
- As a user, I can search (by name, location, ...) for agents
Relationships:
- As a user, I can view the relationships of an agent
- As a user, I can invite another agent into a relationship with me
- As a user, I can accept an invitation into a relationship with another agent
- As a user, I can leave a relationship with another agent
{ Resource, Transform, Transfer } Types:
- As a user, I can create a type
- As a user, I can update a type
- As a user, I can search (by resource, ...) for types
- As a user, I can view details of a type
- As a user, I can remove a type
Intentions:
- As a producer, I can cast an intention to produce (offer)
- e.g. a grower expects the following yield of tomatos in the next season: ...
- As a consumer, I can cast an intention to consume (want)
- e.g. a cafe manager expects the following demand for tomatos in the next few months: ....
- As a user, I can update my intentions
- As a user, I can view intentions that have been cast
Inventory:
- As a user, I can track a resource that I own
- As a user, I can update details about a resource that I own
- As a user, I can search resources that I have access to
Invoices:
- As a producer, I can generate an invoice to pay money to me for transferring resources to another agent
- As a broker, I can generate an invoice for two agents to exchange resources for money
Commitments:
- As a user, I can see offers and wants that relate to my own offers and wants
- As a user, I can connect matching offers and wants into a commitment for a future interaction (transfer, transform, transport)
- As a user, I can commit to / guarantee / sign contract for a future interaction (transfer, transform, transport)
- As a user, I can view an agent's commitments
Events:
- As a user, I can log an interaction (transfer, transform, transport, ...) that has happened
- As a user, I can search interactions (by agent, resource, type, ...) that have happened
Reports:
- As a user, I can create a report that sends me recurring updates about a particular query of data
- e.g. "What is the total value of all resources being transferred in Northland from the last month?"
- e.g. "What is the total value of all resources in Northland right now?"
Aggregation or not?