Intro to Health Checks in .NET Core

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ต.ค. 2024

ความคิดเห็น • 120

  • @RalfsBalodis
    @RalfsBalodis 4 ปีที่แล้ว +17

    0:00 - Intro
    1:46 - Creating a demo Blazor Server App
    3:27 - About Application Health
    5:35 - Adding Health Check NuGet packages
    6:53 - Configure Health Checks : Health states
    15:03 - Configure Health Checks: Advanced info
    18:41 - Configure Health Checks: Overall application check
    21:27 - Side note: Lamda expression break down
    23:37 - Configure Health Checks: Tags
    28:21 - Better Health Checks data view: app setup (quick NuGet references)
    32:47 - Better Health Checks data view: configuration
    34:02 - Better Health Checks data view: appsettings.json;
    38:21 - Better Health Checks data view: running the app
    40:58 - Implementing Health Checks in application: MVC app setup
    46:04 - Custom App Health Check: Practical Health Checks
    55:07 - Implementing Custom App Health Checks
    1:02:29 - Health Checks: Recap
    1:03:50 - What are health checks for and what should you check?
    1:10:44 - Security concerns
    1:12:35 - Concluding remarks
    43:25 *one does not simply remember about the clipboard ring at 1am *

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +2

      Thank you kind sir. Added!

  • @duanernivlys
    @duanernivlys 4 ปีที่แล้ว +5

    Hi Tim, for me this is the best off all. I've been looking for such a system quite a long. This is my question. How to add healthcheck to Service worker project implemented with .NET Core? I have many ones doing logging and I want to monitor them in a single place like this. Thanks!

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +6

      I can add that to the suggestion list to cover in a future video.

  • @victormcezar
    @victormcezar 3 ปีที่แล้ว +3

    Hi Tim, thanks for this tutorial. It was very enlightening!
    I would like to use that to monitor multiple micro services and I was wondering if It is possible to group or tag applications the same way we can tag HealthChecks?

  • @skarabei2303
    @skarabei2303 ปีที่แล้ว

    Ok but how to add for every action in the controllers. If I need to make this manually... ???

  • @xiaoyu88
    @xiaoyu88 2 ปีที่แล้ว +2

    Tim, whenever I tell people to look you up they are going like "WHAT? AN HOUR LONG?" and I tell them "just try and see for yourself". There was not even one who did not come back to me to thank me (and you, of course). You are just great. Thank you for all the hard work you put in those tutorials.
    Even this not-needed-lambda-expression-breakdown part was explained well in other tutorials, but you seem to take care of everyone, even new comers.

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว

      Awesome! Thanks for sharing.

  • @Abs0lutespy
    @Abs0lutespy 2 ปีที่แล้ว +1

    This is a free youtube video but is more detailed and structured than a paid course on online platforms. You put the other people on shame. Nice work and nice video.

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว

      I appreciate the kind words.

  • @ignask2216
    @ignask2216 4 ปีที่แล้ว +3

    Was waiting for this video for a long time! Thanks Tim!

  • @danail_iliev
    @danail_iliev 3 ปีที่แล้ว +1

    Hi Tim, congratulations for bringing such a great tutorial to light! One thing is bugging me for the last days, tho. I am trying to write a health check for my SignalR hub. I am trying to use the AspNetCore.HealthChecks.SignalR package to do this, but the endpoint for my hub requires to also pass access token (hub has authorization) so I am getting the 401 error in my health checks page (no documentation on it at all). I wondered if you could include more advanced topics like this in a future tutorial? Or maybe I am entirely on the wrong path and that's not the right way to do it but I should go for a custom health check instead and its all my bad.

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      I will add it to the list. Thanks for the suggestion. I think you are on the right path.

  • @TeofilYankulov0
    @TeofilYankulov0 3 ปีที่แล้ว

    Hello Tim and thank you for your video. My question is: SetEvaluationTimeInSeconds is responsible for the UI poll, but wat if I want to set the UI poll to be every 5 seconds, so SetEvaluationTimeInSeconds(5) but one of the checks to be checked on every 5 minutes? Do I need to use the TimeSpan and if yes, could you show how? Highly appriciate your videos, keep going!!

  • @girornsveinsson7970
    @girornsveinsson7970 3 ปีที่แล้ว

    Very interesting video. I am running into a tons of problems though when I want to add a healthcheck to a Blazor Server App with Windows authentication. The endpoint works fine and the chek results are visible there but the HealthChecker client always shows an error: Unexpected character encountered while parsing value:

  • @29misho
    @29misho 9 หลายเดือนก่อน

    Thanks for the tutorial. I think it would be good if you show us how this stuff works on load balancer side

    • @IAmTimCorey
      @IAmTimCorey  9 หลายเดือนก่อน

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

  • @shahzshafie
    @shahzshafie 4 ปีที่แล้ว +1

    Tim, you made learning .net core really easy! Health Check in .NET Core is something i've been waiting for! great stuff! Thanks buddy!

  • @BermeoMiguel
    @BermeoMiguel 3 ปีที่แล้ว

    Hi Tim, thanks in advance for the video. Is possible to implement that logic of HealthChecksUI to an Azure functions project? I asked because in a project that I want to implement it I realize that the Startup class implements the interface FunctionsStartup and this interface doesn't have an IApplicationBuilder app param to be able to perform the respective settings. Thank you!

  • @zulhishamtan4308
    @zulhishamtan4308 4 ปีที่แล้ว +1

    Hi Tim,
    This is really awesome.
    But I do have a question.....Instead of using in-memory storage, how can we wire it up with SQL or ElasticSearch?
    I love .Net !

    • @MikevanKuik
      @MikevanKuik 4 ปีที่แล้ว

      Tim actually has made a video about that.
      th-cam.com/video/Et2khGnrIqc/w-d-xo.html How to connect C# to SQL (the easy way)
      It's also quite easy to change out MSSQL with MYSQL if you choose to do so.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Here you go: github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/issues/455#issuecomment-613093369

    • @zulhishamtan4308
      @zulhishamtan4308 4 ปีที่แล้ว

      @@IAmTimCorey Thank you very much. Really appreciate it.

  • @EliTheSoftwareDeveloper
    @EliTheSoftwareDeveloper 2 ปีที่แล้ว

    Thank you for your wonderful contents. The source code not emailed to me :(

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว

      Check your spam folder. If it isn’t there, email help@iamtimcorey.com.

  • @shawnsmith8975
    @shawnsmith8975 2 ปีที่แล้ว

    I have my app hosted in Azure app services which has App Insights, logging and Health Checks, do I need this if I am using those services?

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว

      This is how you tell Health Checks if your app is healthy, so yes, that is necessary. If you don't tell it, all Health Checks can do is say that your web server is running. It cannot tell if your app is running correctly, if your database is responding, etc.

    • @shawnsmith8975
      @shawnsmith8975 2 ปีที่แล้ว

      @@IAmTimCorey Ok Thanks

  • @wright.nguyen
    @wright.nguyen 3 ปีที่แล้ว

    How to monitor this healthcheck on azure app service?

  • @williambonneau2614
    @williambonneau2614 ปีที่แล้ว

    I got this error at 38 min '

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว

      Look for that symbol in your code.

    • @williambonneau2614
      @williambonneau2614 ปีที่แล้ว

      @@IAmTimCorey The problem is that I don't have this symbol in my code, but I took another part of the code I made earlier and now it works, so I can continue the video ;)

    • @williambonneau2614
      @williambonneau2614 ปีที่แล้ว

      @@IAmTimCorey all works fine :) now I try to save in database results ;)

  • @dasfahrer8187
    @dasfahrer8187 ปีที่แล้ว

    Got a follow-up on this for customizing the UI (colors, logo, etc)?

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +1

      Not yet, but you can add that as a suggestion: suggestions.iamtimcorey.com

    • @dasfahrer8187
      @dasfahrer8187 ปีที่แล้ว

      @@IAmTimCorey Done, thanks.

  • @НереальнаяАвстралия
    @НереальнаяАвстралия ปีที่แล้ว

    Thank you for that! I think the bit where we actually call the services is missing. We are using the random generator which is ok only for demonstration purposes. I would really like to find out what are the best practices for the health check implementation. Say we have a SQL Server Db which stores some data. How do we implement the actual check for it? Or if we have a Web API, what are the best practices to check its health?

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +1

      Check to be sure you can connect to each. Maybe check a simple query timing. Same for the API. Check response time for a call to the API.

    • @НереальнаяАвстралия
      @НереальнаяАвстралия ปีที่แล้ว

      @@IAmTimCorey thank you Tim!

  • @AK-wo7jz
    @AK-wo7jz 4 ปีที่แล้ว

    Excellent explanation Tim....one of the Very helpful video....Thanks for educating us/community...

  • @goldengriffin9096
    @goldengriffin9096 4 ปีที่แล้ว

    Can someone help me by suggesting to me what to do next I've learned the basics of classes and objects, I understand classes and objects pretty well, I have then practiced some of my c# skills and I learned about LINQ (Language Integrated Queries) I'm now learning what delegates are afterward I will move onto lambda expressions then LINQ. Can anyone recommend other things to learn during my journey?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      I touch on this in my Podcasts (#9 and others) iamtimcorey.com/p/podcast. Also on my Blog (How to Be a Great C# Developer). Its a very personal question and I am glad you are carefully exploring it. This video also may help - th-cam.com/video/LUv20QxXjfw/w-d-xo.html

  • @mp3311
    @mp3311 3 ปีที่แล้ว

    I am using AspNetCore.HealthChecks.UI version 2.2.35, so I am not able to install the client and the memory storage, as they have newer versions. Is there any solution so that I can use the better interface for health checks?

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      Can you check for previous versions? NuGet packages allow you to install older versions, not just the latest. Maybe you can roll back to a previous version where those were supported.

  • @happysoul1156
    @happysoul1156 2 ปีที่แล้ว

    How to trigger a mail when health checks returns degraded ??

    • @IAmTimCorey
      @IAmTimCorey  2 ปีที่แล้ว +1

      You are the one that is writing the code to determine that the health of the site is degraded. In that spot, also trigger an email. Or you can use a monitoring application on the other end to watch for the degraded value.

    • @happysoul1156
      @happysoul1156 2 ปีที่แล้ว

      @@IAmTimCorey thanks for your valuable time

  • @thequietone2868
    @thequietone2868 4 ปีที่แล้ว

    What do you guys think about programming in linux? Should i develop on linux or windows machine, which is more suitable for programming?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      That is a broad question. It really depends on your specifics. Since you are on a channel dedicated to C#, I am going to assume you are referring to programming in C#. If that is the case, stick with Windows. You can develop C# on Linux using VSCode, as long as you work with .NET Core projects (not WInforms, WPF, or UWP though), but it is much easier to do so on Windows with Visual Studio.

  • @aminjafer4535
    @aminjafer4535 ปีที่แล้ว

    Thank you for this!

  • @kevincordell9539
    @kevincordell9539 4 ปีที่แล้ว

    Tim, thanks for your presentation. You always have awesome stuff to share with us here on TH-cam and yes I have enrolled in a few of your courses to learn more and support you in providing us great content. I have one question here about HealthChecks. I found how to add the healthcheck for SQL Server and ping the server with a query. What I cannot find are any examples on how to return the results of the query. Let's say I have a web application and I am getting data from 3 or 4 databases (one being the logon database and 3 databases containing data) and I want to return the DB Name to the health check. I was able to add this to the Configuration section of the startup.cs: .AddSqlServer(connectionString: Configuration.GetConnectionString("Default"),
    healthQuery: "SELECT DB_NAME();",
    name: "Sql Server",
    failureStatus: HealthStatus.Degraded,
    tags: new[] { "db", "sql", "sqlserver" })
    How would I return the DB_Name() property?
    or would I have to write a separate class (like the ResponseTimeHealthCheck) to fetch and return the data?
    thanks

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      It is just like any other C# code, so you can query the database and read the data returned, then pass that on to the health check results in the description. However, if you are querying the database, you already know the name (it is in the connection string under "initial catalog" or "default database") so just parse that piece out.

  • @juanavelinosanlucas6129
    @juanavelinosanlucas6129 3 ปีที่แล้ว

    Nice video!
    can i use this package in a .net core worker service project? what would be the best strategy?

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      Yep, you can do that.

  • @willerpentonposada4284
    @willerpentonposada4284 3 ปีที่แล้ว

    Hi TIm, I have requested the source code and I'm not receiving at all thank you

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      Sorry to hear that. Please drop a note to Help@IAmTimCorey.com and we will get the file to you. Specify the video so we know the right file to send. We got you covered!

  • @majidakbari3289
    @majidakbari3289 3 ปีที่แล้ว

    Perfect, thank you for your time and all your tutorials. I've got a suggestion for you; You've named the playlist `Advanced Topics`, but during the video you explain how IDE import works or what is arrow function and similar topics that are really primitive. I guess if you omitted this kind of information during the videos, you'd have shorter and more advanced output.

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 ปีที่แล้ว +1

      You hit on the topic that is a constant struggle for every teacher. What do my students already know? Every advanced video gets blasted with comments about what you failed to teach so we can understand this material. Its a balance and Tim tends to error on giving too much rather to strict assumptions on levels of experience. Thanks for watching and trusting Tim.

  • @soucianceeqdamrashti8175
    @soucianceeqdamrashti8175 3 ปีที่แล้ว

    Excellent video! Maybe for a follow you could present how to expose the health endpoints and the UI using authentication. But yeah great content!

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      I will add it to the list. Thanks for the suggestion.

  • @laptoprecaia.k.aagentsmith3328
    @laptoprecaia.k.aagentsmith3328 2 ปีที่แล้ว

    wow, thanks a lot.

  • @erikthysell
    @erikthysell 4 ปีที่แล้ว

    Tim, you're the man! This is great. Would it be possible for you to give a show on thread-safe collections (i.e. concurrentqueue), lock {}, how/when to use and so forth?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Noted on my list. Thanks for the idea.

  • @manishpatil8284
    @manishpatil8284 4 ปีที่แล้ว

    Sir Aap.net Core MVC have scope in 2021..? Can tell full road map for web development from scratch to deployment

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      I am not sure what you mean by "scope". ASP.NET Core is the most modern web development platform from Microsoft. In November, Microsoft will release .NET 5 and update ASP.NET Core, but that should be somewhat minor. Going forward, I would definitely recommend using it. As for a path, I would recommend starting here: th-cam.com/video/LUv20QxXjfw/w-d-xo.html

    • @manishpatil8284
      @manishpatil8284 4 ปีที่แล้ว

      @@IAmTimCorey Sir make video on Asp.net MVC Core full projects for beginners which cover all Concept of Web site development...real world project

  • @refactorear
    @refactorear 4 ปีที่แล้ว

    We haven't thought about this, we were just using a status page returning OK. Maybe we can implement it in the future, thanks!
    43:30 Tip, just copy the json, paste it, then select the copied port and press ctrl+shift+v to show the clipboard history and choose the port number you previously copied to overwrite the other value.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +3

      Yeah, the problem is that I can't use that on camera unless I've ensured that all of my copied text is fine to view. If I copied a password, a client's IP address, or another sensitive bit of information, I don't want that recorded on video (and I don't want to have to blur it later on).

  • @bilalmalik9551
    @bilalmalik9551 3 ปีที่แล้ว

    Can i send health status to elasticsearch and checked status via kibana? Is it possible?

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว +1

      Not sure. You would need to do some investigation.

  • @geovannycardozocedeno6041
    @geovannycardozocedeno6041 8 หลายเดือนก่อน

    Genial

    • @IAmTimCorey
      @IAmTimCorey  8 หลายเดือนก่อน

      Not sure what this means.

  • @donovanm
    @donovanm 4 ปีที่แล้ว

    Hello Tim, do you know how can I get the vscode javascript theme into vs2019 ?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      I think you would have to create it yourself.

  • @Baby4Ghost
    @Baby4Ghost 4 ปีที่แล้ว

    Hi Tim, great job on the video!
    The way im planning to implement an Monitoring App is to ping-check every minute and full-check every 5min with alerts going out if something is degraded, and prio-alert if something is unhealthy.
    This will be implemented for a Blazor Webshop, Web Api's / IdentityServer4 and an MSSQL database.
    Another feature I want is to check the logs for each application (every hour) for exceptions, errors and warnings like you mention.
    What Im wondering is, what would be an safe and practical way to provide the logs to the Monitoring App? Im using MS Logging icw Log4net.config. I am going to put the HealthChecks into its own NuGet package, so I could add the logs logic in that package (based on the log4net.config path) so it pushes the logs to the Monitoring App instead the Monitoring App retrieving it (retrieval = creating security issues as logs are sensitive data). What would you recommend?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      I like using Serilog with Seq for logging. That has a nice UI, it can be sent to any number of locations, and provides a way to really use even large amounts of log entries effectively.

    • @Baby4Ghost
      @Baby4Ghost 4 ปีที่แล้ว

      @@IAmTimCorey Thank you, Im going to give it a read. I also see you have vids on it. Defintely going to check that out next!

  • @randysvids4774
    @randysvids4774 3 ปีที่แล้ว

    Hi Tim, We have several health checks in our API application. Our Health checks run automatically every 5 seconds. Is there a way after all the health checks get run initially, certain health checks don't get run until you stop and start the APP and run the health checks the first time again? We have a configuration health check to ensure that all the app settings properties exist, and it runs pretty fast, but still prefer to only have it run once just the first time since our configs don't change too often.

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      Health checks get fired when you want them to so yes, you could fire them off just when the app starts.

    • @randysvids4774
      @randysvids4774 3 ปีที่แล้ว

      @@IAmTimCorey do i have to do anything special for them to fire only once when the app starts?

  • @webdeveloperninja9220
    @webdeveloperninja9220 4 ปีที่แล้ว +1

    Thank you

  • @VladislavSorokin
    @VladislavSorokin 4 ปีที่แล้ว

    oh man, please install any JSON viewer to chrome, save our eyes and time looking over plain single line json text

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +2

      I typically don't do things like that because it isn't standard. I try to limit how much I tell you to install just to follow along with the demo.

    • @VladislavSorokin
      @VladislavSorokin 4 ปีที่แล้ว

      @@IAmTimCorey i ser. The reason is that json has hierarchy which is really hard to spot. Anyway, thank you for great videos.

  • @masoodmunshie203
    @masoodmunshie203 3 ปีที่แล้ว

    Thanks, Great Explanation .

  • @wassimlaribi8597
    @wassimlaribi8597 3 ปีที่แล้ว

    Hi Team, thanks for this awesome,simple and useful video.
    After implementing such monitoring too, usually we will need a tool to start/stop/restart services.
    do you have an advise about the best way to do this ?

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว +1

      That would be a custom solution, but it would also depend on what you mean by "service". If it is a "service" on Azure (web app or web service), you can have Azure detect the degraded state and have it restart the service automatically.

    • @wassimlaribi8597
      @wassimlaribi8597 3 ปีที่แล้ว

      @@IAmTimCorey thanks for your reply, make sense

  • @chiidtech
    @chiidtech 3 ปีที่แล้ว

    Thank you Tim, you are a blessing to us...

  • @romeozor
    @romeozor 4 ปีที่แล้ว

    can this be used easily with docker container health reporting and orchestration?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      It depends on what you mean. You can use these inside of Docker containers (that's an ideal use-case), but Docker also has its own reporting on health, especially when you put it into a system like Kubernetes.

    • @romeozor
      @romeozor 4 ปีที่แล้ว

      @@IAmTimCorey yes that’s what i mean, can (or should) Docker/k8s use this health report to determine the health of a container?

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      Yes, the can be used that way (and it is usually the right call).

  • @davidmorello9229
    @davidmorello9229 3 ปีที่แล้ว

    Great video!! Thanks.

    • @IAmTimCorey
      @IAmTimCorey  3 ปีที่แล้ว

      You are welcome.

    • @davidmorello9229
      @davidmorello9229 3 ปีที่แล้ว

      @@IAmTimCorey do you have a video that calls another endpoint and sets the status based on the response time?

  • @Planet-C53
    @Planet-C53 4 ปีที่แล้ว

    👍👍👍

  • @yanaraldaghestani6305
    @yanaraldaghestani6305 4 ปีที่แล้ว

    Amazing

  • @FirstLast-gc6ss
    @FirstLast-gc6ss 4 ปีที่แล้ว

    first comment

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +2

      First response, Thanks

  • @arefkr
    @arefkr 4 ปีที่แล้ว

    75 minute video that had 20 seconds of valuable information

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +1

      Sounds like you weren’t looking to be introduced to health checks.

  • @farsidesc4044
    @farsidesc4044 4 ปีที่แล้ว +1

    Hi Tim! Thanks for the video. Since I started doing web apps, I’ve had this question. Thank you for providing the answer I didn’t know I was looking for!
    I’m wondering if you wouldn’t mind adding a video on Kubernetes and C# apps. DevOps is basically ran on Kubernetes now. Even VMWare is shifting their concentration to managing and deploying K8 containers.

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว +2

      Glad it was helpful! I have touched on some of these items in other videos, but I will put it on the list.

    • @farsidesc4044
      @farsidesc4044 4 ปีที่แล้ว

      IAmTimCorey Thanks! I know that Docker has a bit of overlap and there are tools in VS that allow you to export to containers... but I think touching on the topic as a whole would be really helpful to a lot of people. Thanks for everything!

  • @AliKhan-jz3zs
    @AliKhan-jz3zs 4 ปีที่แล้ว

    you haven't answered my previous question. I'm sad

    • @IAmTimCorey
      @IAmTimCorey  4 ปีที่แล้ว

      I looked and can't find it, please resend it.

    • @AliKhan-jz3zs
      @AliKhan-jz3zs 4 ปีที่แล้ว

      @@IAmTimCorey this comment is from your previous video. I'm in interested in web with c#.and I'm confused what should I learn .net with Asp.net or .net core with asp.net core. Once I told you here in Nepal,are more opportunities in .net platform. Currently I'm doing front-end with react/js