GithubHelp home page GithubHelp logo

sancsoft / hq Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 5.33 MB

Harlequin management system

License: MIT License

C# 67.89% HTML 27.57% CSS 1.19% JavaScript 0.22% TypeScript 1.98% SCSS 0.08% Dockerfile 1.07%

hq's People

Contributors

mterrysancsoft avatar rmaffitsancsoft avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hq's Issues

Setup Entity Framework

  • Install and configure Entity Framework to class library
  • Configure environment variable based configuration using connection builder to construct a connection string (in addition to supporting a connection string via config file) - for example DB_HOST, DB_NAME, DB_USER, etc.
  • Setup dotnet tool manifest file to track tool version

Authentication server

Setup an authorization server using OpenIddict based on the ASP.Net Identity MVC template with customized layout and user self service portal.

It should support authentication using Sancsoft Azure AD for single sign-on for Sancsoft employees.

Setup Angular project with authentication

  • Replace the MVC web project with an Angular project
  • Configure OpenIdConnection (OIDC) authentication against KeyCloak auth server
  • Research mechanism to generate API models from OpenAPI spec from API project, implement if reasonable
  • Add runtime app settings
  • Setup docker image with envsubst to generate runtime app settings from templated JSON
  • Update platform-web GitHub actions workflow configuration
  • A global route guard should be added to require authentication to access the interface

Setup API Versioning

  • Install and configure API versioning package
  • API versioning should be used as a route parameter with the initial API version being v1

Setup authorization server

  • Setup Keycloak platform source
  • Create sancsoft Keycloak theme
  • Create Docker image
  • Add to GitHub actions workflow

Setup deployment

Create a deployment folder with samples for deploying using a docker compose file with the public GHCR images that get built with GitHub actions.

Include a sample .env with insecure defaults to make it easy to try out the software.

Components

  • PostgreSQL
  • API
  • Web
  • KeyCloak

Setup console platform with authentication

  • Setup console platform project with support for Spectre.Console
  • Setup a typed HttpClient to talk to HQ API
  • Research mechanism to generate API models from OpenAPI spec from API project, implement if reasonable
  • Configure a login command that uses OpenIdConnection (OIDC) authentication against KeyCloak auth server
    • The device code flow should be utilized
    • The offline_access scope should be requested, the refresh token and cached access token should be persisted
    • Configure a HTTP Message Handler that automatically handles the access token, consider using IdentityModel

Client Console

  • Add a command for creating a client
  • Add a command for reading a client by ID
  • Add a command for listing clients
  • Add a command for updating a client
  • Add a command for deleting a client

Project framework

Setup base project framework for development.

  • .NET class library
  • .NET API
  • .NET Authorization server
  • .NET tests
  • .NET console app
  • .NET console client
  • Angular web client
  • GitHub actions CI

Add integration tests

Configure integration tests with test server, update CI and CD pipelines to run integration tests.

Client API

  • Add a ClientService to manage clients
  • Add a handler for creating a client
  • Add a handler for reading a client by ID
  • Add a handler for listing clients
  • Add a handler for updating a client
  • Add a handler for deleting a client
  • Add integration tests to validate API

Update README

Add development, build and release instructions to readme file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.