Skip to content
This repository has been archived by the owner on Aug 1, 2021. It is now read-only.

Commit

Permalink
v1.4.5
Browse files Browse the repository at this point in the history
bugs fixes e new features
  • Loading branch information
brunobritodev committed Sep 3, 2019
1 parent 09c6f82 commit a5babb7
Show file tree
Hide file tree
Showing 13 changed files with 110 additions and 30 deletions.
89 changes: 71 additions & 18 deletions README.md
Expand Up @@ -8,20 +8,53 @@
Jp Project is a Open Source UI Administration Tools for IdentityServer4 v2 - release 2.4.0.


## Admin UI
## Table of Contents ##

- [Presentation](#presentation)
- [Admin UI](#admin-ui)
- [Login page](#login-page)
- [Consent page](#consent-page)
- [Profile](#profile)
- [Demo](#demo)
- [We are online at Azure.](#we-are-online-at-azure)
- [Docker](#docker)
- [Technologies](#technologies)
- [Architecture](#architecture)
- [Give a Star! ⭐](#give-a-star-%e2%ad%90)
- [How to build](#how-to-build)
- [Docs](#docs)
- [Contributing](#contributing)
- [Free](#free)
- [v1.4.5](#v145)
- [v1.4.0](#v140)
- [v1.3](#v13)
- [v1.2](#v12)
- [What comes next?](#what-comes-next)
- [License](#license)

------------------

# Presentation

Here some screenshots

## Admin UI ##
<img src="https://github.com/brunohbrito/JP-Project/blob/master/docs/images/jp-adminui.gif" width="480" />

## Login page
## Login page ##
<img src="https://github.com/brunohbrito/JP-Project/blob/master/docs/images/login.JPG?raw=true" width="480" />

## Consent page
## Consent page ##
<img src="https://github.com/brunohbrito/JP-Project/blob/master/docs/images/consent-page.JPG?raw=true" width="480" />

## Profile
## Profile ##
<img src="https://github.com/brunohbrito/JP-Project/blob/master/docs/images/jp-usermanagement.gif" width="480" />

# Demo #

# We are online at Azure.
Check our demo online.

## We are online at Azure.

<img align="right" width="100px" src="https://www.developpez.net/forums/attachments/p289604d1/a/a/a" />

Expand All @@ -31,7 +64,9 @@ You can check also [SSO](https://jpproject.azurewebsites.net/sso/) and [User Man

_New users are readonly_

# Docker Ready ❤️
# Docker #

Run through docker compose ❤️

Wanna try? As easy as:

Expand All @@ -45,31 +80,37 @@ Linux users:
* `docker-compose up`


# How it was made
# Technologies #

Written in ASP.NET Core and Angular 6.
Check below how it was developed.

Written in ASP.NET Core and Angular 8.
The main goal of project is to be a Management Ecosystem for IdentityServer4. Helping Startup's and Organization to Speed Up the Setup of User Management. Helping teams and entrepreneurs to achieve the company's primary purpose: Maximize shareholder value.

- Angular 7
- Angular 8
- Rich UI interface
- ASP.NET Core 2.2
- ASP.NET MVC Core
- ASP.NET WebApi Core
- ASP.NET Identity Core
- Argon2 Password Hashing
- MySql Ready
- Sql Ready
- Postgree Ready
- SQLite Ready
- Entity Framework Core 2.2
- .NET Core Native DI
- AutoMapper
- FluentValidator
- MediatR
- Swagger UI
- High customizable
- Translation for English / Spanish (Autogenerated) / Portuguese (Autogenerated)
- Translation for 7 different languages


## Architecture:
## Architecture

- Full architecture with responsibility separation concerns, SOLID and Clean Code
- Architecture with responsibility separation concerns, SOLID and Clean Code
- Domain Driven Design (Layers and Domain Model Pattern)
- Domain Events
- Domain Notification
Expand Down Expand Up @@ -98,19 +139,28 @@ Wait for ng to complete his proccess then go to http://localhost:5000!

Any doubts? Go to docs

## Docs
# Docs #

Wanna start? please [Read the docs](https://jp-project.readthedocs.io/en/latest/index.html)

## Contributing

We'll love it! Please [Read the docs](https://jp-project.readthedocs.io/en/latest/index.html)

## Free
## Free ##

If you need help building or running your Jp Project platform
There are several ways we can help you out.

## v1.4.5

Breaking change: **Argon2 password hashing**. Be careful before update. If you are using the old version all users must need to update their passwords.

1. Bug fixes:
1. Tooltip for admin-ui
2. Argon2 Password Hasher
3. Show version at footer

## v1.4.0

1. Added :boom: **New Translations** (auto-generate) :green_heart: :blue_heart:
Expand All @@ -125,7 +175,7 @@ There are several ways we can help you out.

2. Added integration with Azure DevOps for full CI/CD. ASAP SonarQube

3. Bug fixesz
3. Bug fixes

## v1.3

Expand All @@ -148,8 +198,11 @@ Check [Changelog.md](https://github.com/brunohbrito/JP-Project/blob/master/CHANG

# What comes next?

Code coverage
* Code coverage
* UI for Device codes
* CI with SonarCloud


UI for Device codes
# License

CI with SonarCloud
Jp Project is Open Source software and is released under the MIT license. This license allow the use of Jp Project in free and commercial applications and libraries without restrictions.
8 changes: 8 additions & 0 deletions src/Frontend/Jp.AdminUI/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/Frontend/Jp.AdminUI/package.json
Expand Up @@ -67,6 +67,7 @@
"ng2-file-upload": "1.3.0",
"ng2-img-cropper": "0.9.0",
"ng2-material-dropdown": "^0.10.1",
"ng2-tooltip-directive": "^2.1.9",
"ng2-validation": "4.2.0",
"ngx-bootstrap": "^5.1.0",
"ngx-chips": "^2.0.0-beta.0",
Expand Down
Expand Up @@ -30,7 +30,7 @@ export class SettingsService {
name: "Jp Project - IS4Admin",
description: "IdentityServer4 Admin Panel",
year: ((new Date()).getFullYear()),
version: "1.0.0"
version: "1.4.5"
};

// Layout Settings
Expand Down
4 changes: 2 additions & 2 deletions src/Frontend/Jp.AdminUI/src/app/shared/shared.module.ts
Expand Up @@ -17,11 +17,11 @@ import { ProgressbarModule } from "ngx-bootstrap/progressbar";
import { RatingModule } from "ngx-bootstrap/rating";
import { TabsModule } from "ngx-bootstrap/tabs";
import { TimepickerModule } from "ngx-bootstrap/timepicker";
import { TooltipModule } from "ngx-bootstrap/tooltip";
import { PopoverModule } from "ngx-bootstrap/popover";
import { TypeaheadModule } from "ngx-bootstrap/typeahead";
import { DatepickerModule } from "ngx-bootstrap/datepicker";
import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
import {TooltipModule} from 'ng2-tooltip-directive';

import { FlotDirective } from "./directives/flot/flot.directive";
import { SparklineDirective } from "./directives/sparkline/sparkline.directive";
Expand Down Expand Up @@ -58,7 +58,7 @@ import { NumberDirective } from "./directives/numberCheck/numbers-only.directive
RatingModule.forRoot(),
TabsModule.forRoot(),
TimepickerModule.forRoot(),
TooltipModule.forRoot(),
TooltipModule,
PopoverModule.forRoot(),
TypeaheadModule.forRoot(),
ToasterModule,
Expand Down
Expand Up @@ -376,6 +376,7 @@ private async Task<LoginViewModel> BuildLoginViewModelAsync(string returnUrl)
EnableLocalLogin = local,
ReturnUrl = returnUrl,
Username = context?.LoginHint,
ShowDefaultUserPass = _configuration["ApplicationSettings:ShowDefaultUserPass"] == "true"
};

if (!local)
Expand Down
1 change: 1 addition & 0 deletions src/Frontend/Jp.UI.SSO/Models/LoginViewModel.cs
Expand Up @@ -19,5 +19,6 @@ public class LoginViewModel : LoginInputModel
public bool IsExternalLoginOnly => EnableLocalLogin == false && ExternalProviders?.Count() == 1;
public string ExternalLoginScheme => IsExternalLoginOnly ? ExternalProviders?.SingleOrDefault()?.AuthenticationScheme : null;
public bool EnableExternalProviders { get; set; }
public bool ShowDefaultUserPass { get; set; }
}
}
2 changes: 1 addition & 1 deletion src/Frontend/Jp.UI.SSO/Util/DbMigrationHelpers.cs
Expand Up @@ -46,7 +46,7 @@ public static async Task EnsureSeedData(IServiceProvider serviceProvider)
var storeDb = scope.ServiceProvider.GetRequiredService<EventStoreContext>();

await WaitForDb(id4Context);
var tst = id4Context.Database.GetPendingMigrations();
await id4Context.Database.GetPendingMigrationsAsync();
await id4Context.Database.MigrateAsync();
await userContext.Database.MigrateAsync();
await storeDb.Database.MigrateAsync();
Expand Down
24 changes: 19 additions & 5 deletions src/Frontend/Jp.UI.SSO/Views/Account/Login.cshtml
@@ -1,5 +1,4 @@
@using Jp.UI.SSO.Models
@model Jp.UI.SSO.Models.LoginViewModel
@model Jp.UI.SSO.Models.LoginViewModel
@using Microsoft.AspNetCore.Mvc.Localization
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration
Expand All @@ -26,15 +25,30 @@
<i class="icon-user"></i>
</span>
</div>
<input class="form-control" placeholder="Username" value="@Configuration.GetSection("ApplicationSettings:DefaultUser").Value" asp-for=Username autofocus>
@if (Model.ShowDefaultUserPass)
{
<input class="form-control" placeholder="Username" value="@Configuration.GetSection("ApplicationSettings:DefaultUser").Value" asp-for=Username autofocus>
}
else
{
<input class="form-control" placeholder="Username" asp-for=Username autofocus>
}
</div>
<div class="input-group mb-4">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="icon-lock"></i>
</span>
</div>
<input type="password" class="form-control" placeholder="Password" value="@Configuration.GetSection("ApplicationSettings:DefaultPass").Value" asp-for=Password autocomplete="off">
@if (Model.ShowDefaultUserPass)
{
<input type="password" class="form-control" placeholder="Password" value="@Configuration.GetSection("ApplicationSettings:DefaultPass").Value" asp-for=Password autocomplete="off">
}
else
{
<input type="password" class="form-control" placeholder="Password" asp-for=Password autocomplete="off">
}

</div>
@if (Model.AllowRememberLogin)
{
Expand Down Expand Up @@ -117,4 +131,4 @@
</div>
</div>
</div>
</div>
</div>
2 changes: 1 addition & 1 deletion src/Frontend/Jp.UI.SSO/Views/Shared/_Layout.cshtml
Expand Up @@ -107,7 +107,7 @@
<footer class="app-footer">
<div>
<a href="https://github.com/brunohbrito/JP-Project" target="_blank"><img class="icon" width="15%" src="@Url.Content("~/images/brand/logo.png")"></a>&nbsp;
<span>&copy; 2018.</span>
<span>&copy; 2018. v1.4.5</span>
</div>
<div class="ml-auto">
<span>Powered by</span>
Expand Down
3 changes: 2 additions & 1 deletion src/Frontend/Jp.UI.SSO/appsettings.json
Expand Up @@ -50,6 +50,7 @@
"DatabaseType": "SQLServer",
"DefaultUser": "bruno",
"DefaultPass": "Pa$$word123",
"DefaultEmail": "bhdebrito@gmail.com"
"DefaultEmail": "bhdebrito@gmail.com",
"ShowDefaultUserPass": "true"
}
}
Expand Up @@ -63,6 +63,6 @@
</main>
</div>
<app-footer>
<span><a href="https://github.com/brunohbrito/JP-Project">JP Project</a> &copy; 2018 Bruno Brito.</span>
<span><a href="https://github.com/brunohbrito/JP-Project">JP Project</a> &copy; 2018 - version {{ settingsService.app.version }}</span>
<span class="ml-auto">Powered by <a href="https://coreui.io/angular">CoreUI</a></span>
</app-footer>
Expand Up @@ -26,6 +26,7 @@ export class SettingsService {
description: "User Management UI",
year: ((new Date()).getFullYear()),
docLoaded: false,
version: "1.4.5"
};

this.userProfileObservable = defer(() => from(this.oauthService.loadUserProfile())).pipe(share());
Expand Down

0 comments on commit a5babb7

Please sign in to comment.