Code Monkey home page Code Monkey logo

foundations's People

Contributors

ant066 avatar bashleigh avatar bdragon93 avatar byt3sage avatar cbryanreapit avatar dannd4 avatar duong-se avatar github-actions[bot] avatar hollyjoyphillips avatar huygn avatar jblok avatar joshbalfour avatar khacvy007 avatar lexuannha avatar ngswip avatar nphivu414 avatar phmngocnghia avatar plittlewood-rpt avatar rpt-ahowe avatar rpt-uk-github avatar rwilcox-reapit avatar sanguinaris avatar shaun-farrell avatar snyk-bot avatar szepeviktor avatar trankhacvy avatar vinhnhq avatar vuhuucuong avatar willmcvay avatar zlatanpham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

foundations's Issues

Scaffold SMB Application

As above; should import the following and associated scripts into SMB GraphQL package:

  • Styled Components project
  • Elements
  • Linting
  • Unit Testing
  • E2E testing with Cypress
  • React Router
  • Config manager and setting of env variables
  • Removal of any unused packages (there are a lot in the current package.json)
  • Any tidy up you can see from the original scaffold, unused code etc.

Clean up forgotten password flow in Marketplace

Summary: As we are now using Reapit Connect to handle the 'Forgotten Password' flow we no longer require the use for the code for the developers login on the marketplace.

Task: To clean up the forgotten password flow in the Marketplace for the Developer Portal

Add ‘Etag’ header in PATCH requests for LTL app

Summary: To ensure the server knows we are editing the last version of a resource, we will need to include a ETag header when making PATCH requests

Task:

  • Include ETag header when performing a PATCH in the header: 'If-Match'

Notes:

  • You can get an ETag from a singular resource GET in the ETag header. The ETag is also included in the model as attribtue '_eTag'
  • Error description if not included: description: "Precondition failed: Update operations require that the target resources current ETag is included in the requests 'If-Match' header."

TEST

Summary of Request:

TEST

Expected Behaviour

TEST

Update File Uploader Component in LTL App

Summary: Currently we are storing the images as URL's in the metadata. When available from the Backend team, we need to update the component in the following places.

Task: is to update the File Uploader component when available.

Locations:

  • Primary ID
  • Secondary ID
  • Address History

Add ‘Etag’ header in PATCH requests for AML App

Summary: To ensure the server knows we are editing the last version of a resource, we will need to include a ETag header when making PATCH requests

Task:

  • Include ETag header when performing a PATCH in the header: 'If-Match'

Notes:

  • You can get an ETag from a singular resource GET in the ETag header. The ETag is also included in the model as attribtue '_eTag'
  • Error description if not included: description: "Precondition failed: Update operations require that the target resources current ETag is included in the requests 'If-Match' header."

Migrate Radio Select to Elements v2.0

Background

Elements UI library is being refactored to ensure better DX, UX and a more lightweight, flexible library with a more consistent API

Task

  • Should be part of the input module ie Input.RadioSelect
  • Migrate component in line with overall specification here: https://github.com/reapit/foundations/blob/master/packages/elements-next/src/index.mdx
  • Special concern should be given to the Specification section above, consistency, reusability and lightweight are our driving principles
  • Should be deployed to new Elements Next documentation app in Docz library.
  • Both code, testing and documentation to be of the highest possible standard, no corners cut. This is the library we will be using internally for a long time.

Update File Uploader Component in App Store

Summary: Currently we are storing the images as URL's in the metadata. When available from the Backend team, we need to update the component in the following places.

Task: is to update the File Uploader component when available.

Locations:

  • Submit App
  • Edit App

Create Query to populate 'Users' table in SMB App

Relates to ticket: #71

Summary: Create Apollo server side query to populate the 'Users' table on the SMB App

  • Query Apollo service to get Negotiators by company id
  • Should also support upload of offices by CSV
  • Table should populate with correct data

Mobile UI fixes for the Welcome Wizard

Please see the following UI issues detected when viewing the Welcome Wizard in mobile view on the Developers Portal.

Location: https://dev.marketplace.reapit.com/developer/welcome

  • When in mobile view the circle and line alignment are slightly off when you go past number 1. 1 is fine.

See number 1:
image

