240 likes | 428 Views
eTAT. Storage. Kenai. Client Interface. Have or use. Have or use. eTAT Collects Courses. Project Hosting Platform. Course. Course will have or use platform. User uses Client Interface. ???. ???. Collects. Course Collects Data. Course Collects Users. Project. Project Metrics. 1:N.
E N D
eTAT Storage Kenai Client Interface Have or use Have or use eTAT Collects Courses Project Hosting Platform Course Course will have or use platform User uses Client Interface ??? ??? Collects Course Collects Data Course Collects Users Project Project Metrics 1:N 1:1 Group Data Project Description User Annotation Instructor uses Project Description Survey Data Student Collects Student Responds Instructor Output Survey Instructor Creates Survey
Interactions: • User • Instructor • Student • Survey • User • Instructor • Student • Survey • Survey Data • Output • Client Interface (eTAT) • Collected Data • Chart • Table • Annotation • Project • Project Description • Project Hosting Platform • Kenai (Inc. Kenai DB) • Course • Group • Project Metrics • eTAT System • Local Storage 1 2 3 4 5 9 6 10 8 7 11
Interactions: • Survey Data • Output • Client Interface • Collected Data • User • Instructor • Student • Survey • Survey Data • Output • Client Interface (eTAT) • Collected Data • Chart • Table • Annotation • Project • Project Description • Project Hosting Platform • Kenai (Inc. Kenai DB) • Course • Group • Project Metrics • eTAT System • Local Storage 12 13 14 15 16 17 18 19 20 21
Interactions: • Chart • Table • Annotation • Project • User • Instructor • Student • Survey • Survey Data • Output • Client Interface (eTAT) • Collected Data • Chart • Table • Annotation • Project • Project Description • Project Hosting Platform • Kenai (Inc. Kenai DB) • Course • Group • Project Metrics • eTAT System • Local Storage 22 23 24 25 26
Interactions: • Project Description • Project Hosting Platform • Kenai (Inc. Kenai DB) • Course • User • Instructor • Student • Survey • Survey Data • Output • Client Interface (eTAT) • Collected Data • Chart • Table • Annotation • Project • Project Description • Project Hosting Platform • Kenai (Inc. Kenai DB) • Course • Group • Project Metrics • eTAT System • Local Storage 27 29 29 30
Interactions: • Group • Project Metrics • eTAT System • Local Storage • User • Instructor • Student • Survey • Survey Data • Output • Client Interface (eTAT) • Collected Data • Chart • Table • Annotation • Project • Project Description • Project Hosting Platform • Kenai (Inc. Kenai DB) • Course • Group • Project Metrics • eTAT System • Local Storage 31 32
eTAT Class Diagram Interactions: • An Instructor is a User. • A Student is a User. • Instructor creates a Survey [Survey Data]. • Instructor uses Client Interface. • Instructor makes an Annotation (on Project or Student) [Annotation Data]. • Instructor creates Project [Project Data]. • Instructor creates Course (Abstract). • Instructor creates Groups (per Project). • Student takes Survey [Survey Data]. • Student belongs to a Group. • Survey consists of Survey Data [Survey Data]. • Survey Data is used by eTAT System [Survey Data]. • Survey Data is stored in Local Database [Survey Data]. • Output is generated by Client Interface (Abstract). • Output consists of Chart formatted data [Project Metrics]. • Output consists of Table formatted data [Project Metrics]. • eTAT System generates Client Interface. • Collected Data consists of Survey Data [Survey Data]. • Collected Data consists of Annotations [Annotation Data]. • Collected Data consists of Project Metrics [Project Metrics]. • Collected Data is stored in Local Database [Collected Data].
Project consists of Project Description [Project Description]. • Project is hosted on Project Hosting Platform (External/ Abstract). • Projects are part of a Course (Abstract). • A Project is allotted to a Group (Abstract). • Project consists of Project Metrics [Project Metrics]. • Instructor creates Project Description [Project Description]. • Project Hosting Platform consists of Kenai (External). • eTAT System fetches data from Project Hosting Platform [Project Metrics]. • A Course consists of Groups (Abstract). • eTAT System fetches Project Metrics [Project Metrics]. • eTAT System fetches data from Local Storage [Project Description, Collected Data and Survey Data].
eTAT • Course[] courses • createAccount(String username, String email_address) //send email to email_address and confirm account & set password • Login(string username, string password) • getCourse(String course_name) returns Course • getCourseList() • createCourse( Course course) • createCourse( overload with data) • removeCourse( String course_name)
Course • String Course_name • Instructor owner • Project[] projects • Instructor[] instructor(s) • String course_description • Member[] members • getOwner() • setOwner(Instructor ins) • getProject(project_name) • getProjectList() • createProject(instructor_name, project_name, project_details) • removeProject( Project project) • getProjectData(project_name) returns project_details • getProjectMetrics(project_name) returns project_metrics
HostingPlatform • setProjectData(project_name) • getProjectData(project_name)
Project • String project_name • Instructor[] instructors • Member[] owners • Member[] devs • getOwners() returns member[] owners • getOwner(String name) returns Member owner • getDevs() returns Member[] devs • getDev(String name) returns member dev • getMetrics(project_name) • setMetrics(project_name,webhooks_data) • getAnnotation(project_name) • setAnnotation(project_name,annotation) • getDescription(project_name,user_auth) • setDescription(project_name,user_auth)
Metrics • String project_name • Members[] students • ForumPosts[] forum_posts • RepositoryCommits[] commits • MailPosts[] dev_mailing_list • Issues[] issue_tracker • getProjectName() • getForumCount() • getCommitsCount() returns number of Commits • getMailPostsCount() • getIssuesCount() • getStudentsNames() • getForumPostsByMember(member_name) • getCommitsCountByMember(member_name) • getMailPostsCountByMember(member_name) • getIssuesCountByMember(member_name)
Commits • String File_modified • String post_url • String svn_comments • String member_email • Date svn_date • getCommitter() returns Member • get.. • Get.. • Get.. • Get..
ForumPosts • String post_title • String post_url • String message • String member_email • Date post_date • getPoster() returns Member • get.. • Get.. • Get.. • Get..
MailPosts • String post_title • String post_url • String message • String member_email • Date post_date • getPoster() returns Member • get.. • Get.. • Get.. • Get..
Issues • String post_title • String post_url • String message • String member_email • Date post_date • getPoster() returns Member • get.. • Get.. • Get.. • Get..
Annotation • String project_name • String instructor_name • AnnotationData annotation • setAnnotation(project_name, annotation_data)
AnnotationData • String instructor_email • String project_name • String member_email • String comment • Date date • AnnotationData(String instructor_email, String project_name, String member_email, String comment, Date date) • getInstructorEmail() • Get • Get • Get • Get • getInstructor(String instructor_email) returns Instructor • getMember(String member_email) returns Member • setInstructorEmail(String instructor_email) • Set • Set • Set • set
Member • String email_address • String kenai_username • String full_name • String student_id • getMember(email_address) returns this • getMember(kenai • getMember • getMember
Instructor • String full_name • String username • String kenai_username • String password • String kenai_password • String email_address # Instructor Setup • login(kenai_username, kenai_password) • createCourse(course_name) • createProject(project_details) • monitorProjects(project_names[]) • createInitSurvey(course_name, survey_name, survey_data) • getSurveyData(survey_name) returns servey_data # eTAT Usage • Login(kenai_username, kenai_password)
Survey • manageSurveys(instructor_name) • createSurvey(survey_name, survey_data) • modifySurvey(survey_name, edit_data) • deliverSurvey(survey_name, delivery_options) • setSurveyData(survey_name, survey_data) • getSurveyData(survey_name) returns survey_data