{"action":"created","issue":{"url":"https://api.github.com/repos/almighty/almighty-core/issues/357","repository_url":"https://api.github.com/repos/almighty/almighty-core","labels_url":"https://api.github.com/repos/almighty/almighty-core/issues/357/labels{/name}","comments_url":"https://api.github.com/repos/almighty/almighty-core/issues/357/comments","events_url":"https://api.github.com/repos/almighty/almighty-core/issues/357/events","html_url":"https://github.com/almighty/almighty-core/issues/357","id":182584694,"number":357,"title":"Create Projects","user":{"login":"michaelkleinhenz","id":7101098,"avatar_url":"https://avatars.githubusercontent.com/u/7101098?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelkleinhenz","html_url":"https://github.com/michaelkleinhenz","followers_url":"https://api.github.com/users/michaelkleinhenz/followers","following_url":"https://api.github.com/users/michaelkleinhenz/following{/other_user}","gists_url":"https://api.github.com/users/michaelkleinhenz/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelkleinhenz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelkleinhenz/subscriptions","organizations_url":"https://api.github.com/users/michaelkleinhenz/orgs","repos_url":"https://api.github.com/users/michaelkleinhenz/repos","events_url":"https://api.github.com/users/michaelkleinhenz/events{/privacy}","received_events_url":"https://api.github.com/users/michaelkleinhenz/received_events","type":"User","site_admin":false},"labels":[{"id":451322529,"url":"https://api.github.com/repos/almighty/almighty-core/labels/userstory","name":"userstory","color":"fef2c0","default":false}],"state":"open","locked":false,"assignee":{"login":"tsmaeder","id":13163770,"avatar_url":"https://avatars.githubusercontent.com/u/13163770?v=3","gravatar_id":"","url":"https://api.github.com/users/tsmaeder","html_url":"https://github.com/tsmaeder","followers_url":"https://api.github.com/users/tsmaeder/followers","following_url":"https://api.github.com/users/tsmaeder/following{/other_user}","gists_url":"https://api.github.com/users/tsmaeder/gists{/gist_id}","starred_url":"https://api.github.com/users/tsmaeder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tsmaeder/subscriptions","organizations_url":"https://api.github.com/users/tsmaeder/orgs","repos_url":"https://api.github.com/users/tsmaeder/repos","events_url":"https://api.github.com/users/tsmaeder/events{/privacy}","received_events_url":"https://api.github.com/users/tsmaeder/received_events","type":"User","site_admin":false},"assignees":[{"login":"tsmaeder","id":13163770,"avatar_url":"https://avatars.githubusercontent.com/u/13163770?v=3","gravatar_id":"","url":"https://api.github.com/users/tsmaeder","html_url":"https://github.com/tsmaeder","followers_url":"https://api.github.com/users/tsmaeder/followers","following_url":"https://api.github.com/users/tsmaeder/following{/other_user}","gists_url":"https://api.github.com/users/tsmaeder/gists{/gist_id}","starred_url":"https://api.github.com/users/tsmaeder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tsmaeder/subscriptions","organizations_url":"https://api.github.com/users/tsmaeder/orgs","repos_url":"https://api.github.com/users/tsmaeder/repos","events_url":"https://api.github.com/users/tsmaeder/events{/privacy}","received_events_url":"https://api.github.com/users/tsmaeder/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/almighty/almighty-core/milestones/8","html_url":"https://github.com/almighty/almighty-core/milestones/Backlog","labels_url":"https://api.github.com/repos/almighty/almighty-core/milestones/8/labels","id":2034292,"number":8,"title":"Backlog","description":"","creator":{"login":"maxandersen","id":54129,"avatar_url":"https://avatars.githubusercontent.com/u/54129?v=3","gravatar_id":"","url":"https://api.github.com/users/maxandersen","html_url":"https://github.com/maxandersen","followers_url":"https://api.github.com/users/maxandersen/followers","following_url":"https://api.github.com/users/maxandersen/following{/other_user}","gists_url":"https://api.github.com/users/maxandersen/gists{/gist_id}","starred_url":"https://api.github.com/users/maxandersen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxandersen/subscriptions","organizations_url":"https://api.github.com/users/maxandersen/orgs","repos_url":"https://api.github.com/users/maxandersen/repos","events_url":"https://api.github.com/users/maxandersen/events{/privacy}","received_events_url":"https://api.github.com/users/maxandersen/received_events","type":"User","site_admin":false},"open_issues":45,"closed_issues":2,"state":"open","created_at":"2016-09-28T09:27:03Z","updated_at":"2016-11-24T08:15:20Z","due_on":null,"closed_at":null},"comments":23,"created_at":"2016-10-12T17:26:34Z","updated_at":"2016-11-25T09:47:45Z","closed_at":null,"body":"# Description\r\n\r\nAs a user, I want to create projects from the system. A project is a higher context for work items and other data in the system. A work item always \"belongs\" to exactly one project and all data in the system is always displayed in the context of a specific project. Projects are \"owners\" of work items and work item links. \r\n# Functional Acceptance Criteria\r\n1. The user can create a project from the \"create project\" view.\r\n2. Creating a project requires a name (alphanumeric value).\r\n3. It is not possible to create a project with an empty name.\r\n4. Projects are working in a way that users in the system are global and can be associated with more than one project (will be a later story).\r\n5. Projects are working in a way that cross-linking of work items between projects is possible (will be a later story).\r\n6. Projects are working in a way that a project hierarchy can be introduced later (projects owning work-items, projects owning projects).\r\n\r\n**Note:** as mentioned above, users are \"global\" to the system and can be \"member\" of more that one project at the same time. This is not a direct functional requirement, but a hint for design decisions. \r\n\r\n**Note:** projects are \"owners\" of work items and work item links. Work items and projects should be designed that cross-linking of work items between projects are possible later. TBD is the ownership of the work item link instance on cross-linked work items. This is not a direct functional requirement, but a hint for design decisions. \r\n\r\n**Note:** on the scope of this story: as part this story, we will extend our object model by introducing a 1:n relationship between the newly created \"project\" and work items. On the back end, we will have to introduce a CRU(D) service for projects and extend work item creation with a mandatory \"project\" parameter. How that parameter is passed and stored needs to be discussed as part of implementation.\r\nThe front end needs to add UI to create a new project and introduce the notion of a \"selected\" project that is passed when creating a work item. As part of migration, we will have to create a default project and assign all existing issues to that project.\r\n_**Out of scope** (explicitly not addressed by this user story): authorization, orgs, teams, areas, configuration of process for a project (WI types, etc.) and moving work items between projects._\r\n\r\n# Non-functional Acceptance Criteria\r\n1. The \"create project\" view is easily accessible from anywhere in the system UI.\r\n2. Creating a project adds the new project in-place to the project selector.\r\n3. The result of the implementation of this story should also be a basic data model and a concept for organizing projects and other entities.\r\n\r\n# Dependencies\r\n1. Userstory #358\r\n"},"comment":{"url":"https://api.github.com/repos/almighty/almighty-core/issues/comments/262918573","html_url":"https://github.com/almighty/almighty-core/issues/357#issuecomment-262918573","issue_url":"https://api.github.com/repos/almighty/almighty-core/issues/357","id":262918573,"user":{"login":"tsmaeder","id":13163770,"avatar_url":"https://avatars.githubusercontent.com/u/13163770?v=3","gravatar_id":"","url":"https://api.github.com/users/tsmaeder","html_url":"https://github.com/tsmaeder","followers_url":"https://api.github.com/users/tsmaeder/followers","following_url":"https://api.github.com/users/tsmaeder/following{/other_user}","gists_url":"https://api.github.com/users/tsmaeder/gists{/gist_id}","starred_url":"https://api.github.com/users/tsmaeder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tsmaeder/subscriptions","organizations_url":"https://api.github.com/users/tsmaeder/orgs","repos_url":"https://api.github.com/users/tsmaeder/repos","events_url":"https://api.github.com/users/tsmaeder/events{/privacy}","received_events_url":"https://api.github.com/users/tsmaeder/received_events","type":"User","site_admin":false},"created_at":"2016-11-25T09:47:45Z","updated_at":"2016-11-25T09:47:45Z","body":"Backend Tasks:\r\n- Create Repository for project crud(l)\r\n- Create API Endpoint for project crudl\r\n- Update work item create/update to include optional \"project field\" if empy, assign to a default project\r\n   -> migrate all existing work items to default project\r\n- Update search services (wi list and searchrepo) to allow filtering by project\r\n- Make project field in work item create/update mandatory\r\n"}}
{"actor":{"display_login":"tsmaeder"}}