Number’s 2-5 selection circles are not central:
image

  • See example of the alignment of the line filler after number 1:
    image

  • The numbered navigation is also not centred in the container (slightly to the right):
    image

  • Change the ‘Get Started’ location on both mobile view and browser. Move the ‘Get Started’ button next to ‘Prev’ on step 5. That way the scrolling is always consistent.

See mock up for web:
image

See mock up for mobile:
image

  • When the user clicks 'Next' on step 1, the page remains on the next button (the bottom section of the text), it should automatically navigate the user back to the top of the page.

Create the navigational icons and routes for the SMB App

Task: To create the routes and icons for the nav bar for the SMB application

Component from elements: https://reapit.github.io/elements/?path=/story/menu--primary

Routes and images below:

Home Icon: FaHome
Route: \home

Offices Icon: FaBuilding
Route: \offices

Users Icon: IoIosPeople
Route: \users

Sources Icon: FaClipboardList
Route: \sources

Marketing Icon: MdWeb
Route: \marketing

Lettings Icon: MdLibraryBooks
Route: \lettings

Support Icon: MdLiveHelp
Route: \support

Install Agency Cloud Icon: FaDownload
Route: \install

Create Query to populate 'Offices' table in SMB App

Relates to ticket: #63

Summary: Create Apollo server side query to populate the 'Offices' table on the SMB App

  • Query Apollo service to get Offices by company id
  • Should also support upload of offices by CSV
  • Table should populate with correct data

Add ‘Etag’ header in PATCH requests for GEO Diary App

Summary: To ensure the server knows we are editing the last version of a resource, we will need to include a ETag header when making PATCH requests

Task:

  • Include ETag header when performing a PATCH in the header: 'If-Match'

Notes:

  • You can get an ETag from a singular resource GET in the ETag header. The ETag is also included in the model as attribtue '_eTag'
  • Error description if not included: description: "Precondition failed: Update operations require that the target resources current ETag is included in the requests 'If-Match' header."

Write spec Elements v3, Docs, Elements v2 and Roadmap

Background

Elements UI library is being refactored to ensure better DX, UX and a more lightweight, flexible library with a more consistent API

Task

  • Write a base spec and add to Readme.md file on Elements for v3 of lib
  • Add to Gitbook, changes in Elements v2, roadmap for v3

chore: migrate life time legal app to foundations mono-repo

The Life Time Legal repo should be a package within the main Foundations repo

Should preserve git history
Should archive old project
Should normalise dependencies and tooling (tests, linting etc) with base repo
Should have a very basic pipeline that publishes master to NPM (Currently Manual)

Migrate Text Area to Elements v3.0

Background

Elements UI library is being refactored to ensure better DX, UX and a more lightweight, flexible library with a more consistent API

Task

  • Should be part of the input module ie Input.TextArea
  • Migrate component in line with overall specification here: https://github.com/reapit/foundations/blob/master/packages/elements-next/src/index.mdx
  • Special concern should be given to the Specification section above, consistency, reusability and lightweight are our driving principles
  • Should be deployed to new Elements Next documentation app in Docz library.
  • Both code, testing and documentation to be of the highest possible standard, no corners cut. This is the library we will be using internally for a long time.

As a 'Negotiator', I want to click on 'Read More' from the home page to view a helper wizard

Relates to issue: #36

Given that I am a ‘Negotiator’ and i have logged into the SMB App, I want to click on ‘Read more’ from the ‘Get Started’ section to view a helper guide.

Component from elements: https://reapit.github.io/elements/?path=/story/helpguide--primary

  • Should be on it’s own route /getstarted
  • Content below/images TBC

Content

Step 1: Setting up your Office(s).

Setup your office and additional offices in your company by accessing ‘Offices’. Here you can set your ‘Global Settings’, configure your ‘Areas’ and third-party software ‘Integrations’.

Step 2: Adding Users.

Add your Negotiators, Property Managers and Admin access through ‘Users’. You can add, delete or transfer users between Offices. You’ll need to setup at least 1 admin user before installing the software.

Step 3: Adding Sources and Referrals.

Configure your Lead Sources, Advertising Publishers and add third party Referrals from the ‘Sources’ tab. You can come back any time and add new sources when you need to.

Step 4: Branding your Templates and selecting your Portals.

Personalise your templates & brand your brochures. From the ‘Marketing’ tab you can set your set your company colours, upload your logo and choose which Portals you want to send to.

Step 5: That’s it! Let’s get started.

