Project Plan - OmegaOoh/ku-tangtee GitHub Wiki

KU TangTee Project Plan

Author: Teerapat Trepopsakulsin

Revised: 29 Nov 2024

Statement of Work

The project will produce a web application for gathering people for events or activities that satisfy the requirements as specified in Requirements. The application will be written in Python and JavaScript, using Django and Vue.js frameworks, and runnable on Windows, Linux, or MacOS hosts containing the required software.

Development Process

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

Workflow

  • 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.
  • Defects and other issues are recorded in a Github Issue Tracker.
  • Weekly meeting every Monday afternoon via Discord group chat or actual meetup.

Technology and Tools

  • The application is written in Python using the Django web framework.
  • The application uses Vue.js as a front-end framework.
  • The application uses MySQL PostgreSQL as the database.
  • Github Wiki for project documents (Information hub).
  • Github Project for backlog, task planning, and iteration task boards.
  • PyCharm and Visual Studio Code IDE for coding and running tests.
  • Discord group chat for communication between developers.

Timeline

Week Major Work and Features
1 Write Project Inception.
Initialize Django project.
Create UI mockup.
Identify coding guidelines.
Implement activity hosting.
Create an interface for visitors to find the activity.
2 User activity creation.
User activity modification.
Google OAuth Authentication System.
3 Backend uses REST Framework.
Show profile pictures of users.
4 Realtime Chat.
The user can leave the activity.
5 Check in system.
Profile creation and profile page.
View outdated activity.
Images in chat and detail page.
6 Check in via QR Code.
Reputation System (Points collection and reduction).
Multiple hosts.
Activity participant kick.
Message spam prevention.
7 Activity Location in detail.
Pagination for Activity Index, Participant, Chat.
Separate recently joined and hosted activities.
8 Ensure the application is runnable on different operating systems.
Create and test installation instructions.
Review, document, and cleanup all code.

Milestones

Iteration Milestone
1 Activities can be created and shown with the number of joined users.
Project Inception is complete.
2 Activities should show its own specific time and location.
Users can authenticate using Google OAuth.
Users are required to authenticate in order to create or join activities.
Users can create an activity.
Users can edit an activity's details.
3 Backend implemented the chat system.
Show the name and profile picture of activity participants.
The activity has a dedicated host.
4 Realtime Chat is fully implemented.
Users should be able to find, join, and leave activity.
5 Check-in system is implemented.
Backend implement profile creation.
Image shows in detail and chat.
6 Users should get a penalty if they don't show up on an activity.
Activity has multiple hosts.
7 Activity Location in detail.
Pagination for Activity Index, Participant, Chat.
8 The application runs on platforms meeting the software requirements.
The application is deployed and accessible from the internet.

Code quality maintenance

  • Strictly following guidelines as stated in Coding Guidelines.
  • Maintain code coverage above 80%.
  • All exceptions should be caught and correctly handled.
  • Code is well-documented.

Risk management

  • Unsatisfactory features: During meetings, review and discuss requirements and specifications, and reach out to potential stakeholders or users frequently to ensure that the features remain within scope.
  • Code quality risk: Follow code quality maintenance.