-
Notifications
You must be signed in to change notification settings - Fork 8
Project 5: Agile Sprints
The main goal of the project is to implement a web application allowing the Users (Developers, Project Managers, and Administrators) to define and manage new Projects, Sprints and Tasks, as well as to report their progress.
All Users should have following common attributes:
- id (generated automatically) - long number;
- firstName - string 2 to 15 characters long;
- lastName - string 2 to 15 characters long;
- email - should be valid email address, unique within the system, cannot be changed;
- username - string 2 to 15 characters long - word characters only, unique within the system, cannot be changed;
- password - string 8 to 15 characters long, at least one digit, one capital letter, and one sign different than letter or digit, NOT sent back to the User clients for security reasons;
- gender - MALE / FEMALE enumeration;
- roles - DEVELOPER, PROJECT_MANAGER or ADMIN Enumerated Set (more than one role can be assigned to the User), created and editable only by Administrators;
- picture of the user (optional)- valid URL, if missing should ne substituted with an avatar according to the gender;
- contacts - string 20 - 250 characters long, supporting Markdown syntax;
- metadata (optional) - string up to 512 characters long, visible and editable only by Administrators;
- status - validity status of the user account (ACTIVE, CHANGE_PASSWORD - default, users should change password on login, SUSPENDED, or DEACTIVATED), visible and editable only by Administrators;
- created (generated automatically) - time stamp of the moment the User account was created;
- modified (generated automatically) - time stamp of the moment the User account was last modified;
- qualifications - free text description, string 20 - 1000 characters long, supporting Markdown syntax;
- assignedTasks - list of all tasks currently assigned;
- completedTaskResults - list of TaskResults for the tasks already completed by the Developer;
- experience - free text description, string 20 - 1000 characters long, supporting Markdown syntax;
- projects - list of currently assigned projects the ProjectManager is responsible for;
- completedProjectResults - list of ProjectResults for the projects already completed by the ProjectManager;
- projectsManaged - list of Projects the Administrator manages administratively;
The Administrators should be able to add new Projects, as well as to complete them by reporting a ProjectResult. The ProjectManagers should be able to add new Sprints and Tasks to existing Projects, as well as to validate/report TaskResults and SprintResults for different Tasks and Sprints completed by Developers.
Each Project has the following structure:
- id (generated automatically) - long number;
- title - string 2 to 120 characters long;
- description (optional) - string 10 - 2500 characters long, supporting Markdown syntax;
- manager - the ProjectManager responsible for the project;
- developers - developers implementing the Project;
- currentSprint - the Sprint entity representing the currently active Sprint;
- previousSprintResults - the completion results for previous Sprints in the Project, including TaskResults;
- tasksPlanned" - list of Task entities planned, but not yet completed;
- tags - string including comma separated tags, allowing to find the Publication by quick search;
- created (generated automatically) - time stamp of the moment the entity was created;
- modified (generated automatically) - time stamp of the moment the entity was last modified;
- id (generated automatically) - long number;
- startDate - start date for the sprint;
- endDate - end date for the sprint;
- duration - integer, number of working days;
- description (optional) - string 10 - 2500 characters long, supporting Markdown syntax;
- manager - the ProjectManager responsible for the sprint;
- developers - developers participating in the Sprint;
- tasks - the Sprint entity representing the currently active Sprint;
- previousSprintResults - the completion results for previous Sprints in the Project;
- tags - string including comma separated tags, allowing to find the Publication by quick search;
- created (generated automatically) - time stamp of the moment the entity was created;
- modified (generated automatically) - time stamp of the moment the entity was last modified;
- id (generated automatically) - long number;
- category - the Category the Recipe belongs to;
- title - string 2 to 120 characters long;
- author - the User sharing the Recipe;
- shortDescription - string 2 to 250 characters long;
- cookingTime - integer number in minutes;
- usedProducts - string 20 - 500 characters long, supporting Markdown syntax;
- picture - of the cooked meal, valid URL to the picture;
- description (optional) - string 150 - 2500 characters long, supporting Markdown syntax;
- tags - string including comma separated tags, allowing to find the Recipes by quick search;
- comments (optional) - the list of Comments about the Recipe;
- created (generated automatically) - time stamp of the moment the entity was created;
- modified (generated automatically) - time stamp of the moment the entity was last modified;
All Users should be able to add Recipes and Comments about the Recipes sharing personal experience and ideas. Each HomeCook should be able to manage (edit / delete) her/his own Recipes and Comments. All Comments should be visible from the Recipe details view. The Administrator should be able to view and manage (edit / delete) Comments and Recipes of all Users.
Each Comment should have the following attributes:
- id (generated automatically) - long number;
- author - the Comment's author (User);
- recipe - the Recipe the comment is about;
- text - string 5 - 1500 characters long, supporting Markdown syntax;
- url (optional) - the URL of a web resource Comment's author wants to attach, should be a valid URL;
- created (generated automatically) - time stamp of the moment the entity was created;
- modified (generated automatically) - time stamp of the moment the entity was last modified;
Copyright © 2003-2019 IPT - Intellectual Products & Technologies. All rights reserved.