You can now start the wizard by clicking on ‘Start Setup’ below. We will walk you through the steps and in no time at all, you’ll be ready to install the latest version of Agency Cloud.

Button: Start Setup

Images TBC

Display notification to user when an ‘App Name’ has already been used

Location: https://dev.marketplace.reapit.com/developer/submit-app

Summary:
When a user attempts to add an app using an app name that is already in use, we display this via a notification. The notification needs to be clearer.

Steps to reproduce:
Login as a ‘Developer’ and submit an app with App Name example ‘This is an app’. Once submitted, try and submit another app with the exact same App Name example ‘This is an app’. A notification will appear ‘Something went wrong fetching the data’.

Expected Results:
Login as a ‘Developer’ and submit an app with App Name ‘This is an app’. Once submitted, try and submit another app with the same App Name ‘This is an app’. The following notification should appear: ‘The App name you have chosen has already been used, please try again with a different name.’

Should display when the API description is ‘description: "App name has already been registered, please choose a new name"

See example:
image

Actual Results:
Message displayed is ‘Something went wrong fetching the data’

image

Migrate TS-Defintions repo to Foundations mono-repo

The TS-Defintions repo should be a package within the main Foundations repo

  • Should preserve git history
  • Should archive old project
  • Should normalise dependencies and tooling (tests, linting etc) with base repo
  • Should verify existing pipeline is working by pushing to NPM

E2E: Welcome message for the first time login account

Task: Is to create the end to end test for the 'Welcome Message' after first time login on the 'Developer Portal'

Steps:

  • Mock the cookie COOKIE_FIRST_TIME_LOGIN
  • Login using the developer account
  • Observe that welcome message is shown
  • Logout
  • Login using the created account again
  • Observe that welcome message is not shown

Create/insert data react table into the ‘Users’ page on the SMB App

Dependent on ticket: #71

Summary: Create/insert data react table into the ‘Users’ page on the SMB App, with the following headings:

Columns

  • ColumnsName* - First Name & Surname

  • Telephone* - Number only

  • Email* - Apply email validation

  • Job Title* - Free text field

  • Primary Office* - (drop down menu populated from \offices )

  • Status – Check box ‘Is Active’ - Ticked if ‘active’ is true, unticked if ‘active’ is false

  • The above columns with * indicates they are required fields and must be completed. If a row has been created and those fields are missing, should indicate this by changing the background of the cell. Use colour and opacity settings from https://reapit.github.io/elements/?path=/story/helper--warning

  • Should not post a mutation to the server unless the required fields have been completed.

  • Adding a user is dependent on an ‘Office’ existing, as the user needs to be assigned to an Office.

  • If an office does not exist, should not be able to add any information so should disable table, add new & upload file buttons.

  • Should include message above the table: It looks as though you haven’t yet added an Office, please click here (insert route to \offices) to add an Office before you can add a User.

  • Button: Add New – should add another row and user record when clicked

  • Editing an item should updated the record

  • Buttons to ‘Upload File’ and ‘Download file’

  • Should use Apollo GQL Queries and mutations, tasks to write these on the server side See:

See mock up:
image

Migrate Text Area Editor to Elements v2.0

Background

Elements UI library is being refactored to ensure better DX, UX and a more lightweight, flexible library with a more consistent API

Task

  • Should be part of the input module ie Input.Editor
  • Migrate component in line with overall specification here: https://github.com/reapit/foundations/blob/master/packages/elements-next/src/index.mdx
  • Special concern should be given to the Specification section above, consistency, reusability and lightweight are our driving principles
  • Should be deployed to new Elements Next documentation app in Docz library.
  • Both code, testing and documentation to be of the highest possible standard, no corners cut. This is the library we will be using internally for a long time.

As a 'Negotiator', I want to be able to click on 'Marketing' to view the additional options available

Given that I am a ‘Negotiator’ and I am logged into the SMB App, when I click ‘Marketing’ from the nav bar, I can then see tabs for Templates, Portals and Web Feed

Task: To create a ‘Marketing’ page from the ‘Marketing’ option in the nav bar (route \marketing)

Header: Marketing
Tabs (each tab should be on it’s on own URL):

  • Templates (route marketing\templates)
  • Portals (route marketing\portals)
  • Web Feed (route marketing\webfeed)
    Wording: TBC (use lorem ipsum)

See mock up:
image

