Giter Site home page Giter Site logo

feature-creature's People

Contributors

artifactory avatar pdswan avatar toddmohney avatar zephyr-dev avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

feature-creature's Issues

Remove product-executable

As the API and frontend have come together, the cost of maintaining the product-executable is outweighing its usefulness. Delete this build. If we want it back we can always retrieve its latest state from this commit.

Allow per-environment application configuration

As a feature-creature developer
So that I can run the application in different contexts on the same machine
I want to externally configure which environment the application is to be run in

Example use cases:
On a development machine, I want to be able to run in either "development" or "test" mode
On a CI machine, I want to run in CI mode
On a production machine, I want to run in Production mode

Product Contributors

As a product contributor
I want access to view/edit features of a product owned by another user
So that we can collaborate on the feature definition process

View/Remove current search term in Features view

As a product contributor
When I search/filter features
I want to see the current terms/filters
So that I can better understand my current Features view

And I want to clear those terms/filters
So that I can view the full Feature list

Reinitialize Forms After Successful Submission

Expected Behavior
When I fill out a form and submit it successfully
Clicking the submit button a second time should not create a new record

Actual Behavior
It creates a new record

Repro Steps
Fill out a form and submit it
Upon successful response, submit again
You'll see another record get created

Importing existing feature files

Feature: Importing existing feature files
As a product contributor
So that I can manage my product's features
I want to import my existing feature descriptions

Possibilities

  • Import from git repo (store url, fetch repo, find feature files)
  • Import from zip
  • Something else?

Viewing an organized list of all product features

So that I can visualize how my product's features are organized
I want to see a list of all features which mirrors the structure in which they are stored in my project

  • the list's structure is to be analogous to the file tree from which it was imported

Clicking through features appends to the view rather than replacing the view

Expected behavior
When I click a feature in the feature tree
Then I see the feature
When I click another feature in the feature tree
Then I see only that feature

Actual behavior
When I click another feature in the feature tree
Then I see that feature prepended to the feature view
And the previous feature shows below

Add a web interface

As a product owner
So that I can access and edit my features in a centralized convenient location
I want a web interface to feature-creature

Adding a User Role

As a Product Owner
So that I can encourage ubiquitous language and understanding across my teams
I want to define key User Roles used in my Product

Encapsulate App Config in a ReaderT

Currently, the way the web server accesses the environment configuration is "not great".
Follow the pattern established by our search service to make it "a lot better".

Finishing this work will enable completion of #58.
Library functions to enqueue a search job in SQS are complete, but we should encapsulate the application configuration in the web server application before integrating with this work to ensure the code stays nice.

Product Contributor can define User Role

As a Product Contributor
In order to define roles that Product Collaborators can use when building Features and Examples
I want to define User Roles

Definition

A "User Role" is a description of a type of user that uses the product. A "User Role" should consist of at least a "Title" and a "Definition".

View a feature description

As a Product Owner
So that I can understand how my system's features are defined
I want to view a feature description

Leverage the /products/:id/feature?path=/path/to/feature

Integrate with Elm frontend

Currently there are a couple missing pieces keeping us from integrating the Elm front-end and the creature server:

  • since the elm-reactor and feature-creature-web run on different ports, cross-origin headers must be sent with all requests
  • /products endpoint does not return the IDs of the records

Upgrade GHC to 7.10.2 and rebuild dependencies

As a feature-creature developer
So that I can be working with the latest stable releases of dependent packages
I want to use the most up-to-date version of GHC and accompanying libraries

Introducing the cabal.config file with differing pkg versions than I had been working would have required me to downgrade GHC on my personal machine. I figured we'd want to stay up-to-date anyway, so I upgraded all the things. (Ah, that's the sweet cabal hell I've heard people speak so fondly of!)

Viewing all User Roles of a Product

As a Product Contributor
So that I can understand unfamiliar User Roles within my Features
I want to see a list of all key User Roles defined for my Product.

Searching Features by Domain Term

As a Product Collaborator
So that I can understand what features are applicable to a particular Domain Term
I want to Search all Features referencing the Domain Term

Viewing a Domain Term

As a Product Contributor
So that I can understand unfamiliar Domain Terms within my Features
I want to see key Domain Terms within the context they are used.

notes
I'm thinking this could be done in a couple different ways.

  1. find Domain Terms within a Feature definition, and wrap the Term in a link
  2. create a RapGenius style annotations view for Domain Terms

