---
tags: Product
---
# Call outs vs Challenge + Opportunity Lifecycle
A key goal for Alkemio is to make it much easier for contributors to submit ideas to make progress on a Challenge. And then to manage these ideas through multiple stages.
Key platform capabilities
* States (stages) that an Opportunity can go through
* Each Opportunity receiving its own lifecycle
* Ability to attach authorizations / rules to the transitions between states
TO DO
* Look at Startup in Residence Amsterdam re phasing / information that is displayed
* Do we need an additional privilege for who has the right to apply
Notes
* Push vs pull: users adding aspects freely is push; making a call out to the community is pull
* Challenge = problem definition. Opportunity = solution idea.
## Requirements
* Able to control the visibility of Opportunities submitted by a community
* Able to control who is allowed to submit new opportunities
* Able to define a timeline for application process
* Able to define the set of information to be gathered as part of the initial submission of an Opportunity
* Users able to see the Opportunities they have submitted that are not yet fully visible
* Audit trail related to the states that an Opportunity has gone through
## Design
It is worth keeping in mind that big parts of the above solution are core parts of the Alkemio design:
* Lifecycle: the ability to define a set of states that a particular entity goes through, the rules that are attached to each particular transition from one state to another etc
* This near term will be a fixed list of supported templates, that can be evolved by working with the Alkemio core team
* Privilege to Read explicit to each user interacting with the platform
* Note: in general attempting to read something that a user does not have access to results in an error. In this case we need to see how to handle visibility via privileges...todo.
* Authorization based on credentials: so that users can approve / evolve Opportunities between states based on their holding specific credentials
* Notifications: informing users that have submitted an Opportunity suggestion of updates related to their submission
* ...
### Design notes
The following will be needed for supporting the above requirements:
* Multiple much more tangible lifecycle definitions, with documentation / supporting canvases
* Holding preferences at the Challenge level for who is allowed to submit Opportunities
* Associating a timeline with a Challenge
* Controlling visibility of Opportunities based on the state / flag associated with a state
* Allowing the Challenge to define the set of questions to be asked for all new Opportunity submissions?