YoussefWaelMohamedLotfy / PasswordManagerAssessment

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Password Manager - Assessment

My implementation to the tasks for the interview. Tasks can be found in issue #1
UI Design uses Bootstrap 5.2.0

Project Requirements

In order to run the project, .NET 7 (SDK 7.0.100) is required to be installed on your machine in order to run the project.

Project Architecture

The following image shows the current state of the system's architecture. Simple Architecture Diagram

Database Connection String Setup

The database used for development is SQL Server LocalDB Instance that comes with VS Community. So the connection string should be changed to your instance's server address. i.e. Change the (localdb)\MSSQLLocalDB in the AppDbContext File to your instance.

How to run

The following steps shows how to run the project:

  • Clone the repo on your machine.
  • Navigate to the repo's folder on your machine.
  • Open PasswordManagerAssessment.sln using Visual Studio Community 2022.
  • Make sure that the project PasswordManager.UI, PasswordManager.API and IdentityServer are set as Startup Projects.
  • Build the Solution using Ctrl + Shift + B, or Right-click on the solution file, then select Build Solution
  • Run the project using Ctrl + F5, or click on run located under the menu bar.

IdentityServer Database Migrations

There are 3 DbContexts in IdentityServer project. In case you want to create a new migration for any of them, use the following commands:

  • ConfigurationDbContext
Add-Migration <Migration Name> -Context ConfigurationDbContext -OutputDir "Migrations\ConfigurationDb"
Update-Database -Context ConfigurationDbContext
  • PersistedGrantDbContext
Add-Migration <Migration Name> -Context PersistedGrantDbContext -OutputDir "Migrations\PersistedGrantDb"
Update-Database -Context PersistedGrantDbContext
  • AppDbContext
Add-Migration <Migration Name> -Context AppDbContext -OutputDir "Migrations\AppDb"
Update-Database -Context AppDbContext

Replace <Migration Name> with any name you prefer.

Accounts for logging in

There are 2 accounts stored in-memory that are available for use.

Subject ID Username Password
1 alice Pass123$
2 bob Pass123$

About


Languages

Language:C# 58.9%Language:HTML 13.5%Language:Less 13.4%Language:CSS 13.1%Language:Dockerfile 0.7%Language:SCSS 0.1%Language:JavaScript 0.1%