450 likes | 581 Views
GW ToDo A Task Manager. CSCI 6442 Project Spring, 2012. Agenda. Welcome Introduction of Guests Purpose of the Project Introduction to GWToDo Structure of the Application Data Model Implementation—MySQL, PHP and Flex Demonstration Team Structure. Purpose.
E N D
GW ToDoA Task Manager CSCI 6442 Project Spring, 2012
Agenda • Welcome • Introduction of Guests • Purpose of the Project • Introduction to GWToDo • Structure of the Application • Data Model • Implementation—MySQL, PHP and Flex • Demonstration • Team Structure
Purpose • Most projects in grad school focus on implementation of some algorithm • Practical aspects of real work such as incomplete requirements, shifting demands, the changes imposed by others on the team, need for sharing don’t occur in such projects • The product in such projects doesn’t have to meet commercial usability standards • The goal of this project is to provide an experience more like a work experience • The whole class works as a single team to produce a single project • Issues with people are often
Challenges • Limited time for the project • Project starts after the midterm • From requirements to finished is just 6 weeks • Coordination • Development is done in 20 different places • All of it has to work together • One part not complete could destroy the project • Software engineering approach • All phases start at once • Software design, coding and data model • Data model is central to the design and coordination
Requirements • Build a Web application, to be accessible (and free) for public use • Can be used by an individual for tracking personal tasks • Can be used by an organization to track the organization’s tasks • Create, Update, Delete, Display capabilities included • Each person or organization sees only their own tasks
Technical Environment • Used what was available • Web server from a commercial ISP • Hosting of GWToDo.com • MySQL DBMS • PHP for server-side programming • FLEX for client-side UI
Introduction to GW ToDo • GW ToDo : An online application for Task Management. • Support for : Complete Task Management, Groups/Organization hierarchy for multiple level • Reports generation : Users can see overview of the task Active, Overdue, Tasks at Risk, On Time Task, etc.
Why GW ToDo? • Flexible : Can be used by Individuals, Groups and Organizations • Up-To-Date : Keeps the track of all the Tasks • Quick and Robust : User Friendly Interface • Reporting : Provides in-depth details of all the tasks. For example - Active Tasks, Overdue Tasks, Complete Tasks etc.
Technical Structure • For PHP/local Server : Used WAMP Server(Windows) and MAMP server(Macintosh) • For FLEX : Used Adobe Flash Builder 4.6 • For MySQL : Used MySQL Workbench and PHPMYADMIN which was incorporated with the WAMP/MAMP SERVER • For migration of the application : Used Ipswitch ws_FTP12
Demonstration • Application can be accessed at the below URL • gwtodo.com
Teams and Membership • System Engineering Team : Leading the Project, Coordinating with all the teams, Developed Initial Data Model • Data Model Team : Supports Data needs of the Task Processing and the Reporting team which involved developing and managing data model changes with stored procedure generation • Tasks Processing Team : Developed functionality for tasks, users and group management • Reporting Team : Generation of reports that will help users have an overview of created tasks
The Teams Speak • Data model • Becky Landstreet • RupalKotecha • Task processing • AmolNashte • RohitNarwal • Ronald Barboza • OladimejiOkeniyi • Vikrant Malik • Reporting • Jamelia Purdue • LansanaBangura • Chen Shen • System Engineering • PrashilVirgincar • Nikita Katyal • NehaPandita
For each team • First, team leader presents overview of purpose and accomplishments of the team • Then team leader and each speaker have two charts. • First chart is what I accomplished, where you report specific work that you completed for the project • Second chart is called evaluation and it’s for each speaker to comment on what was useful and not useful about the project and what the speaker learned from this experience • When all project member charts are complete, this chart can be removed
Data Model: Becky Landstreet • Team Purpose: To support the data needs of the Task Processing and Reporting teams • Develop a functional and normalized data model • Implement stored procedures to support translucency • Team Accomplishments • Developed and presented the initial the data model to the class and professor • Wrote stored procedures for use by the application to: • Manage how data is accessed by the application (supporting translucency) • Facilitate the more complex INSERT, UPDATE, and DELETE operations • Provided SQL statements to generate the structures and routines • Distributed documentation for all changes to the structures and routines, including instructions on the intended use of each procedure
Data Model: BeckyLandstreet • My accomplishments • Teamed with the Systems Engineering team to develop the initial data model • Managed changes to the table structures as needed • Developed numerous MySQL routines to support the more complex data operations, such as: • Get_Visible_Orgs: determines which organizations a user can view based upon his/her group membership, which then is used to determine which tasks and people the user can see • Modify_Task: accepts the modifiable data elements for a task, updates the TASK table, and logs a comment for each element that was changed • Distributed detailed release notes with all structure and routine changes • Instructed and advised Rupal when she joined the team
Data Model: Becky Landstreet • What was useful? • Sharing insights that I have gained from the workplace with my classmates • Gaining more knowledge about MySQL and how it differs from Oracle and SQL Server • What was not useful? • The time spent learning how to develop in Flex seemed to detract from the main focus of the class, which is database modeling and development • An academic environment will never truly mimic the office environment • What I learned • Concept of translucency and how to implement it • MySQL differences from other database management systems
Data Model: RupalKotecha • My accomplishments • I was initially part of the Processing team where I started off with setting up the Flex/ MAMP environment and doing the initial research for certain functionalities of the application • Later teamed with Becky and the System Engineering team to work on how to call the stored procedures from Flex's PHP file • After the reorg I have been part of the Data Model team where I coded and developed part of MySQL routines and Triggers used in the application such as: • remove_task • get_assign_to_people • get_org_children • add_task_comment • Coded before-insert and before-update triggers for the following tables COMMENT_TYPE_LOOKUP, ORGANIZATION, ORGANIZATION_MEMBER, PERSON, PRIORITY_LOOKUP, TASK, TASK_COMMENT, USER_INTERFACE_MEMORY • Worked with Becky to provide the release notes and routine changes to the class
Data Model: RupalKotecha • What was useful? • Learning to use MySQL • Having to think about and decide what parts needed the routines • Coding the routines and triggers • What was not useful? • Getting to learn Flex seemed to take up a lot of development time and felt that we could have used other alternatives like HTML or java script • What I learned • Coding and testing in MySQL • Coding a complicated procedure and how to test it in parts before putting it together • Ways of calling the procedures/routines from the application • Translucency concepts and its implementation in MySQL • How to implement last minute requirements and the implications of making changes in the data model/ tables after the project is half way through
Task Processing: AmolNashte • Team Purpose Transforming Data Model into a real world application using use cases and SQL Scripts provided by SE Team and Data Modeling Team respectively. • Team Accomplishments • Learning PHP, Adobe flex in very less time. • Satisfactorily Meeting Project Release deadlines, and handing over code to SE Team on descent time. • Creating Functionalities as follow : • 1. Sign Up • 2. Sign Out • 3. Create Task • 4. Update Task • 5. View Task • 6. Reassign Task • 7. Create Group • 8. Edit Group • 9. Listing Group • 10. Manage Account
Task Processing: AmolNashte • Project Specific accomplishments : • Suggesting all Teams and Helping them to configure PHPMyAdmin application instead of configuring Apache server and MySQL individually. • Create Task – Initial Break through for release-1, Use of Inbuilt Stubs, using PHP service. • View Task - Initial functionality Development, use of Data Grid. • Integrating Major Functionality of Combo box to help display names in place of IDs. • Update Task – Initial Development, and auto-data population. • Bugs Fixing • Reassign Task Issue - Grid was loosing its binding after 2 attempts of reassign task. • Leadership Accomplishments : • Equal Task Distribution according to Development plan and requirements provided by SE Team. • Helping Team members as well as getting helped from Team members in problems regarding project. • Encouraging Team for Meeting regular release deadlines.
Task Processing: Amol Nashte • What was useful? • Learning PHP, MySQL. Additionally learnt a new useful technology – FLEX. • Improved leadership and teamwork skills • What was not useful? • Sometimes Error suggestions by Flex where not specific. e.g. Channel Disconnected Error and Lot of unpredictable bugs. • Small time for application development. • What I learned • Connecting MySqland Flex through PHP. • Transforming Complex PHP functions into simple functions and using them in Flex. • Strengthened the knowledge of PHP, MySQL. Additionally learnt a new useful technology – FLEX.
Task Processing: RohitNarwal My accomplishments • At the beginning I was part of the UI team. I started with flex like how to generate form using database. • After that I was teamed with Ronald, Vikrant, Amol and Oladimeji in Task Processing team to work on PHP and UI. • As a member of Task Processing Team I coded and developed following part of project: • Worked on UI for subtask manipulation. • Delete Task/subtask. • Implemented Functionalities regarding groups • Creation of groups/organizations Subgroups. • Worked on editing of group/subgroup information. • View groups.
Task Processing: RohitNarwal What was useful? • Team work was one of the most important part of this project. In this project I learned how to work in a group environment. What was not useful? • Flex was very difficult. I think HTML 5 is better and easy option. Working as team in which there are What I learned? • Flex • How to implement procedures and triggers. • Learned PHP
Task Processing: Ronald Barboza • My accomplishments • Initially started of as a member of the UI Team(Flex environment), and later moved to the Task Processing team. While in the UI team, I was involved with the System Engineering Team, to research for proper methods to integrate PHP-MySQl-Flex. • Teamed up with RohitNarwal and Vikrant Malik to complete the ‘CREATE SUBTASK’ and ‘DELETE TASK/SUBTASK’ functionality. • Implemented the functionalities within the ‘MANAGE ACCOUNTS’ tab. This includes: • ‘SIGN-UP’ page for the user to create his profile. • ‘PROFILE DISPLAY’ page. • ‘PROFILE EDIT’ page. • Profile deletion. • CHANGE PASSWORD functonality. • Cleared the ‘INVALID LOGIN’ bug.
Task Processing: Ronald Barboza • What was useful? • The experience of working with the whole class as a team. • Having to think about and decide what parts needed the routines to be used. • Implementing the routines and triggers provided by the Data Modelling team. • What I learned • Flex is not easy to work with. In my opinion HTML5 would be a better option. • Individual task completion is not the end of it. Integration testing brings in a lot more issues. • Procedures do make the life of a programmer easier. • A strongly designed Data model plays a very important role. A lot of confusions can be avoided if the business model is properly incorporated into the data model. • Issues that spring up in the lifecycle of developing a website. The tools, techniques and skills needed to get things working.
Task Processing: OladimejiOkeniyi • My accomplishments • Install different SQL • Doing research for certain MAMP and Flex • Built between Flex application and MySql application • Built new component and state in Flex application • Coded functionality for Task Creation/Subtask Creation • Records • Get populated into the database • Configured Return Type • Coded functionality about Blank • Email notification • Coded functionality in MAMP • Session Exit/Logout • Coded about logout feature • Coded functionality about page of the application • Coded functionality about Blank • Menu Bar
Task Processing: OladimejiOkeniyi • Evaluation • What was useful? • Skilled the knowledge of MAMP, PHP, and learning new Flex 4.6 more • Skilled the knowledge of connectivity • What was not useful? • Wasted time with bugs, but fixed errors in Flex 4.6 • Coded the application less time • Tried to fix bugs, but not easy • What I Learned • Concept of new coding in Flex 4.6 • MAMP is differ from Oracle SQL • Tested and Coded in Flex 4.6 and MAMP
Task Processing: Vikrant Malik • My accomplishments • Initially, I was part of the user interface team responsible for UI design • Was then assigned to the task processing team • Worked with team members to develop below functionality: • Create Sub-Task functionality along with Nikita/Prashil • Delete Task/Subtask along with Nikita/Prashil • Updated UI for couple of functional interfaces • View Group/subgroup along with Nikita/Prashil • Create Subgroup along with Nikita/Prashil • Edit Group/subgroup along with Nikita/Prashil
Task Processing: Vikrant Malik • What was useful? • The project was a great learning experience of working in a big group and coordinating the activities • Got a feel of working in an organization / live project • Strengthened base in MySQL. Learnt new technologies in PHP and FLEX • What was not useful? • Learning curve of FLEX was long. • What I learned • Flex configuration and PHP • Implementation and testing in MySQL • Strength and weaknesses of Flex in UI presentation.
Reporting: Jamelia Purdue • Team Purpose: To develop user interfaces that will have the functionality to allow either an individual user or an organization to generate reports of tasks. • Team Accomplishments: • Formed UI to display all task of a user and highlight row based on if tasks are on schedule, at risk, or overdue. • Created UI and PHP functionality to allow a user to view all completed tasks and pending tasks. • Developed PHP functions to get all tasks assigned to and by current user. • Produced graphs that display assigned to and assigned by tasks by priority level. • Created pie chart to display task by the organization name.
Reporting: Jamelia Purdue • My accomplishments • Created UIs for All Tasks, Completed Tasks, Active Tasks, Assigned To User Tasks, Assigned By User Tasks. • Produced PHP functions: getAssignedTo, getAssignedBy, getAllComplete, and getAllActive • Developed the graphs for the Assigned To User Tasks, Assigned By User Tasks UIs. • Updated the All Task UI to highlight rows for on time, at risk, and overdue tasks. • Generated pie chart to display task by the organization name.
Reporting: Jamelia Purdue • What was useful? • Improving my skills by acquiring more knowledge of MySQL and PHP • The weekly releases were useful because helped with time management • What was not useful? • I did not find Flash Builder very useful will not use this in the future • Having to learn Flex was not an easy task with the time constraint • What I learned? • I learned new skills with working with PHP, MySQL, and Flex. • Became more realistic on what can be accomplished in a set amount of time
Reporting: LansanaBangura • My accomplishments • As a member of the UI team my mandate was to develop the initial interface using Flex. • We came up with an overall plan as to how the pieces will work together: • Database design and MYSQL • Server side technology - PHP, and • User Interface in Flex actionScript • Attended meetings and made cogent suggestions to Processing Team • Code submitted for Task Detail state in a .SWF file • Support team lead make the final cut
Reporting: LansanaBangura • What was useful? • It was a unique experience to work with such wonderful people with diverse skill set and backgrounds. • Be able to think through an entire project start to finish not just a part of it. • Being exposed to many technologies • What was not useful? • Flex took a big chunk of our time. • Professional Software Development can hardly be ported over a classroom environment • What I learned • Flex is a good place to learn - coding Source and Design side by side. • Individual tasks need to integrate with other parts at testing and implementation • Not everyone can be a programmer.
Reporting: Chen Shen • My accomplishments • Being a team member of the reporting team, my job was to make sure the logical processing works well in the reporting functions. • we came up with an overall plan as to fix problems in: • data extracting from MySql database • server side support--PHP • Attended discussion and constructive suggestions propelled the reporting team • code fixed for task viewing in a PHP file • Efficient team lead support the team working.
Reporting: Chen Shen • What was useful • The knowledge learned in the class and textbook is first time used in the real work environment. • Get the real experience in working out a whole project and the experience of processing in project developing • Unforgettable experience to work with people with various skill background and cultural background. • What was not useful • Advanced software developing tool helps to simplify work as the same time as increases the learning cure and it is usually difficult to fix problems in an too powerful environment. • What I learned • data modeling is a process more complex than I thought and to satisfy the real requirement, database design could be very complex. • Various ways to test the product whether works well and this work always needs involvement of many people. • Real working experience using php and MySql.
System Engineering: PrashilVirgincar • Team Purpose: To lead the project, coordinate team activities, code migration, develop initial data model, also participated in core coding activities. • Team Accomplishments • Knowledge transfer of system functionality to team members • Developed use cases • Developed the initial the data model along with Becky • Environment Setup/System Configuration • Prepared and maintained configuration management documents • Prepared and maintained technical help documents: SVN document • Maintained code versions on Google SVN • Coded Release 1, Release 2 functionality. • Played vital role in coding functionality in every other Release • Enhanced the UI • Integrated, debugged, error fixing of the code obtained from Task Processing and Reporting teams • Migrated code to production server • Maintained document of issues/improvements to be incorporated for each Release.
System Engineering: PrashilVirgincar • My accomplishments • Knowledge transfer of system functionality to team members • Developed and maintained use case document • Developed the initial the data model along with Becky • Environment setup and dealt with connectivity issues • Prepared and maintained configuration management and SVN document • Maintained code versions on Google SVN • Coded Release 1 and Release 2 along with Nikita Katyal • Coded functionality for creating, updating and deleting task/subtask, creating, editing , viewing and assigning groups, creating, editing and viewing user profile along with Nikita and task processing team • Wrote a procedure to display list of tasks assigned to logged in user • Coded major functionality for displaying data using combo boxes with Amol, Nikita and Neha. This seemed to be a complex task. • Integrated and debugged/error fixing the code obtained from Task Processing and Reporting teams • Migrated code to production server • Maintained document of issues/improvements to be incorporated for each Release. • Coordinated activities of each team and reported same to the Professor.
System Engineering: PrashilVirgincar • What was useful? • Strengthened the knowledge of PHP, MySQL. Additionally learnt a new useful technology – FLEX. • Code migration to production server/web hosting. • Improved leadership and teamwork skills • What was not useful? • Time consumed in fixing relapse of errors. Flex seems to be very unforgiving. Lot of unusual bugs. • Less amount of time to code the application • What I learned • Perfected concepts of Normalization • Concept of translucency • Strengthened the knowledge of PHP, MySQL. Additionally learnt a new useful technology – FLEX. • Code migration to production server/web hosting. • Resolving connectivity issues with Php/Flex/MySQL
System Engineering: Nikita Katyal • My accomplishments • Knowledge transfer of system functionality to team members • Developed the initial the data model along with Becky • Environment setup and dealt with connectivity issues • Prepared and maintained configuration management document • Coded Release 1 and Release 2 along with Prashil Virgincar • Coded functionality for creating, updating and deleting task/subtask, creating, editing , viewing and assigning groups, creating, editing and viewing user profile along with Nikita and task processing team • Coded major functionality for displaying data using combo boxes with Amol, Nikita and Neha. This seemed to be a complex task. • Integrated and debugged/error fixing the code obtained from Task Processing and Reporting teams • Migrated code to production server • Maintained document of issues/improvements to be incorporated for each Release. • Enhanced the UI, developed video for the application. • Coordinated activities of each team and reported same to the Professor.
System Engineering: Nikita Katyal • What was useful? • Strengthened the knowledge of MySQL. Additionally learnt new technologies – PHP/FLEX and their connectivity. • Code migration to production server/web hosting. • Opportunity to build leadership and teamwork skills • What was not useful? • Relapse of common unusual errors in Flash Builder wasted a lot of time. • Less amount of time to code the application • What I learned • Concept of translucency and Normalization • Strengthened the knowledge of PHP, MySQL. Additionally learnt a new useful technology – FLEX. • Web Hosting • Common connectivity issues with PHP/Flex/MySQL
System Engineering: NehaPandita • My accomplishments • Worked with the data model team to come up with the first data model of the project. • Prepared the Use Case diagram for the project, changes in it were further incorporated by my team members with each release. • Worked with the release one of the Configuration Management Plan. • Tried migrating the code on the production server, after so much of the unsuccessful attempts the code was successfully migrated on the production server by my other System Engineers Team members, Prashil and Nikita respectively. • Brought some changes in the layout. • Helped Amol with the drop down issue problem, task that was pending from a very long time. • Coordinated with my team members, and other teams as and when required.
System Engineering: NehaPandita • What was useful? • Learning php, flex was very helpful. • Gained more knowledge on MySql. • What was not useful? • Learning flex in less amount of time was difficult for us. • Working on the project should have started bit earlier, so that the processing would have been done at ease. • What I learned • Learned MySql more deeply, also the use of procedures and routines was a first time experience to me. • Learned how to develop data model.