Phantime Documentation

GitHub Repository

        Master branch: https://github.com/cse112-sp20/team5-project (actual master branch)

Master branch: https://github.com/cse112-team5/team5-project (temporary we created)

Phantime has a project overview notion page that goes over the different directories and types of files that are present in our github master branch. This provides a structural guide of our program to new coders in the future. (Project Overview)

Phantime has a style guide that lists out guidelines for writing codes for the coders to maintain consistency in our master branch. Consistency in our code helps with future updates when new coders add features to Phantime. (Style Guide)


Pipeline


Process

Code Commits 🔐

Our commit style requires you to squash your commits. Phantime also utilizes design documents to document new features/changes.

Code is an average being committed every other day. Commit should be < 100 LOL. For each PR merge to master, there must be at least one review done by another coder.


Testing 🧪

             Phantime has a tester team who is responsible to produce tests that check the

functionality of the written code from the coders. The testing team is independent of the

coders, and coders should not be writing any tests.

We write tests for the foundational functions employed in the background files, user

interface, and integration tests to ensure all processes are working.

We have testers who write simple unit tests, and others who work on integrating

frameworks and setting up a simple tester html file for executing these tests.

Our tests are in the /tests folder. They are executed using the tester html file

/tests/tester.html.


Documentation 📝

Firebase Visualization: We created a visualization of our firebase database hierarchy, showing what and how data are stored, updated in Phantime. (Firebase Diagram)

        Initial Pitch: Our team leads presented our project pitch to Professor Powell, which

includes the project concept and the problem we wish to resolve. (Initial Pitch)

Demo Recording: Phantime created a demo video at the end of sprint 3 to showcase our

development progress. The recording includes MVP features such as login, productivity

score, and join a team (In class Demo)

Commercial: Phantime created a commercial for our product at the end of sprint 3 to

convey the idea behind the product and what to expect when the software is shipped

by the end of sprint 4.(Phantime Commercial)

Project Ideation: We utilize miro to brainstorm our project idea with the intention to produce some software that helps people to achieve better productivity and less distraction in a remote setting. (Miro Board)

Spirit Assignment: For each spirit, our team leads send out assigned tasks for each department to complete. The tasks are often due by the next Stand Up meeting on Monday. (Assignment 1, Assignment 2, Assignment 3, Assignment 4)

Scrum Board: We used Zenhub for our project scrum board. We adopt agile software

development process and planned our features into user stories and tasks, labeled with

priority and description. During our third spirit, our Zenhub free trial went expired. We

worked with our liaison and decided to create a new account. (Scrum Board, Format)

UI Design: We design our user interface using Figma for better team collaboration. We

iterated throughout the spirits and recorded the different changes on Figma. (Prototype)

Feature Doc: The coder team wrote out the design specification for each task assigned

for the current spirit in a weekly document. The document includes features needed to

be implemented, list of files the coders would code in, and design updates from the

Research & Design team. (Sprint 1(User Story Planning), Sprint 2, Sprint 3, Sprint 4)

Website: Phantime has a website that gives an overview of the features of the

extension, how you can contribute to the project, and the latest updates regarding the

Software. (Website)

Project Overview: Phantime has a project overview notion page that goes over the

different directories and types of files that are present in our github master branch. This

provides a structural guide of our program to new coders in the future. (Project

Overview)

        Team Style Guide: Phantime has a style guide that lists out guidelines for writing codes

for the coders to maintain consistency in our master branch. Consistency in our code

helps with future updates when new coders add features to Phantime. (Style Guide)


Tools Selection 🛠️

Types

Tools

Use It ?

Pros/Cons

Agile Project Management

Zenhub

  • Coders had experience with Firebase from CSE 110.
  • Track your velocity with Burndown Charts, integrated file sharing in GitHub

Jira

  • More integration and list of features that is suitable to a more complex agile software project.

Communication

Discord

  • Voice chat function is highly effective and convenient for pair programming.
  • UI that lists out clear who is online.
  • Most of our team members have it.

Slack

  • Utilized by the CSE 112 staff and other teams at large.

UI Design

Adobe XD

  • Free Adobe CC product that works well with Photoshop and Illustrator.
  • Doesn’t work for large scale sharing

Figma

  • Easy to share across communication platforms with a link.
  • Commenting system that allows feedback to be posted without a login.

Backend Server platform

Firebase

  • Coders had experience with Firebase from CSE 110.
  • Easy to use and doesn’t have a high learning curve.

AWS Amplify

  • Amplify can use GraphQl to simplify data processing
  • Has a higher learning curve

Continuous Integration

CircleCI

  • Coders had experience with Firebase from CSE 110.
  • Recommended for small projects, where the main goal is to start the integration as fast as possible

TravisCI

  • Recommended for cases when you are working on the open-source projects