Pulse is a C# ASP.NET Core MVC application developed to help users focus on important goals, tasks, and budgets in their upcoming week. This application uses Identity framework for Sign Up/Sign In functionalities, a local SQL Database to store user information, and canvas.js to display charts.
- .NET 8 SDK (Lower versions may work I just don't know/haven't checked)
- Visual Studio Code (I used the 2022 version. Other IDEs are fine but if you are developing ASP.NET Core applications I highly recommend using Visual Studio Code)
- A SendGrid account for email functionalities (Required for now to login and see the full application. I'll fix this in the next commit)
- Microsoft and Facebook developer accounts for external login (Tutorials can be found here Microsoft External Login, or Facebook External Login
- Local SQL Server instance. Download SQL Server Management Studio (SSMS) to make your life easier
-
Clone the repository:
git clone https://github.com/yourusername/Pulse.git cd Pulse -
(Optional) You might not need to do this as when you build your application it gets invoked I think but if the Nuget packages don't work try:
dotnet restore-
Add User Secrets:
dotnet user-secrets init
-
Set the secrets:
dotnet user-secrets set "SendGrid:SecretKey" "<YOUR_SENDGRID_API_KEY>"
dotnet user-secrets set "Authentication:Microsoft:ClientId" "<YOUR_MICROSOFT_CLIENT_ID>"
dotnet user-secrets set "Authentication:Microsoft:ClientSecret" "<YOUR_MICROSOFT_CLIENT_SECRET>"
dotnet user-secrets set "Authentication:Facebook:AppId" "<YOUR_FACEBOOK_APP_ID>"
dotnet user-secrets set "Authentication:Facebook:AppSecret" "<YOUR_FACEBOOK_APP_SECRET>"-
Update
program.csfiles DefaultConnection to your local SQL Server instances connection string -
Navigate to Chrome://flags/ #allow-insecure-localhost if you're using chrome to debug or edge://flags/#allow-insecure-localhost if you're on edge and enable these options
-
Build the project with ctrl+f5. Some dialogs may pop up asking you if you trust ssl certificates. You can read through it, just make sure you press yes.
-
(Optional) If you don't want to deal with the external login functionalities just comment out the following code in
program.cs. As of right now you still need a sendgrid api key to access the content behind the login/register but I'll make a commit soon to fix that:builder.Services.AddAuthentication().AddFacebook(facebookOptions => { facebookOptions.AppId = builder.Configuration["Authentication:Facebook:AppId"]; facebookOptions.AppSecret = builder.Configuration["Authentication:Facebook:AppSecret"]; }).AddMicrosoftAccount(microsoftOptions => { microsoftOptions.ClientId = builder.Configuration["Authentication:Microsoft:ClientId"]; microsoftOptions.ClientSecret = builder.Configuration["Authentication:Microsoft:ClientSecret"]; });
This project uses the MIT license. Basically use it however you'd like :).