Index Features for Search

  • pick a search engine
  • index some Features
  • prove the concept by showing that we can get them back by Domain Term and User Role

Note:
Adding contextual Search endpoints are described in #56 and #55
This chore is to explore technologies and see what works nicely.

Create single script to start all application service dependencies

As a feature-creature developer
So that I can sit down and quickly get to work
I want a single script that starts up all application service dependencies

Services:

  • API server
  • Web client server

This list will soon grow to background workers, utility services, etc

User accounts

As a product owner
So that I can differentiate my products from other users products
I want to associate my products to my personal account

API Error Handling

As a User
When an API request fails
I want to see a nice error message
And have a way back to somewhere sensible

Notes:
For starters, a generic error page with a link back "home" would suffice.
One step better, a context specific error message with a link back "home"

API integration points:

  • loading Products
  • loading a selected Product (features, domain terms, user roles)
  • creating a Product
  • creating a Domain Term
  • creating a User Role

Create dev environment bootstrap script

Feature: Development Environment Bootstrapping Script

As a feature-creature developer
So that I may quickly and accurately setup a new machine to build and run feature-creature
I want a bootstrapping script with sensible defaults which, upon execution, satisfies development environment dependencies

Searching Features by User Role

As a Product Collaborator
So that I can understand what features are available to a particular User Role
I want to Search all Features referencing the User Role

Adding a Domain Term

As a Product Owner
So that I can encourage ubiquitous language and understanding across my teams
I want to define key Domain Terms used in my Product

API versioning

As a Feature Creature API consumer
So that Team Creature does not break my application on a regular basis
I want to specify the version of the API I compatible with my implementation

Creating a new feature

As a product collaborator
So that I can describe new functionality
I want to create a new feature

Sharing Files between Feature Creature and Implementing Application(s)

Once we import features from a repo (#8) it would be nice if Feature Creature became the canonical home for the documentation of how a product should work.

If that's the case we'll need to be able to share the features from Feature Creature to one or more repositories of implementing code.

Not sure it makes sense to have features always be in sync or sync them at regular intervals after collaboration on changes or additions.

Form Validations

As a Product Collaborator
So that I can fix my mistakes
I want helpful error messages when I am incorrectly filling out a form

Forms needing validation:

  • create product form
  • create domain term form
  • create user role form

Feature previews

So that I can find and view the details of a specific feature or scenario
I want to see the feature and scenario titles within each file in the list view

Within the feature file listing view and
below each feature file:

  • show the feature title
  • show each scenario title

Example screenshot of file listing view:
screen shot 2015-10-17 at 12 40 25 pm

Collaborator can Edit a Feature File

Opening this to start having all of the interesting conversations this brings up. Pieces of this can likely be broken out into finer grained issues that represent steps toward an eventual goal.

UI

  • auto complete domain terms
  • auto complete roles

Collaboration

  • merge changes from multiple users
  • give users a collaborative editor (e.g. google docs)

Resources

Deploying feature-creature

As a feature-creature developer
I do not want my local machine to double as a production server
So I want a more appropriate environment to deploy the application

  • heroku?
  • AWS?
  • somewhere else?

Viewing a feature

So that I can understand how a given product feature is described
I want to see the full description of the feature

Dependent on #8

Creating a Product

Feature: Creating a Product
As a product owner
So that I can associate and manage my product's features descriptions
I want to create and describe my product

Acceptance:
Complete the form by running:

feature-creature product add

Verify the product was added correctly by running:

feature-creature product list

Creating a Product

As a Product Owner
So that I can use all of the amazing features Feature Creature has to offer
I want to create a Product

Wrap Product Creation in a Transaction

Creating a Product has multiple points of failure and does not currently clean up after itself when an error occurs.

Expected Behavior
When I submit a request to create a Product
And the Product's repo can not be fetched/stored/etc
Then there should not be a record persisted for the Product

Actual Behavior
A product record is created
Now things are in an icky state where we have a product, but no repo to work against

Repro Steps
Submit a request to create a Product with an invalid repo url (This can be done via curl or the UI)
You'll see a Prouduct persisted, but without the accompanying Git repo, feature-creature is pretty worthless.

Viewing a User Role

As a Product Contributor
So that I can understand unfamiliar User Roles within my Features
I want to see key User Roles within the context they are used.

notes
I'm thinking this could be done in a couple different ways.

  1. find User Roles within a Feature definition, and wrap the Role in a link
  2. create a RapGenius style annotations view for User Roles

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.