View
132
Download
0
Category
Preview:
Citation preview
Term Project Report
CMPE 275 – Enterprise Application Development
FALL 2015
Project Manager
Instructor
Prof. Charles Zhang
Submitted By:
TEAM 10
Sai Aishwarya Murukuti (010022584)
Jihirsha Golwala (010030943)
Ruchi Agarwal (010042721)
Nakul Sharma (010090730)
1. Motivation
“Project management is a growing field which has been used increasingly by organizations of
all sizes. The techniques used for project management play an important role to implement
projects successfully, including planning, control of time, cost and quality. As entrepreneurs
and company executive deal with the daily responsibilities of managing an organization or a
team, it is important to use a project management system to oversee projects from conception
to completion. It helps organization carry out large-scale projects on time, within budget and
with minimal disruption to the rest of the organization.”
2. Introduction
“The system, we implement will be beneficial for effective project management. It will enhance
project planning by allowing task distribution and assignment among team members. Also, it
will be useful to keep track of activities and progress of a particular project. The system will be
a communication and coordination medium between project manager and team members. It
identifies the different individuals involved on the project, together with their objectives,
expectations and influences to each other.””
3. High Level Design
The High level MVC design of our project is outlined as follows:
Figure: Architecture Diagram
Three Tier Architecture with MVC:
This project will be based on MVC pattern over three tier architecture where “M” stands
for Model, “V” stands for View and “C” stands for controller. The three tiers are:
Presentation Tier – Responsible for rendering user interface
Business Tier – Contains business logic
Data Tier – Responsible for storing data
The View and Controller will be a part of presentation tier. Model will exist in business tier
and will interact with data tier modules. The three-tier architecture is used to decouple the
layers as much as possible. This will also help to maintain the app and will be beneficial for
scalability purposes.
4. Component Level Design
The Entity Relationship diagram of our project is as follows:
Task, Invitation, Project and User are the entities we have considered for the implementation
of our project. User entity have attributes like name, email, password for a user to sign
up/login for an account. Once the user logs in, he can view the various project s under him
and he can have the access to the various features like creation/deletion of a project/task.
Since the user can create any number of project or tasks there is One-Many relationship
between the user and project, user and task. A single project can have any number of tasks
making it One-Many relationship again. There is one-Many relationship between user and
invitation, project and invitation as a user can send any number of invitations to any project
in a single project.
5. Platforms and Technologies Used
Framework /Technologies: Spring MVC, Hibernate, AOP, IOC, Bootstrap, Thyme leaf,
HTML, CSS, Transactions
Database/DBMS: MySQL
Build Tool: Gradle
Language: Java
6. Features
We have implemented the following features:
1) Account Creation – User has the option to create an account or login in to his account if it
already exists.
2) Project Creation- User has the option to create a project with a title and description, which
gives owner privileges. The project is in planning state just after it is created.
3) Send Invitation- Project Owner has the option to send invitation for other users to
participate in the project by sending an email invitation.
4) Accept Invitation- User has the option to check the various invitations he receives and
accept a particular invitation by click the link in the email.
5) Add Task User has the option to add a task to a project which includes the project title,
description, assignee, state, estimated units of work , and actual units of work . User can
only add tasks during the planning state.
6) Delete Task -User has the option to delete already created task from a project. User can
only delete tasks during the planning state.
7) Cancel Task -Project Owner has the option to cancel already started task from a project
even if the project is in ongoing state.
8) Get Project State- User has the option to get the state of the project i.e planning, ongoing,
cancelled or completed.
9) Assign Task- Project Owner has the option to assign different tasks to different users. The
assignee can be changed any time before the project is completed/cancelled.
10) Start Project-Project Owner can start it when every task is in assigned state and have
estimated units of work filled in. The state of the project changes from planning to ongoing
state once the project is started.
11) Change Project State- Project Owner has the option to change the project state from
planning to ongoing when project is started, from ongoing to cancelled if a project is
cancelled. Assignee has the option to change the state from ongoing to complete if a project
is finished.
12) Cancel Project- Project Owner has the option to cancel a project if the project is in any of
new, planning, or ongoing states.
13) Report Project Progress- User has the option to view the progress of the project i.e of task
units originally planned, task units finished, tasks units to be finished, task units cancelled
with the team members scoreboard sorted by the number of task units completed so far.
7. Screenshots of Features Implemented
Before DEMO:
Sign up screenshot: User, who is not registered with the application, can do sign up
Login Screenshot: Already registered user can login by entering email and password
Homepage Screenshot: This shows features and functionality provided by our application
My Account Screenshot: User can see his/her account and edit details. Also, he can see
projects he is involved in along with their status and description
Edit Account Details: This shows how user can edit his account details
Add project Screenshot: By this feature, user can add new project. Once the project is
created, it is in the Planning state by default. User is not able to change state explicitly.
View Project Screenshot: It gives overall summary of all project
Update Project Screenshot: User can edit project details, by selecting particular project
View Tasks Screenshot : This shows all tasks related to the particular project
Add Task Screenshot: User can add a task to particular project
Invite Participant Screenshot: User can invite other user to participate in a project
Sending Email for invitation: Email is sent to the user who is invited for a project
List Invitations Screenshot: It displays the list of invitations for whole application
View Report Screenshot: User can view report by selecting project
Project report Screenshot: project report is displayed for a selected project
AFTER DEMO:
After demo, we integrated rules that are mentioned in the project description, which has to be
taken care by application.
Projects can be moved to ongoing only if all the tasks are in assigned state
Task in cancelled/finished state can’t be updated
Only the owner of the project can move from ongoing to finished
Every Task should be cancelled/finished to move from ongoing to finished state
Task can’t be changed from assigned to new
Task can’t be changed from started to new state
The task can’t be changed from started to assigned state
The Estimate can’t be changed while the project is ongoing
8. Test Results
Followings are test cases which are written to perform Functional testing. All the validations are
tested, which are attached with snaps in the Screenshot section.
Test Case ID Login
Test Case Description Login functionality
Steps Click on “Login” link on the home page.
Click on Email text box and enter the valid
email address. Enter the password in the
password textbox.
Click on login button
Expected Output User should be taken to the Homepage where
he can access all project functionalities
Actual Output The home screen opens up showing all
functionalities with headings and descriptions
Test Case ID Signup
Test Case Description The new users need to sign up before they
can login in the application
Steps Go to Home scree. Click on Sign up button.
Enter the name, email address as username
and password fields. Click on register button
Expected Output User should be able to register successfully
and login to the application
Actual Output User is able to register and now can login in
the application via valid credentials
Test Case ID My account tab
Test Case Description User can view his/her account details. Also,
he should be able to edit details
Steps Go to Home Screen. Enter the valid username
and password and click on the login button.
After entering, click on the my account tab
Expected Output User should be able to view account details
Actual Output User is able to see the account details. Also,
list of projects he/she is involved in. User can
also edit account details by clicking on edit
details button
Test Case ID Projects tab
Test Case Description The user should be able to add project and see
projects owned by him and projects he is part
of it.
Steps Login in the application and go to Project tab.
Expected Output User should be able to see the list of projects
going all over application and able to add
project with name and description.
Actual Output User is able to see projects and able to add
project
Test Case ID Selecting particular project
Test Case Description User should be able to see all tasks related to
the project.
Steps Login in the application. Click on the project
tab. Select the particular project which you
would like to see
Expected Output The user should be able to see all the tasks
related to the project with status
Actual Output The user is able to view the particular project
and see all tasks related to
Test Case ID Send Invitation
Test Case Description User should be able to invite other
participants in the project to collaborate
Steps Login in the application and click on the
project tab. Select the particular project and
click on it. Click on the send invitation
button. Select the user and click on the invite
button
Expected Output User should be able to invite the other
participant for a particular project.
Actual Output User is able to send the invitation. An email
is sent to the participant with the link of the
project.
Test Case ID Add task
Test Case Description User should be able to add task in the
particular project
Steps Login in the application. Go to project tab
and select the particular project.
Expected Output User should be able to add task in the project.
Actual Output User is able to add task in the particular
project
Test Case ID Invitations
Test Case Description User should be able to see all the invitations
belong to him. It is up to him whether to
accept or reject
Steps Login in the application and go to invitation
tab
Expected Output User should be able to see invitations pending
and belongs to him
Actual Output User is able to see invitations along with two
options: accept or reject. User can select
either of them
Test Case ID Project report
Test Case Description User can see project’s report with gives him
overall idea about it and keep track of the
status
Steps Login in the application and go to report tab
Expected Output User should be able to see project details and
get summary of it
Actual Output User is able to see all details of project
selected. All the tasks are listed with status,
participants and tasks assigned to them
Test Case ID Logout
Test Case Description User can logout from the application and
make sure whatever tasks he had performed
are durable
Steps Go to the my account tab and click on logout
button
Expected Output User should be able to logout from the
application
Actual Output User is logged out from the application and
login page is displayed.
9. Lessons Learnt
This project gave insight to many technologies and concepts like Spring AOP, Hibernate. It
also gave exposure of developing an end-to-end application and the flow of working across
different components of MVC model, view and controller.
10. Future Scope
We can include OAuth functionality for login via Third party application such as LinkedIn.
Projects can be categorized and displayed section wise.
Project tasks contribution can be viewed as form of graph like version control systems.
Recommended