Giter Club home page Giter Club logo

project-mender's People

Contributors

daniakalomiris avatar danielpri avatar heyhellomila avatar jamalg16 avatar mickeypa avatar pinmeister avatar songtone avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

project-mender's Issues

Implementation for User Profile Page

Story: As a user, I want to be able to view and edit my profile.

Steps:

  • Implement Display user information.
  • Implement Edit user information (edit name page, edit phone number page, edit email page, edit password page)

[Total SP: 18]
[Priority: High]
[Risk: Low]

[Subtask of #31]

Implement login views and Redux Store

  • Frontend view to login (call API and receive jwtToken)
  • Storing jwtToken local storage and storing user redux store (jwtToken will be passed as a header when calling APIs that require a user to be logged in)
  • Utility method to decode jwttoken and get user id
  • Logging out and updating redux store + local storage

A subtask of #9

[SP: 4]
[Risk: Medium]
[Priority: High]

Release 3: Documentation

Subtasks:

  • Update logos on wiki page and readme. (@milaroisin: 0.5)
  • Application workflow update (@milaroisin: 0.5)
  • Backend - Class Diagram: #214
  • Frontend - Class Diagram: #240
  • Milestone Documentation: [@JamalG16: 3, @milaroisin: 3]
  • Stakeholder Requested Documentation #249 [@milaroisin: 1]
  • Application Workflow Video Capture #250 [SP: 6]
  • Capstone Website Showcase [@milaroisin: 1]

[Total SP: 12]
[Priority: High]
[Risk: Low]

Frontend HTTP Provider

try to fix axios and if it doesnt work, replace it

priority: high
risk: medium
story points: 2

User: Creating and Storing Pictures in Work Order

Story: As a User, I want to take pictures when creating a work order.

Steps:

  • Implement the ability to store pictures in DB & Update API endpoint and services: #84
  • Frontend integration of API and camera usage: #85

[Total SP: X]
[Priority: Medium]
[Risk: Medium]

Mila's Note: 1 hour spent on research.

Contractor: View Work Order Pool

As a contractor, I want to be able to view the work order pool.

Steps:

  • # (Issue Number of Subtask)
  • #
  • #
  • #
  • #
  • #

[Total SP: ]
[Priority: ]
[Risk: ]

User: View Work Orders

Story: As a User, I want to be view all my work orders.

Steps:

  • Construct API: #16
  • Implement Work Order View for Homeowner: #17
  • Implement Functional Bottom Navigator: #35
  • Sort by priority, sector, type and status: #179
  • Update API to include more details: #177
  • Filter work orders: #176

Unit tests for work order service can be found here: #192

View description: A table with all work orders will be displayed, with pagination and a maximum of 10 work orders per page. The list of work orders will have only general information about it. The user can then click on a specific work order to open up the card with all of the work order's information.

[Total SP: Iteration 7 - 9 (13 @daniakalomiris , 2 @MickeyPa ), Iteration 8 - 3 SP @daniakalomiris ]
[Priority: Medium]
[Risk: Medium]

Implementation for Update User API

Story: As a user, I want to be able to view and edit my profile.
After this implementation, the User would be able to update their own information.

Steps:

  • Implement PATCH user by id.

[Total SP: 2]
[Priority: Medium]
[Risk: Low]

[Subtask of #31]

Environment setup

Stack will be based on MERN (MongoDB, Express, React, Node).

Risk: Low
Priority: High
Story points: 3

HomeOwner: Add Properties

As a homeowner, I want to be able to add properties.

Description:
When pulling the sidebar, there will be a button next to the list of properties, where a user can add a property. Upon clicking the button, a modal will popup with the name, address and type of property. Upon completion, the user will submit the new property and be redirected to the homepage.

  • #71 Implement frontend flow and views
  • #161 Refactor property entity and all related classes to include city, country, postal code and province
  • #12 Implement API

unit tests for property service can be found here: #192

[SP: 4 (3 SPs iteration 6, 1 SP iteration 4)]
[Risk: Low]
[Priority: high]

Homeowner: Implementation for Work Orders View

Subtask of #4

Story: As a User, I want to be view all my work orders.

  • Change implementation to use new API
  • View work orders (general info of each work order)
  • Sort work orders
  • Individual work order view

The WorkOrders should be of card format.
image

Below is a mockup of the work orders view in the Job List page and the individual work order view.
78579573_432651401020001_5139552381167468544_n

[Total SP: (7 @daniakalomiris) (2 @MickeyPa)]
[Priority: High]
[Risk: High]

Implement select property

User should be able to select a property from their list of properties and the information displayed should change accordingly.

This selected property should be set at the Redux store level, as it will be information required by most components.

subtask of #22

[SP: 3] (2: @daniakalomiris, 1: @JamalG16)
[Risk: Low]
[Priority: Medium]

Release 1: Sign-off (Accepted)

Features to implement

  • Add pictures in creating work order
  • shopping list
  • sorting work orders
  • search work orders
  • job list
  • add property
  • settings -> choose language (includes localization)
  • user profile page

Improvements:

  • improving the UI registration/create work order/login

Improve UI of create work and include error handling

Create multi-step form to create a more intuitive/user-friendly order creation experience and include error handling. Also, when a user tries to enter a keyboard input, the keyboard should not hide the input. Upon submission, the user should not be able to repeatedly click the submit button to submit copies of the work order.

subtask of #131

Priority: high
risk: medium
SP: 5

Release 1: Documentation

  • Architecture Diagram

  • Project Milestone Update

  • Sequence Diagrams

  • Readme and Set Up Instructions

  • Code Problem Solving Demo Slide (1) for Release 1

  • License Check

Story Points: 4 (1 Daniel, 1 Mila, 1 Jamal, 1 Patrick)
Priority: Low
Risk: Low

Implement login API

  • API to login (should return a jwtToken)
  • Implement jwtToken validation utils for future APIs

subtask of #9

[SP: 2]
[Risk: Low]
[Priority: High]

Implement datepicker in work order creation

Story: As a user, I want to be able to set the due date of my work order.

subtask of #78

  • Implement date picker component
  • Implement appearance package to fix iOS bug

[SP: 1]
[Priority: High]
[Risk: Low]

As a user, I want to be able to remain logged in for more than a day.

Currently, the JWT expiration is set to 24hours. To avoid token expiration and logging out of an active user, a token refresher is required. This will function in a way that if a user has not interacted with the application with their account in the past 7 days, they will need to log back in. Otherwise, the token will be refreshed. Additionally, when the user's token is expired, this is not handled in the application and the unauthorized API calls simply lead to a non functional app. When a token is expired, the user should be redirected to the login page, stating that the session has ended.

NOTE: Considering the low priority of #76 and #77, #244 will be prioritized and will be completed independently.

  • #76 Implement a token refresher API
  • #77 Integrate token refresher in frontend
  • #244 handle expired token in app & Investigating token refreshing & session management

[SP: Iteration 11 - 3 SP]
[Priority: 76 & 77 Low, 244 High]
[Risk: low]

User: Set Due Date on Work Order

Story: As a user, I want to be able to set the due date of my work order.

  • #79 Implement date picker in UI

blocked by #74

[SP: 1]
[Priority: High]
[Risk: Low]

Release 2: Sign-off (Accepted)

As per stakeholder requirements, we scaled down the features to focus on items that are of high importance listed on the tracker. The focus will be to set up photo storage database and to finish the front-end for contractor for the duration of this project time.

The features for complete app development will be taken over by the future team as listed in the features tracker.

CircleCI Javascript Integration

Subtask of #121.

CircleCI will need to be configured to build the project by running NodeJS commands, running unit tests and test coverage.

  • Configure CircleCI for NodeJS
  • Set up Mocha and Istanbul tests to run during each build
  • Add Mochawesome to generate coverage reports for unit tests
  • Add test results and coverage reports to CircleCI artifacts
  • Add ESLint

SP: 5 (3 @daniakalomiris, 4 @milaroisin )
Priority: High
Risk: High

Implement add property views and flow

subtask of #70
Blocked by #159

  • Integrate API
  • Validate form inputs
  • Create page that can be navigated to

Integrate google validation to verify the address exists
No google validation was integrated as there is always the possibility that the property is new.

SP: 2
Risk: Low
Priority: High

User: View Own Profile

Story: As a user, I want to be able to view and edit my profile.

Steps:

  • Update user API: #30
  • Design User profile page: #29
  • Implement side menu: #36

[Total SP: 23 (Iteration 4 - 3SP, Iteration 5 - 2SP, Iteration 8 - 18SP)]
[Priority: High]
[Risk: Medium]

Improve registration UI

  • Create multi-step form to create a more intuitive/user-friendly user registration experience
  • Include back button to go back to welcome page
  • Redirection to login upon registration

subtask of #83

SP: 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.