Rich Text Editor and HTML Renderer to be added to Utils

Background

Elements UI library is being refactored to ensure better DX, UX and a more lightweight, flexible library with a more consistent API

Task

  • Components should be re-usable but not part of main styleguide
  • Should largely rely on existing solution of Pell & Himalaya - refactor as appropriate
  • Migrate from Elements v2 to Utils/web

As a ‘Negotiator’ I want to login to the SMB App and land on a home page with additional navigation options

Given that I am ‘Negotiator’ and I have just logged into the SMB App, I want to see 3 options to choose from.

Task to create a landing page when a user logs in.

  • Should be on a \home URL

See mock up:
image

Page Heading: Welcome
Sub text: TBC (use lorem ipsum)

Heading: Get Started.
Body Text: TBC (use lorem ipsum)
Button: Read More
Image:
image

Heading: Install Agency Cloud.
Body Text: TBC (use lorem ipsum)
Button: Install
Image:
image

Heading: Support
Body Text: TBC (use lorem ipsum)
Button: Contact
Image:
image

Update File Uploader Component in AML App

Summary: Currently we are storing the images as URL's in the metadata. When available from the Backend team, we need to update the component in the following places.

Task: is to update the File Uploader component when available.

Locations:

  • Primary ID
  • Secondary ID
  • Address History
  • Declaration and Risk Management

As a ‘Negotiator’, I want to be able to view 'Sources' and 'Referrals' so that I can edit/add

Given that I am a ‘Negotiator’ and I am logged into the SMB App, when I click ‘Sources’ from the nav bar, I can then see tabs for Sources & Advertising and Referrals

Task: To create a ‘Sources’ page from the ‘Sources’ option in the nav bar (route \sources)

