Project Plan - Terminaator/chatbot GitHub Wiki

Roles and Responsibilities

  • Project manager - Meelis Perli
  • Documentation and wiki management - Paul Liibert
  • Developers - Meelis Perli, Paul Liibert, Einar Linde, Claudia Kittask

Communication

Our main communication platform is Slack, where we can contact with the client and discuss about problems/successes. We plan to get together at least once a week or when needed.

Work Process

We ensure, that we have the same idea about the project outcome through regular meetings with the client and Slack chat. We also give access to every document we create to the client and ask him to review and make relevant corrections if needed. With that we have provided client with enough information, that he can be sure that we are building the right application. We ask feedback from client every time we get some functionality to work. In the beginning we try to ask more feedback to stay in the right path. We get clients feedback via Slack channel or through meetings. We also ask feedback from our users (students mostly) to ensure that the application is easy to use and isn't confusing. Our project manager is Meelis, he is going to check if all tasks are going to be handled by some team member. If some tasks are not done in specified time frame, then Meelis is going to assign the task to suitable team member. Specific task will be implemented by the task's assignee. We will do functional and non-functional testing. Test will be written by the person who wrote the code to be tested. Code will be reviewed by the team members while developing. Verification is done by the testers and our client will validate it.
Task is considered to be done, when we have tested it and also got positive feedback from the client.

Scope

All time estimates and assignees are in our issue tracker.

1st iteration:

  1. Project plan - Claudia (2h)
  2. Non-functional requirements list - Meelis, Paul, Einar, Claudia (2h)
  3. Set up issue tracker - Meelis, Paul, Einar, Claudia (2h)
  4. Functional requirements - Meelis, Paul, Einar (2h)
  5. Project vision - Paul (1h)
  6. Set up VCS - Paul (1h)

2nd iteration

  1. Detailed requirements - Meelis, Paul, Einar, Claudia (1h)
  2. UI mockups - Claudia (2h)
  3. Release notes - Meelis, Paul, Einar, Claudia (1h)
  4. Defining scope - Claudia (1h)
  5. Continuous Integration set up - Claudia (1h)

Tasks involving programming:

  1. UI ready - Claudia (2h)
  2. Processing basic user sentences. - Meelis and Einar (6h)
  3. Query forming for some of the requests - Paul (4h)
  4. Replying to user. Paul, Claudia (3h)
  5. User can ask bot about:
    • courses
    • structural units of UT
    • curriculum in UT
    • educational institutes of UT

3rd iteration

  1. All core user cases covered - Meelis, Paul, Einar, Claudia (10h)
  2. Automated tests - Meelis, Paul, Einar, Claudia (2h)
  3. Continuous Integration Claudia (1h)
  4. Requirements are identified - Meelis, Einar, Paul, Claudia (2h)
  5. Scope Claudia (1h)

Tasks involving programming:

  1. Processing authenticated user questions with estnltk - Meelis, Einar (8h)
  2. Authentication system in place Paul, Claudia (8h)
  3. Query forming for authentication needed API calls - Paul, Claudia (4h)
  4. Tests for provided functionality - Meelis, Einar, Paul, Claudia (3h)
  5. Refactoring - Meelis, Einar, Paul, Claudia (2h)

4th iteration

  1. Application covers all the requirements defined - Meelis, Paul, Einar, Claudia (10h)
  2. Automated tests - Meelis, Paul, Einar, Claudia (2h)
  3. CI present - Claudia (1h)
  4. Internal acceptance testing - Claudia (2h)
  5. Non-functional requirements verification - Meelis, Paul, Einar, Claudia (1h)
  6. Release notes - Meelis, Paul, Einar, Claudia (1h)
  7. Peer-review analysis - Meelis, Paul, Einar, Claudia (1h)

Tasks involving programming:

  1. Tests for provided functionality - Meelis, Einar, Paul, Claudia (2h)
  2. Refactoring - Meelis, Einar, Paul, Claudia (2h)

Tools for developing

  • Django framework
  • Python 3
  • Angularjs
  • Library estnltk