brian wyka. web-based project manager ideal for small company portal for employees to interact...

31
NotiTask BRIAN WYKA

Upload: margaret-johnson

Post on 31-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

NotiTaskBRIAN WYKA

Background

Web-based project manager Ideal for small company Portal for employees to interact with

each other A way for administrators to monitor

their subordinates and keep them up to speed on every day tasks

Designed to update dynamically and maintain itself

Background

NotiTask Noti: stands for notification Task: self-explanatory

Put these two terms together to form a system where tasks are assigned and notifications are sent automatically by the system to keep all parties updated

Motivation

I worked for a start-up company Very disorganized and hard to coordinate

with others when working remotely in different locations

I am an organized person and like to have important things in my life structured

So I decided to develop a project manager that would not only benefit myself, but the people I was working with as well

Description

Static Pages Home: first page you see when you log in Projects: all projects assigned to user logged

in Calendar: events and tasks in time format Mailbox: messages between users Account: custom user settings Admin: reserved for administrators on the

system

Description

Dynamic Pages The content will be unique to the

individual logged into the system The users registered with the system

control the content that appears on the pages

Home Page

The home page will be designed so that all important updates will be available to the user immediately upon login, including: Project/task notifications New messages Annoncements

Projects and Tasks

This page will have all the projects assigned to the user logged in or to the team that the user is a member of…

Project: collection of tasks Assigned to individual user or team of

users Project assigned to team has tasks

available to users on that team Project assigned to user has tasks only

available to that respective user

Projects and Tasks

Project and Task Attributes Date: created, due, completed, approved Assigner (Administrator) Assignee (User or Team) Title and Description Status: assigned, in progress,

completed, approved Optional file attachments

Task Status Updates

When a task status is updated by a user, the project containing the task is updated by system in the back-end of the program

Example Scenarios: Project Assigned: no tasks have been

started Project In Progress: at least one task

in progress Project Complete: all tasks are

complete Project Approved: all tasks have been

approved by administrator

Calendar

A timeline reserved for the user to keep track of personal events as well as a service to put project and task due dates in perspective

Composed of three separate views: Today: events for the current day Week: events for current calendar week Month: events for the current calendar

month

Mailbox

Substitute for office mail such as outlook or web-based email

Mailbox will contain incoming and outgoing messages between users as well as some messages from the system Inbox: all messages received from users Outbox: all messages sent to users Compose: send message to user(s)

Account

The account page is where the user can change and update custom settings such as: Personal information Authentication credentials Notification Settings Add To do items Add Calendar events

Admin

The administrators within the system will only have access to this page

From this page they control the flow of the entire environment essentially

The admin page is broken down into 6 sections: Projects, Tasks, Files, Teams, Users, and Announcements

Admin – Projects and Tasks

Where the admin creates, edits, manages, and removes projects and tasks

Managing consists of monitoring the projects’ and tasks’ statuses as well as approving them when completed

Admin - Files

The files section will allow for uploading, deleting, and downloading files The files will be stored in a database

table so each file will also be able to be associated with a specific project and/or task

Admin – Teams and Users

This section will allow the admin to create, edit, and remove teams and users

Each user must be associated with a team

Admin - Announcements

This will be an area for the admin to post announcements as well as remove them

The announcements will show up on the home page so they are one of the first things noticed by the user logging into the system

All Pages

Each page will have its own respective sub menu to navigate within itself

Also each page will have a to do list pane and a user list pane

The only exception is the projects page where instead of the to do list and sub menu, there will be a list of projects and tasks, which allows easy navigation between them

To do List and User List

To do List: pane where users can add personal items “to do” These individual items can be created,

edited, and removed The user list tracks users online as

well as shows you the offline Provides quick access to message a

specific user or start a chat

Interface Requirements

Nice and design, nothing fancy, but still appealing to the eye

A layout which allows for easy navigation and transitions between pages

User-friendly environment

System Features

Authentication User has user name and password to log

in to system Security

Handles sessions to expire if user inactive for specified period of time, prompt user security questions if logging in from different IP address, etc…

System Features

Notifications: sent for project and task assignment, project and task status update, project and task update, etc… Email SMS Mailbox Message

Purpose: keep user updated when not logged into system, if important update, user will be notified by SMS (text message)

Navigation Menu

The navigation menu contains all page links as well as sub page links

The projects tab is updated dynamically and has a list of the assigned projects as the sub menu items and for each project has its tasks as further sub menu items

System Design

Database Design

The database stores all the information that makes each page’s content custom and unique to the user logged in

Database tables: Activity Log: logs site activity when users log in successfully or in failure Comment: to do item, mailbox message, chat message, announcement Event: events to show up on calendar File: stores files in a BLOB field as well as other information to describe file Notification: populated by the system to show notifications Project: project information Task: task information and associated project User: personal information, authentication credentials User Settings: custom settings enforced by user User Team: list of teams that administrator has added, in which users must be a part

of

Nonfunctional Requirements

Browser Compatibility Big issue with all the browsers out there

today, more specifically the earlier versions of Internet Explorer

List of browsers to be tested: Chrome, Firefox, IE versions 5.5-8, Safari, Opera…

Most issues lie within the Javascript being executed client-side as well as the CSS or the look and layout of the page

Nonfunctional Requirements Structure

Have a designated blue-print for the system that stays in-tact throughout development

Organization Have the underlying structure of the page be

organized for the developer or team of developers

All files will have a system and a specified folder where they belong

All interactions between files and scripts will be coordinated and executed in similar manners

Implementation

Web based programming languages: PHP - Hypertext Preprocessor JavaScript – almost like a web version of java

Markup HTML/XHTML – Hyper Text Markup language CSS – Cascading Style Sheets

Database Manipulation SQL – Structured Query Language phpMyAdmin: portal to manage database(s)

and tables within databases

Timeline

Worked on project over winter break so have a flexible remaining timeline for rest of project

Hope to accomplish the rest of the remaining tasks within the next month and a half

The rest of the time will be to optimize compatibility as well as perform exhaustive testing and to receive user feedback

Questions and Suggestions

Hopefully I can answer your questions…

Any suggestions for my project??