Header: Sources
Tabs (each tab should be on its on URL):

  • Sources & Advertising (route sources\sourcesandads
  • Referrals (route sources\referrals)
    Wording: TBC (use lorem ipsum)

See mock up:
image

Build pipeline/env for SMB App

  • Create env for the SMB Project: dev.smb-app.reapit.com & smb-app.reapit.com
  • Should use Github Actions
  • Should run unit and e2e tests before deploying
  • Should deploy to development when merging to master
  • Should deploy to prod when pushing a tag as per other apps

Support theming in Elements v3.0

Background

Elements UI library is being refactored to ensure better DX, UX and a more lightweight, flexible library with a more consistent API

Task

  • Task in line with overall specification TBC
  • Create comprehensive list of CSS variables to support theming that can be referenced across the styleguide and loaded globally
  • Allow for an overrides theme to be added so users can customise the base variables to provide a theme

Sentry logs not capturing errors from App Store or GEO Diary

Summary: Errors created in the App Store and GEO Diary are not being captured by Sentry.

Expected Behaviour: Errors created should be logged and notifications sent through the channel

Errors & Images:

The following error was created in App Store by trying to submit an app whilst reaching the limit of 'Unlisted' apps:
image

The following error was created in GEO Diary by trying to cancel an appointment (_etag issue):
image

Create/insert data react table into the ‘Offices’ page on the SMB App

Dependent on ticket : #62

Summary: To add the spreadsheet component (https://reapit.github.io/elements/?path=/story/spreadsheet--basic) to the 'Offices' page and link to endpoint: / Offices

Columns should contain the following headings with the correct formatting options:

  • Office Name* – Field should allow any text

  • Building Number - Field should allow any text

  • Address 1* - Field should allow any text

  • Address 2 - Field should allow any text

  • Address 3 - Field should allow any text

  • Address 4 - Field should allow any text

  • Postcode* – Postcode validation (TBC)

  • Telephone* – Number only

  • Fax – Number only

  • Email* – Email validation

  • Postcode referrals – TBC

  • The above columns with * indicates they are required fields and must be completed. If a row has been created and those fields are missing, should indicate this by changing the background of the cell. Use colour and opacity settings from https://reapit.github.io/elements/?path=/story/helper--warning

  • Should not post a mutation to the server unless the required fields have been completed.

  • Button: Add New – should add another row and office record when clicked

  • Editing an item should updated the record

  • Buttons to ‘Upload File’ and ‘Download file’

  • Should use Apollo GQL Queries and mutations, tasks to write these on the server side

See mock up:
image

As a ‘Negotiator’, I want to view the 'Offices' page on the SMB App

Given that I am a ‘Negotiator’ and I am logged into the SMB App, when I click ‘Offices’ from the nav bar, I want to have the option to access additional pages such as ‘Offices/Areas/Global Settings/Integrations.

Task: To create a ‘Offices’ page from the ‘Offices’ option in the nav bar (route \offices)

  • Page should include the following:

Header: Offices
Sub Text: TBC (use lorem ipsum)
Tabs: Offices, Areas, Global Settings & Integrations

  • Each tab should be on it’s on own URL:
    Offices (route \offices)
    Areas (route offices\areas)
    Global Settings (route offices\globalsettings)
    Integrations (route offices\integrations)

See mock up:
image

Migrate Cognito Auth repo to Foundations mono-repo

The Cognito Auth repo should be a package within the main Foundations repo

  • Should preserve git history
  • Should archive old project
  • Should normalise dependencies and tooling (tests, linting etc) with base repo
  • Should verify existing pipeline is working by pushing to NPM

Apply more efficient scripts for Elements v2.0

  • Migrate inputs to v2.0 project
  • CSS should remain identical, with same variants and options
  • Important that it is heavily tested for no regressions
  • Use variables where possible for everything, no magic numbers and values
  • Should not be in bundle for now

Migrate Config Manager to Foundations mono-repo

The Config Manager repo should be a package within the main Foundations repo

Should preserve git history
Should archive old project
Should normalise dependencies and tooling (tests, linting etc) with base repo
Should have a very basic pipeline that publishes master to NPM (Currently Manual)

Inputs, forms and labels in Elements v3.0

Background

Elements UI library is being refactored to ensure better DX, UX and a more lightweight, flexible library with a more consistent API

Task

  • To include text, password, number, email, date, time, tel, checkbox, radio, text area, file, select
  • Include a separate styled label component
  • Include a separate styled form component
  • Create component in line with overall specification TBC
  • Should implement inputs from Figma styleguide
  • Should be flexible to allow use with any React Form or validation library by way of passing props to component
  • Should show each component as a molecule story, as well as a form layout example with all inputs in it

Image Cropping Tool in Utils

Background

Elements UI library is being refactored to ensure better DX, UX and a more lightweight, flexible library with a more consistent API

Task

  • Out of scope for Elements but there should be an image cropping an upload tool based on Elements v3 file input for use in internal projects
  • Should be exported from Utils / browser package

Update required to LTL app due to Backend changes

Location: https://dev.lifetime-legal-app.reapit.com/

Summary: The backend team have made changes to the /Contact endpoint which will require updates to the LTL App.

IMPORTANT See comment for details of code fixes

Contact Service

Communication

  • Previously the communication object contained ‘homephone’, ‘workphone’, ‘mobilephone’ and ‘email ‘
  • These are now separate fields so we will need to update the frontend to reflect this

Previous Setup:
image

New setup:
image

Addresses

  • Previously the Primary (0) and Secondary (1) addresses were contained within the object ‘addresses’. They are now separate fields ‘primaryAddress’ & ‘secondaryAddress’.
  • Primary and Secondary Addresses are used in the ‘Address History’ section on both AML and LTL.

Previous setup:
image

identityCheck service:

  • Previously the documents for the primary and secondary ID were contained in the object ‘documents’ and were listed as 0 and 1.
  • Following the changes, they are now separate fields ‘document1’ and ‘document2’. We will need to update ‘AML and LTL’ primary and secondary id sections to reflect this.

Previous:
image

New:
image

As a ‘Negotiator’, I want navigate to a login page to access the SMB App

Given that I am a ‘Negotiator’ and I am using my 'Client' login credentials, I want to login to the SMB App

Task is to integrate with Reapit Connect. As per Geo Diary, AML etc. Will need to submit app via dev portal and register relevant permissions and URLs as per normal flow (see docs), so the app will integrate properly.

React App Scaffolder repo to be distributed via NPM

  • Should create new simple pipeline so project is available as an NPM package (should simply deploy a tag)
  • Should have a GraphQL app version on the CLI
  • Should have a no-redux version on the CLI
  • Should have an "Is Foundations" project for internal use, so a new scaffolder app does not have to have it's own dependencies i.e. it can rely on the packages in the main manifest
  • Should be updated to reflect latest changes to build scripts, webpack, tsconfig, jest etc to normalise with rest of project

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.