How to build a Dashboard project with C# and ASP.NET?

Hello awesome community,

I’m quite new to this forum and so this my first post.
I need help in doing a project for my final year. I want to build a dashboard to measure the KPI of business,
the requirement is to use tools from C#.
I’m very much of a beginner, however I quite a fast learner.
Any helpful resources, videos, links, post would be highly appreciated.
Once again i’m happy to be amongst this awesome forum.
Cheers :slight_smile:

Here are some possible tools/stack to check out.

.NET Core 3 Blazor

I would probably recommend using entity framework with a relational database to lower the learning the curve a bit. You could also use a NoSQL database like MongoDB but .NET Core entity framework for relational databases I think would be easier.

https://docs.microsoft.com/en-us/ef/core/

Using those you could build a cutting edge web application without needing to use a JavaScript framework. You might be best avoiding the javascript frameworks since they tend to be a huge learning curve.

In theory if you go the blazor route you can build the entire application using c# without needing to create APIs or resorting to razor html views. I’m uncertain the following Blazor will have with the proliferation of JS frameworks but it might be something worth familiarizing yourself and correlates with the project requirements well. Blazor is kind of like Angular on the server which seems pretty cool and cutting edge.

Putting the tools aside I would start by modeling the database / entities and views / design. From there you turn the design into blazor components and pages that use entity framework to fetch and persist info to the database.

Is this for a university project? Regardless, they should have taught you how to design software. You need to do the design first, beginning with requirements. So far your requirements are build a dashboard to measure the KPI of business using C# and ASP.Net.

You need to define what you mean by dashboard. As far as I know there is nothing in C#, .Net or ASP.Net that is specifically a dashboard and that nothing else in C#, .Net or ASP.Net is whatever it is. In programming you need to be clear about things like that, otherwise you will get useless answers.

Will the dashboard be just one page or will it be a component that can go into multiple pages? Will there be multiple pages within the component?

Will there be a need for a database?

@SamuelCalifornia
thanks for your feedback.
This is a project we do after our IT training, so I guess I could say it is a University Project.
And yes we have been taken through some design course(not the best of help though).
As for the design, I have this in mind:

https://appzone.simplekpi.com/dashboards/shared/C4CTGiG_v0iMZLsfW6K5oQ

And yes it should be one page, and should be able to communicate with a database server.
Like I mentioned earlier, i’m opened to any suggestions, resource or recommendations.
Thanks for your time, this truly means alot to me.
:slight_smile:

I would not call that a dashboard. I think they call it a dashboard for marketing purposes but not technical. I am not complaining or criticizing you, I am just saying that I think it does not help to call it a dashboard in this context.

So the requirements are that you have one or more of something, I assume companies, with various options such as duration of time. You then retrieve relevant data from somewhere, a database either directly or indirectly. I say indirectly if you get the data from a web service. Then you plot the data on charts, one chart for each company or whatever. If any of that is inaccurate then correct it. You can and should expand on that description. What are all the options? What is the format of the data you get as input? How are the charts created? I am not saying you should describe how to do any of that in terms of how to write the program, the initial description should be written in a manner that the user could understand; it could be like what you would write as instructions for the user describing how to use it. If you were writing a game then the game rules would be like a requirements definition for the game program.

So try to write a requirements definition and provide that here. It will help you and help others to help you.

understood,

Firstly, this project is supposed to show a user the current strength of a company.
The company in mind is delivery company that let’s say delivers food.
however, in the company’s day to day activities it encounter various kinds of problems in order to meet it’s
goal. That is having a successful sale. Some of these problems are due to poor services from the company( on us failures) while some are really from the customer(not on us failure) and then we have successful deliveries.
This dashboard is meant to automate the calculations of the following metrics:
No. of Successful Sales,
No. of Failed sales due to Customer
No. of Failed sales due to Company
In other words, for each day it calculate’s a percentage of Success rate vs Percentage of failure rate,
if the failure’s percentage is high the bar Chart representing it should be green(bad day of business)
and vice versa.

A good "would be: scenario is that:
The chief executive wants to know how well the company is doing, so he uses this solution (maybe a desktop app or hosted on web server) and he can see just how well the company is doing.

I’m still not clear as to how the input data would be retrieved, at the moment I have two options:
either through a Database server(would have to work on DB communication)
or an Excel sheet that would be hosted online(would also have to consider retrieving data from an excel sheet)

Hope you get the idea now.
Thank and cheers

Unless you want to make things difficult and complicated and confusing and frustrating, you are doing it the wrong way. Don’t concentrate on how to do it, concentrate on what needs to be done.

An Excel sheet is a bad idea. Forget about that possibility.

Forget about databases at this stage; concentrate on what data you will need, such as the number of successful and unsuccessful deliveries.

For each of the following, what input data is required?

Ignore the problem of how you will get the data; for now just define what data you will need. An example of why this is important is that if you first solve the problem of how you will get the data and then quickly proceed from there and then realize you are missing some data and must find another way to get the data then you have wasted time.

1 Like

Use MVC framework with bootstrap admin template which is free. You will get all types of chart along else you can use telerik free js for chart and grid purpose.

Thanks, will keep this in mind.

MVC and bootstrap template, hmm.
guess I’m in for some rumble in the jungle.
Any link to resources on use of these tools may help.
Thanks a bunch :slight_smile:

I’m not surprised they’re calling something like that a dashboard because it’s similar in scope of what MS defines as a dashboard in their TFS implementation, especially when looking at it from a team aspect.

That being said…@phakay, @SamuelCalifornia has given you some GREAT advice here. Don’t worry about the HOW at the moment. Worry about the other W questions…

  • WHO is the client and what data is important to them?
  • WHAT problem are you trying to solve? What is the best way to provide that data? Is a bar chart list like that the best way to show it? Or would a trend line graph be more useful
  • WHEN - what time frames are you going to support (monthly, quarterly, yearly, other?)
  • WHERE will they be accessing this data? A desktop application has a lot more screen room than a mobile app.
  • WHY is this data important to the client? What data is important, and what is extra which may add value but is unneeded.

Once you have all those, then worry about the HOWs:

  • HOW to present the data
  • HOW to store the data. Is it a static site that you can just use an XML or JSON file? Or do you need to be able to update it so it’s dynamic that you need a database backend?
1 Like

The important word there is they. They are calling it a dashboard. That is fine. I am saying it does not mean anything here to call it a dashboard. There is not a clear technical definition of what they are that differentiates something from other web pages.

There is from a business perspective. I’ve also seen them called data dashboards.

The Wikipedia is not authoritive; anyone can say whatever they want to. The expectation is for everything to be reviewed for accuracy. That article does not specify an authority for that definition; it has not been adequately reviewed. The Wikipedia should not be used as an authority; the authority it cites is likely a good authority.

As for the relevance to here of the term dashboard, I have said what I have to say.

alright, noted

point taken :+1: