Skip to content

Project Plan

Parima Sangsirakoup edited this page Oct 13, 2024 · 19 revisions

Project Plan

Revised: 29-09-2024

Statement of Work

The project will produce a web application for managing queue that satisfies the requirements as specified in Requirements. The application will be written in Python and runnable on Windows, Linux, or MacOS hosts containing the required software.

Development Process

Development will use an iterative process. Each iteration has a length of one week starting on Monday and ending on Sunday.

Project Documents

Project documents and technical documents are stored in the project wiki on Github.

Project documents include:

Tasks and other work for each iteration are recorded in a Github Project attached to the repository. The Github Project contains a Task Board for each iteration.

Github issue tracker is used to record defects and other issues.

Workflow

Each iteration starts on Monday and ends on Sunday.

  • At the start of each iteration, the Vision, Project Plan, and Requirements are reviewed and updated.
  • A goal for the iteration and at least 1 milestone are defined and written in the Iteration Plan.
  • Major work for the iteration is defined and recorded in the Iteration Plan.
  • The application design is reviewed and revised (if needed) for new features to be added.
  • The Iteration Plan, including the goal, milestone(s), and major work, is added to the wiki.
  • Tasks are defined and written in the Project Backlog on Github.
  • A Github Task Board for this iteration is created to track work in this iteration.
  • Github Flow is used to manage code.
    • For each iteration and person a new branch is created from main and work is committed to that branch.
    • At the end of the iteration, after the work is tested a Pull Request is opened to initiate a final review.
    • When the work is satisfactory, the branch is merged into main and the Pull Request is closed.
  • Defects and other issues are recorded in a GitHub Issue Tracker.

Communication

  • Every Sunday, we will have an online meeting to review the process done in this iteration.
  • Weekly meeting with TA.

Technology and Tools

  • The application is written in Python using the Django web framework.
  • GitHub for source code management, issue tracking, and automated testing.
  • Github Wiki for project documents.
  • Github Project for backlog, task planning, and iteration task boards.
  • Pycharm IDE for coding and running tests.
  • Line application for meetings between members.

Major Deliverables

  • First demo which will be deliverable on 28-29 October.

Timeline

Iteration Major Work and Features
1 Learn fundamentals of creating a web application.
Write up inception documents.
Create a domain model.
Implement starter code.
2 Implement home page for customer for tracking their queue.
Implement page for business owner to add entry to queue and get the code for customer to track.
Implement page for business owner to see all entry categorize by queue.
3 Create Business profile.
Implement feature for business owner to edit and delete their profile.
Implement feature for customer to see estimate waiting time of business that they join a queue.
Implement feature for customer to receive reminder notification.
4 Implement feature for customer to view business that currently open and the currently queue they have.

Milestones

Iteration Milestone
1 Domain model established and recorded in wiki as a UML diagram.
2 Business owner can edit existing queue.
Customer can track their entry in a queue.
3 Business owner can edit their profile.
Customer can see estimate waiting time of business that have more than 10 queues in queue history.
Customers will receive a reminder notification when there are 5 entry ahead of them in the queue.
4 Customers can view businesses that are currently open and see how many people are in their queue.

Clone this wiki locally