Code Monkey home page Code Monkey logo

markets's People

Contributors

christopherpholder avatar

markets's Issues

Move link service out of api service

Motivation

  • Improve separation of concerns by not calling a service inside another service.
  • Improve testability of services as there is no master service and value service relationship.
  • Improve maintainability of feature by moving the logic to the container component.

Current State

Currently linkService external-resource-link is being called inside of apiService data-access.

  addPreloadLCPLinks():void {
    this.getHighlightListings().pipe(tap((listings) => {
      if (!listings) {
        return;
      }
      for (let i = 0; i < 2; i++) {
        this.linkService.addLink({
          rel: 'preload',
          as: 'image',
          href: listings["watercrafts"][i].thumbnailUrl,
          fetchpriority: 'high'
        });
      }
    })).subscribe();
  }

  private addPreloadFetchLink(): void {
    this.linkService.addLink({
      rel: 'preload',
      as: 'fetch',
      type: 'application/json',
      href: this.apiEndpoint,
      crossorigin: ''
    });
  }

Desired State

The external-resource-link lib is not imported the apiService.

TODO

  • Trace uses of external-resource-link in code base. 35#issuecomment-1412464067
  • Move the addPreloadLCPLinks logic out of ApiService and into the initializeDataFactory directly.
  • Move initializeDataFactory from AppModule to the data-access lib as a service.
  • Move the addPreloadFetchLink logic out of getHighlightListings and into the container features or its route resolver.
  • Remove external-resource-link from ApiService
  • Fix apiService test

Add a footer banner

The footer banner will be part of the footer.

It will display a deferent image when on a desktop then on a mobile.

Mobile
Screenshot 2023-01-29 at 19 53 19

Desktop
Screenshot 2023-01-29 at 19 54 02

Add compression the applications

When loading the application on the internet the files should be compressed using Gzip and Brotli.

The files should not be compressed during transit but be compressed in their storage.

Add details page/feature

Feature overview

The details page will be accessible under the following url:

  • example.com/listing-details/?:listing-id

It will pull in the listing id from the activated route.

It will fetch the data in a route resolver using the listing id

Display product not found id resolver fails

The data will be split into to sections:

  1. Item details
  2. Purchase details

Item details

  • Title
  • Images (main img specified)
  • General details
    • Category
    • State (location)
    • Condition: New or used
    • Brand
    • Model
    • Year
    • Feet
    • Horse power
  • Moter Details
    • Number of motors
    • Motor Brand
    • Horse Power
  • Description

Purchase details

  • year
  • category
  • Seller's Informaation
    • Name
    • Telephone
    • Email

TODOS

  • Create ListingDetails type
  • Add route with optional params
  • Add a resolver
    • Display not found it resolver fails

Add Highlights for Services Products to the landing Page

TODOS

  • Landing page has 3 highlight sections
  • Highlight sections are divided with a line
  • Highlight sections are followed by a more btn

The Landing page short display the preview section:

  • Watercraft
  • Products
  • Services

Each section should have a different heading

  • Featured Watercraft
  • Featured Products
  • Featured Services

Between each section there should be a separation line

eg.

Each section should contain more button under them.

eg.

Screenshot 2022-11-27 at 16 45 24

For the scope of this ticket the button is none functional ...

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.