Giter Club home page Giter Club logo

dwcheckui's Introduction

Hi ๐Ÿ‘‹ My name is Jamie

.NET Software Craftsman

Jamie "GaProgMan" Taylor is a .NET software craftsman, full stack developer and DevOps engineer, and a podcast creator, producer, editor, and host - i.e. podcasting dogsbody. Since 2016, he has been writing, speaking and podcasting about .NET.

  • ๐ŸŒย  I'm based in Leeds, UK
    • ๐Ÿง ย  I'm learning golang

Skills

C++C#JavascriptPythonGoTypescriptHTML5ReactAngularCSS3TailwindCSSBootstrapNodeJSGraphQLMySQL.NET

Socials

Badges

My GitHub Stats

gaprogman's GitHub stats

Top Languages

Support Me

Blogs โŒจ๏ธ

A Journey in .NET Core Waffling Taylors dev


Podcasts ๐ŸŽ™๏ธ

The .NET Core Show Waffling Taylors Tabs & Spaces


Tech that I use ๐Ÿงฐ

C# C# JetBrains Rider Visual Studio Code Nuget Angular Docker HTML5 npm Azure Xamarin.iOS Xamarin.Android


Find Me @ ๐Ÿ“ฃ

LinkedIn YouTube - .NET Core Twitch - .NET Core Stackoverflow Twitter Meetup YouTube - Waffling Taylors Twitch - Waffling Taylors

note: Duplicate YouTube and Twitch here are because I contribute to two channels for each


Unlike other content creators, there isn't one single place where you can find all of the things that he creates (but he's working on something, honest). As such, here are a list of places where you can find his content:

  • A Journey in .NET Core
    • This is a blog which was started back in 2016
    • It chronicles Jamie's journey from .NET Framework into .NET Core
  • The Waffling Taylors
    • This started as a video game blog and has evolved into a weekly podcast
    • It is created and hosted with his brother, all about video games
    • It is not very serious at all
  • The .NET Core Show
    • This is a podcast all about .NET Core and the community around it

Active Projects

The .NET Core Show is a fortnightly podcast about .NET Core and the community around it.

.NET Core Podcast Transcriptions is a collection of all of the transcriptions for The .NET Core Show. I am fixing these machine transcriptions in the open, this is partially to show how much effort is required in order to fix machine transcriptions for podcast - showing how much time and effort is required to create an accessibly podcast.

OwaspHeaders.Core is a NuGet package for ASP .NET Core powered websites which aims to simplify the inclusion of OWASP recommended security headers, which leads to more secure web applications. This open source library is used in a large number of both open source and propriatary applications - I have consulted on several closed source uses of this package.

Links

dwcheckui's People

Contributors

dependabot[bot] avatar gaprogman avatar viveksdf avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

dwcheckui's Issues

App doesn't check that dwCheckApi is online before searching

Because the app doesn't check whether dwCheckApi is online before sending a search, the user is left staring at a "Searching, please wait" message whilst it (dwCheckApi) spins up. This leads to a bad user experience, as all searches are very quick usually.

To get around this, send some kind of small request when any of the search screens loads. When dwCheckApi responds, enable the search controls. If there is no response, display a message to the user saying that functionality has been disabled (or something similar).

While waiting for a response from the server, display a "please wait" type message informing the user that they will have to wait.

Or send a fire and forget request on first load (from the server side code?), which will force dwCheckApi to spin up if it is closed.

Perhaps we need an API endpoint to call on dwCheckApi which will return a status enum (Started OK, Database Issue, +++Out of Cheese Error+++, etc.)

Data is incomplete

  • Most of the data (for Books and Characters) is only present up to Jingo.

  • There are only a few entries for Series data

  • Reaper Man is missing cover art work

Upgrade to Angular 5

Description

The latest version of the ASP NET Core Angular template uses Angular 5, whereas this project uses Angular 4.2

Solution

Upgrade the project to use Angular 5

Book Profile Page

Clicking on a book entry in the Book search screen should take the user to a Book Profile screen.

This will display basic information about the book (similar to what is shown on the search results page, but full screen), with a list of major characters included in the book, which series the books appears in, and links to find the book on Amazon (US and UK for now)

Book search results are not paged

Repro steps

  • Head to /books and search with a blank string
  • All book records from the database are eventually returned
  • Because images are included in the search results, the response from the API server can take up to 19 seconds (on a relatively OK connection)

Suggestions for improvement

  • Return paged data (e.g. first 10 records only)
  • As user scrolls to the bottom of the page, send a get request for more records (e.g. infinite scroll)
  • Load the text data separate from the images (fire a second get request for the images, using a loading spinner as each record's image until the response comes back)

Enter key does not search

When searching, enter key press does not perform the search only clicking on the Search button performs the search

Book data returns base64 string for image, making the request too big

This issue is related to #15 for dwCheckApi and will require that issue to be fixed before this one can be attempted.

Description of issue

When requesting book details from the database, the returned data for each book contains a base 64 string which represents the cover data.

For individual books, this request data isn't that big. Most of the individual book profile pages top out at about 60-100k (this includes the base 4 string for the cover). But when requesting a page full of book records (i.e. on the search page, when a search string is not supplied) this can end up in the megabytes.

Books data comparison

In the above image, the first request was for a book profile page and the second line was for the book search page with no search string provided. As can be seen, the book search page was orders of magnitude larger than the individual book profile page.

Potential fixes

  • Change the API calls for Books to return all data EXCEPT for the cover image
  • Add an API method in the Books controller which takes a book id and returns the base 64 string which represents the cover data

App doesn't use the Base64 string for image data

As of issues 2 and 12 on dwCheckApi, the image data is now returned as a base64 string.

This means that the view is now broken as the image url is no longer valid. Fix this using src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." (for example)

No results text appears while searching

Reported by James:

the can't find any results also shows when the search is happening

Was unable to recreate on live, using Chrome with throttling. Suggest using local with breakpoints.

Series Profile Page

Clicking on a series entry (on the Series search results table) will take the user to a full page view of the Series. This should include a list of books (similar partial to book search results) included in the series (in the order in which they take place).

Bootstrap Vulnerability

Summary of Issue

The current packages.json includes a reference to a vulnerable version of Bootstrap. The CVE can be found here.

The tl;dr is that bootstrap should be upgraded from 3.3.7 to, at least, 4.1.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.