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.
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
andIdentityServer
are set as Startup Projects. - Build the Solution using
Ctrl + Shift + B
, or Right-click on the solution file, then selectBuild 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$ |